@projectcor/maia-components 2.11.47-1 → 2.11.47-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/MAIAInput/MAIAInput.js +23 -3
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +18 -10
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
- package/lib/hooks/useContextMentions.js +2 -2
- package/lib/hooks/useEvent.js +3 -1
- package/lib/types/Action.js +1 -1
- package/lib/utils/actionIconMap.js +9 -9
- package/package.json +1 -1
- package/lib/components/atoms/icons/ActionAssignIcon.js +0 -111
- package/lib/components/atoms/icons/ActionCreateIcon.js +0 -91
- package/lib/components/atoms/icons/ActionEditIcon.js +0 -39
|
@@ -39,6 +39,13 @@ import { ContextMentionEditor } from '../ContextMentionEditor';
|
|
|
39
39
|
import { useMentionPopover } from '../../../hooks/useMentionPopover';
|
|
40
40
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
41
41
|
var TOOL_CHIP_EXIT_MS = 220;
|
|
42
|
+
var getQuickActionType = function getQuickActionType(command) {
|
|
43
|
+
var words = command.title.toLowerCase().replace(/[^a-z0-9\s]+/g, ' ').split(/\s+/).filter(Boolean);
|
|
44
|
+
if (words.length === 0) return command.id;
|
|
45
|
+
return words.map(function (word, i) {
|
|
46
|
+
return i === 0 ? word : "".concat(word.charAt(0).toUpperCase()).concat(word.slice(1));
|
|
47
|
+
}).join('');
|
|
48
|
+
};
|
|
42
49
|
export var MAIAInput = function MAIAInput(_ref) {
|
|
43
50
|
var _agent$entity;
|
|
44
51
|
var onSendMessage = _ref.onSendMessage,
|
|
@@ -136,6 +143,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
136
143
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
137
144
|
slashQuery = _useState16[0],
|
|
138
145
|
setSlashQuery = _useState16[1];
|
|
146
|
+
var slashMenuWasOpenRef = useRef(false);
|
|
139
147
|
|
|
140
148
|
/** Tras elegir o quitar búsqueda web/profunda: volver al textarea (Popover/menu puede robar foco). */
|
|
141
149
|
var scheduleInputFocusAfterToolAction = function scheduleInputFocusAfterToolAction() {
|
|
@@ -328,6 +336,10 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
328
336
|
}, [attachments, onSendMessage, eventAmplitude, resetMentionOpenTracking]);
|
|
329
337
|
var handleSelectSlashCommand = useCallback(function (command) {
|
|
330
338
|
var _editorRef$current7, _state$text2, _editorRef$current9;
|
|
339
|
+
eventAmplitude(EVENTS.aiChatQuickActionSelect, {
|
|
340
|
+
type_quick_action: getQuickActionType(command),
|
|
341
|
+
origin_quick_action: 'slash_menu'
|
|
342
|
+
});
|
|
331
343
|
var state = (_editorRef$current7 = editorRef.current) === null || _editorRef$current7 === void 0 ? void 0 : _editorRef$current7.serialize();
|
|
332
344
|
var text = (_state$text2 = state === null || state === void 0 ? void 0 : state.text) !== null && _state$text2 !== void 0 ? _state$text2 : '';
|
|
333
345
|
var triggerPart = "/".concat(slashQuery);
|
|
@@ -341,6 +353,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
341
353
|
setHasWrappedToSecondLine(false);
|
|
342
354
|
setShowSlashDropdown(false);
|
|
343
355
|
setSlashQuery('');
|
|
356
|
+
slashMenuWasOpenRef.current = false;
|
|
344
357
|
resetMentionOpenTracking();
|
|
345
358
|
return;
|
|
346
359
|
}
|
|
@@ -350,9 +363,11 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
350
363
|
});
|
|
351
364
|
setShowSlashDropdown(false);
|
|
352
365
|
setSlashQuery('');
|
|
353
|
-
|
|
366
|
+
slashMenuWasOpenRef.current = false;
|
|
367
|
+
}, [attachments, onSendMessage, resetMentionOpenTracking, slashQuery, eventAmplitude]);
|
|
354
368
|
var handleCloseSlashDropdown = function handleCloseSlashDropdown() {
|
|
355
369
|
setShowSlashDropdown(false);
|
|
370
|
+
slashMenuWasOpenRef.current = false;
|
|
356
371
|
};
|
|
357
372
|
var handleEditorInput = useCallback(function (_ref2) {
|
|
358
373
|
var _editorRef$current0;
|
|
@@ -379,13 +394,18 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
379
394
|
onChange === null || onChange === void 0 || onChange();
|
|
380
395
|
handleTrigger(trigger);
|
|
381
396
|
if (slashTrigger !== null && slashTrigger !== void 0 && slashTrigger.active && slashCommands.length > 0) {
|
|
397
|
+
if (!slashMenuWasOpenRef.current) {
|
|
398
|
+
eventAmplitude(EVENTS.aiChatQuickActionOpen);
|
|
399
|
+
slashMenuWasOpenRef.current = true;
|
|
400
|
+
}
|
|
382
401
|
setShowSlashDropdown(true);
|
|
383
402
|
setSlashQuery(slashTrigger.query);
|
|
384
403
|
} else {
|
|
404
|
+
slashMenuWasOpenRef.current = false;
|
|
385
405
|
setShowSlashDropdown(false);
|
|
386
406
|
setSlashQuery('');
|
|
387
407
|
}
|
|
388
|
-
}, [onChange, handleTrigger, slashCommands]);
|
|
408
|
+
}, [onChange, handleTrigger, slashCommands, eventAmplitude]);
|
|
389
409
|
var handleKeyDown = useCallback(function (e) {
|
|
390
410
|
if (handlePopoverKeyDown(e)) return;
|
|
391
411
|
if (e.key === 'Enter' && !e.shiftKey && !popoverOpen) {
|
|
@@ -749,4 +769,4 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
749
769
|
}), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
|
|
750
770
|
});
|
|
751
771
|
};
|
|
752
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJ1c2VUIiwiVGVsZXNjb3BlSWNvbiIsIkVWRU5UUyIsInVzZUV2ZW50IiwiZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsImFsbG93ZWRGaWxlVHlwZXMiLCJmaWxlVHlwZXMiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX0FVRElPIiwiTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMiLCJDb250ZXh0TWVudGlvbkVkaXRvciIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2FnZW50JGVudGl0eSIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJfdXNlVCIsInQiLCJlZGl0b3JSZWYiLCJmaWxlSW5wdXRSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsInNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhhc1R5cGluZ1ByZXNlbmNlIiwic2V0SGFzVHlwaW5nUHJlc2VuY2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRm9jdXNlZCIsInNldElzRm9jdXNlZCIsIl91c2VTdGF0ZTciLCJpc09wZW4iLCJleGNsdWRlZEZpbGVzIiwiZXhjZWVkZWRGaWxlcyIsImZpbGVTaXplcyIsIl91c2VTdGF0ZTgiLCJtb2RhbFByb3BzIiwic2V0TW9kYWxQcm9wcyIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInRvZ2dsZURlZXBTZWFyY2giLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJhZ2VudCIsIl91c2VNZW50aW9uUG9wb3ZlciIsInBvcG92ZXJBbmNob3JSZWYiLCJwb3BvdmVyT3BlbiIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImhhbmRsZVRyaWdnZXIiLCJoYW5kbGVQb3BvdmVyS2V5RG93biIsImhhbmRsZUtleURvd24iLCJwb3BvdmVyTm9kZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwicGx1c01lbnVBbmNob3IiLCJzZXRQbHVzTWVudUFuY2hvciIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsImFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsInNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ0b29sQ2hpcEV4aXRpbmciLCJzZXRUb29sQ2hpcEV4aXRpbmciLCJ0b29sQ2hpcEV4aXRUaW1lclJlZiIsInNlYXJjaE1vZGVBY3RpdmVSZWYiLCJ3ZWIiLCJkZWVwIiwicGx1c01lbnVPcGVuIiwiQm9vbGVhbiIsInByZXZpb3VzQWdlbnRJZFJlZiIsInVuZGVmaW5lZCIsInByZXZpb3VzQ2hhdElkUmVmIiwicHJldmlvdXNOZXdDaGF0S2V5UmVmIiwiYW5hbHl0aWNzQWdlbnRUeXBlIiwiYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIiwidHlwZSIsImVudGl0eSIsIl91c2VTbGFzaENvbW1hbmRzIiwiaWQiLCJzbGFzaENvbW1hbmRzIiwiY29tbWFuZHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0Iiwic2hvd1NsYXNoRHJvcGRvd24iLCJzZXRTaG93U2xhc2hEcm9wZG93biIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJzbGFzaFF1ZXJ5Iiwic2V0U2xhc2hRdWVyeSIsInNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiZm9jdXMiLCJjbG9zZVBsdXNNZW51IiwiY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCIsImNsZWFyVGltZW91dCIsImhhbmRsZVBsdXNCdXR0b25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50VGFyZ2V0IiwiYWlDaGF0UGx1c09wZW4iLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfdHlwZSIsImhhbmRsZVBsdXNNZW51QXR0YWNoIiwiX2ZpbGVJbnB1dFJlZiRjdXJyZW50IiwiYWlDaGF0VG9vbHMiLCJvcHRpb24iLCJsZW5ndGgiLCJjbGljayIsImJlZ2luVG9vbENoaXBFeGl0Iiwid2FzV2ViIiwid2FzRGVlcCIsIl9zZWFyY2hNb2RlQWN0aXZlUmVmJCIsImhhbmRsZVBsdXNNZW51V2ViU2VhcmNoIiwiaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoIiwiX2VkaXRvclJlZiRjdXJyZW50MiIsImNvbXBhY3RTaW5nbGVSb3dUb29sYmFyIiwic2VuZERpc2FibGVkIiwiYWdlbnRDaGFuZ2VkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJfZWRpdG9yUmVmJGN1cnJlbnQzIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsIl9lZGl0b3JSZWYkY3VycmVudDQiLCJjbGVhciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJfc3RhdGUkdGV4dCIsIl9zdGF0ZSRtZW50aW9ucyIsIl9lZGl0b3JSZWYkY3VycmVudDYiLCJzdGF0ZSIsInNlcmlhbGl6ZSIsInRleHQiLCJ0cmltIiwibWVudGlvbnMiLCJmb3JFYWNoIiwibSIsImFpQ2hhdE1lbnRpb25TZW5kIiwiU3RyaW5nIiwiaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kIiwiY29tbWFuZCIsIl9lZGl0b3JSZWYkY3VycmVudDciLCJfc3RhdGUkdGV4dDIiLCJfZWRpdG9yUmVmJGN1cnJlbnQ5IiwidHJpZ2dlclBhcnQiLCJjb25jYXQiLCJiZWZvcmVUcmlnZ2VyIiwiZW5kc1dpdGgiLCJzbGljZSIsImlzRW1wdHlCZWZvcmVUcmlnZ2VyIiwiX2VkaXRvclJlZiRjdXJyZW50OCIsInRpdGxlIiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwibGFiZWwiLCJoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24iLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWYyIiwiX2VkaXRvclJlZiRjdXJyZW50MCIsInRyaWdnZXIiLCJzbGFzaFRyaWdnZXIiLCJ2aXN1YWxNdWx0aWxpbmUiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJleHBsaWNpdE11bHRpbGluZSIsImluY2x1ZGVzIiwiaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCIsInN0YWJsZVZpc3VhbE11bHRpbGluZSIsIm5leHRJc011bHRpbGluZSIsIm5leHRIYXNUeXBpbmdQcmVzZW5jZSIsIm5leHRUeXBpbmdQcmVzZW5jZSIsInByZXYiLCJuZXh0IiwiYWN0aXZlIiwicXVlcnkiLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRmlsZVNlbGVjdCIsImZpbGVzIiwidGFyZ2V0IiwiZmlsZXNJbnNlcnRlZCIsImlzTmV3Rm9ybWF0IiwiZXh0ZW5zaW9uIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImV4Y2x1ZGVkRmlsZSIsImZpbGVOYW1lUGFydHMiLCJuYW1lIiwic3BsaXQiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJ2YWx1ZSIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJoYW5kbGVXcmFwcGVyRm9jdXMiLCJoYW5kbGVXcmFwcGVyQmx1ciIsIl93cmFwcGVyUmVmJGN1cnJlbnQiLCJjb250YWlucyIsImFjdGl2ZUVsZW1lbnQiLCJoYW5kbGVTdG9wR2VuZXJhdGlvbiIsImFpQ2hhdFN0b3BSZXNwb25zZSIsInBsdXNJY29uQ29sb3IiLCJzZWNvbmRhcnkiLCJtZWRpdW1HcmF5IiwicGx1c01lbnVJY29uQ29sb3IiLCJtZW51SWNvbiIsInBsdXNNZW51U2VsZWN0ZWRDb2xvciIsInRleHRCcmFuZEJvbGQiLCJhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uIiwiY29sb3IiLCJjaGlwQ2xvc2VJY29uIiwid2lkdGgiLCJoZWlnaHQiLCJjaGlsZHJlbiIsInJlZiIsImhhc0F0dGFjaG1lbnRzIiwib25Gb2N1cyIsIm9uQmx1ciIsInN0eWxlIiwicG9zaXRpb24iLCJvblNlbGVjdCIsIm9uQ2xvc2UiLCJkaXNwbGF5IiwiZ2FwIiwiYWxpZ25JdGVtcyIsIm1hcCIsImF0dGFjaG1lbnQiLCJpbmRleCIsIl9maWxlTmFtZVBhcnRzJHBvcDIiLCJfYXR0YWNobWVudCR0eXBlIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsInN0YXJ0c1dpdGgiLCJpc0ltYWdlIiwiaWNvbiIsIm9uQ2xpY2siLCIkY29tcGFjdFJvdyIsIiRtZW51T3BlbiIsIm9wZW4iLCJhbmNob3JFbCIsImFuY2hvck9yaWdpbiIsInZlcnRpY2FsIiwiaG9yaXpvbnRhbCIsInRyYW5zZm9ybU9yaWdpbiIsInNsb3RQcm9wcyIsInBhcGVyIiwiZWxldmF0aW9uIiwic3giLCJvdmVyZmxvdyIsImJvcmRlclJhZGl1cyIsImJveFNoYWRvdyIsImJhY2tncm91bmRDb2xvciIsIm1hcmdpblRvcCIsIiRzZWxlY3RlZCIsIiRob3ZlcmVkIiwiJGV4aXRpbmciLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCIkY2xvc2VTaG93biIsImdyaWRDb2x1bW4iLCJncmlkUm93IiwibWluV2lkdGgiLCJhbGlnblNlbGYiLCJvbklucHV0Iiwib25LZXlEb3duIiwiaGFzVmFsdWVzIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L01BSUFJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRpbnVlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12b2lkICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWxvbmVseS1pZiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWRlc3RydWN0dXJpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHtcbiAgQ2hhbmdlRXZlbnQsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBQb3BvdmVyIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFBhcGVyUGxhbmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QYXBlclBsYW5lJ1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgR2xvYmUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9HbG9iZSdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5pbXBvcnQgeyBQbHVzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGx1cydcbmltcG9ydCB7IENoZWNrIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2snXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmltcG9ydCB7XG4gIEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbixcbiAgQWN0aXZlVG9vbENoaXBMYWJlbCxcbiAgQWN0aXZlVG9vbENoaXBSb290LFxuICBQbHVzTWVudURpdmlkZXIsXG4gIFBsdXNNZW51SW5uZXJDb2x1bW4sXG4gIFBsdXNNZW51SXRlbUJ1dHRvbixcbiAgUGx1c01lbnVJdGVtTGFiZWwsXG4gIFBsdXNNZW51UGFwZXIsXG4gIFBsdXNNZW51VG9vbHNSb3csXG4gIFBsdXNUb2dnbGVCdXR0b24sXG4gIFNDTUlBdHRhY2htZW50LFxuICBTQ01JQXR0YWNobWVudERlbGV0ZUljb24sXG4gIFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIsXG4gIFN0eWxlZE1BSUFTZW5kQnV0dG9uLFxuICBTdHlsZWRNQUlBTWFpblRvb2xiYXJHcmlkLFxuICBTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsLFxuICBTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsLFxuICBTdHlsZWRNQUlBU3RvcEJ1dHRvbixcbiAgU3R5bGVkTUFJQVN0b3BJY29uLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgTW9kYWxGaWxlRXhjZWVkcyB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9Nb2RhbEZpbGVFeGNlZWRzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kRHJvcGRvd24gfSBmcm9tICcuLi9TbGFzaENvbW1hbmREcm9wZG93bidcbmltcG9ydCB7IHVzZVNsYXNoQ29tbWFuZHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbGFzaENvbW1hbmRzJ1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IFRlbGVzY29wZUljb24gfSBmcm9tICcuLi9pY29ucy9UZWxlc2NvcGVJY29uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hpdGxBbmFseXRpY3MnXG5pbXBvcnQgeyBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHtcbiAgYWxsb3dlZEZpbGVUeXBlcyxcbiAgZmlsZVR5cGVzLFxuICBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OLFxuICBNQVhfRklMRV9TSVpFX01CX09MRCxcbiAgTUFYX0ZJTEVfU0laRV9NQl9BVURJTyxcbiAgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3IsIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25FZGl0b3InXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyB1c2VNZW50aW9uUG9wb3ZlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1lbnRpb25Qb3BvdmVyJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuY29uc3QgVE9PTF9DSElQX0VYSVRfTVMgPSAyMjBcblxudHlwZSBBdHRhY2htZW50RmlsZSA9IHtcbiAgZmlsZTogRmlsZVxuICBvcmlnaW5hbEZpbGU/OiBGaWxlXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxufVxuXG50eXBlIE1BSUFJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmYXFJZD86IHN0cmluZyxcbiAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBvbkNoYW5nZT86ICgpID0+IHZvaWRcbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBvbkZpbGVBdHRhY2g/OiAoZmlsZTogRmlsZSkgPT4gdm9pZFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQ/OiAoZmlsZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGNoYXRJZD86IHN0cmluZ1xuICBuZXdDaGF0S2V5PzogbnVtYmVyXG59XG5cbmV4cG9ydCBjb25zdCBNQUlBSW5wdXQgPSAoe1xuICBvblNlbmRNZXNzYWdlLFxuICBjbGFzc05hbWUsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBwbGFjZWhvbGRlcixcbiAgb25DaGFuZ2UsXG4gIGFsaWduQnV0dG9ucyA9ICd2ZXJ0aWNhbCcsXG4gIG9uRmlsZUF0dGFjaCxcbiAgb25EZWxldGVBdHRhY2htZW50LFxuICBhdHRhY2htZW50cyA9IFtdLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBNQUlBSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGU+KG51bGwpXG4gIGNvbnN0IGZpbGVJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbaGFzV3JhcHBlZFRvU2Vjb25kTGluZSwgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc1R5cGluZ1ByZXNlbmNlLCBzZXRIYXNUeXBpbmdQcmVzZW5jZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZURlZXBTZWFyY2gsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIGNvbnN0IHtcbiAgICBwb3BvdmVyT3BlbixcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsXG4gICAgaGFuZGxlVHJpZ2dlcixcbiAgICBoYW5kbGVLZXlEb3duOiBoYW5kbGVQb3BvdmVyS2V5RG93bixcbiAgICBwb3BvdmVyTm9kZSxcbiAgfSA9IHVzZU1lbnRpb25Qb3BvdmVyKHtcbiAgICBlZGl0b3JSZWYsXG4gICAgcG9wb3ZlckFuY2hvclJlZjogd3JhcHBlclJlZixcbiAgfSlcblxuICBjb25zdCBbcGx1c01lbnVBbmNob3IsIHNldFBsdXNNZW51QW5jaG9yXSA9IHVzZVN0YXRlPEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FjdGl2ZVRvb2xDaGlwSG92ZXJlZCwgc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdG9vbENoaXBFeGl0aW5nLCBzZXRUb29sQ2hpcEV4aXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRvb2xDaGlwRXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcbiAgY29uc3Qgc2VhcmNoTW9kZUFjdGl2ZVJlZiA9IHVzZVJlZih7IHdlYjogZmFsc2UsIGRlZXA6IGZhbHNlIH0pXG4gIGNvbnN0IHBsdXNNZW51T3BlbiA9IEJvb2xlYW4ocGx1c01lbnVBbmNob3IpXG5cbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBjb25zdCBhbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlKGFnZW50KVxuICBjb25zdCBhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuICBjb25zdCB7IGNvbW1hbmRzOiBzbGFzaENvbW1hbmRzIH0gPSB1c2VTbGFzaENvbW1hbmRzKGFnZW50Py5pZClcbiAgY29uc3QgW3Nob3dTbGFzaERyb3Bkb3duLCBzZXRTaG93U2xhc2hEcm9wZG93bl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NsYXNoUXVlcnksIHNldFNsYXNoUXVlcnldID0gdXNlU3RhdGUoJycpXG5cbiAgLyoqIFRyYXMgZWxlZ2lyIG8gcXVpdGFyIGLDunNxdWVkYSB3ZWIvcHJvZnVuZGE6IHZvbHZlciBhbCB0ZXh0YXJlYSAoUG9wb3Zlci9tZW51IHB1ZWRlIHJvYmFyIGZvY28pLiAqL1xuICBjb25zdCBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24gPSAoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0sIDApXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNsb3NlUGx1c01lbnUgPSAoKSA9PiB7XG4gICAgc2V0UGx1c01lbnVBbmNob3IobnVsbClcbiAgfVxuXG4gIGNvbnN0IGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQgPSAoKSA9PiB7XG4gICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50KVxuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c0J1dHRvbkNsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmIChwbHVzTWVudUFuY2hvcikge1xuICAgICAgY2xvc2VQbHVzTWVudSgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0UGx1c01lbnVBbmNob3IoZS5jdXJyZW50VGFyZ2V0KVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRQbHVzT3BlbiwgeyBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVBdHRhY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdmaWxlcycsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID49IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSByZXR1cm5cbiAgICBmaWxlSW5wdXRSZWYuY3VycmVudD8uY2xpY2soKVxuICB9XG5cbiAgY29uc3QgYmVnaW5Ub29sQ2hpcEV4aXQgPSAoKSA9PiB7XG4gICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB3YXNXZWIgPSBpc1dlYlNlYXJjaEFjdGl2ZVxuICAgIGNvbnN0IHdhc0RlZXAgPSBpc0RlZXBTZWFyY2hBY3RpdmVcbiAgICBpZiAoIXdhc1dlYiAmJiAhd2FzRGVlcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFRvb2xDaGlwRXhpdGluZyh0cnVlKVxuICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICBjb25zdCB7IHdlYiwgZGVlcCB9ID0gc2VhcmNoTW9kZUFjdGl2ZVJlZi5jdXJyZW50XG4gICAgICBpZiAod2FzV2ViICYmIHdlYikge1xuICAgICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgICAgfSBlbHNlIGlmICh3YXNEZWVwICYmIGRlZXApIHtcbiAgICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgICB9XG4gICAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gICAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICAgIH0sIFRPT0xfQ0hJUF9FWElUX01TKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVXZWJTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdzZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51RGVlcFNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCgpXG4gICAgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2RlZXBfc2VhcmNoJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIGNvbnN0IGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBhdHRhY2htZW50cy5sZW5ndGggPT09IDAgJiYgIWlzV2ViU2VhcmNoQWN0aXZlICYmICFpc0RlZXBTZWFyY2hBY3RpdmUgJiYgIWhhc1dyYXBwZWRUb1NlY29uZExpbmUsXG4gICAgW2F0dGFjaG1lbnRzLmxlbmd0aCwgaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgaGFzV3JhcHBlZFRvU2Vjb25kTGluZV1cbiAgKVxuXG4gIGNvbnN0IHNlbmREaXNhYmxlZCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gIWhhc1R5cGluZ1ByZXNlbmNlICYmIGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCxcbiAgICBbaGFzVHlwaW5nUHJlc2VuY2UsIGF0dGFjaG1lbnRzLmxlbmd0aF1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2VhcmNoTW9kZUFjdGl2ZVJlZi5jdXJyZW50ID0geyB3ZWI6IGlzV2ViU2VhcmNoQWN0aXZlLCBkZWVwOiBpc0RlZXBTZWFyY2hBY3RpdmUgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkKGZhbHNlKVxuICAgIH1cbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIC8vIEF1dG8tZm9jdXMgY3VhbmRvIGNhbWJpYSBlbCBhZ2VudGUgbyBsYSBjb252ZXJzYWNpw7NuLCBvIGFsIG1vbnRhciBlbCBjb21wb25lbnRlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYWdlbnRDaGFuZ2VkID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgIT09IGFnZW50Py5pZFxuICAgIGNvbnN0IHByZXZpb3VzQ2hhdElkID0gcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudFxuICAgIGNvbnN0IGN1cnJlbnRDaGF0SWQgPSBjaGF0SWRcbiAgICBjb25zdCBjaGF0Q2hhbmdlZCA9IHByZXZpb3VzQ2hhdElkICE9PSBjdXJyZW50Q2hhdElkXG4gICAgY29uc3QgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID1cbiAgICAgIChwcmV2aW91c0NoYXRJZCA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzQ2hhdElkID09PSBudWxsKSAmJiBjdXJyZW50Q2hhdElkICE9PSB1bmRlZmluZWQgJiYgY3VycmVudENoYXRJZCAhPT0gbnVsbFxuICAgIGNvbnN0IG5ld0NoYXRTdGFydGVkID0gcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgIT09IG5ld0NoYXRLZXlcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQgJiYgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkXG5cbiAgICBpZiAoKGFnZW50Q2hhbmdlZCB8fCBjaGF0Q2hhbmdlZCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgfHwgbmV3Q2hhdFN0YXJ0ZWQgfHwgaXNJbml0aWFsTW91bnQpICYmICFkaXNhYmxlZCkge1xuICAgICAgY29uc3QgZGVsYXkgPSBpc0luaXRpYWxNb3VudCB8fCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPyAyMDAgOiAxMDBcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVkKSBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgZGVsYXkpXG4gICAgfVxuXG4gICAgcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPSBhZ2VudD8uaWRcbiAgICBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID0gY2hhdElkXG4gICAgcHJldmlvdXNOZXdDaGF0S2V5UmVmLmN1cnJlbnQgPSBuZXdDaGF0S2V5XG4gIH0sIFthZ2VudD8uaWQsIGNoYXRJZCwgbmV3Q2hhdEtleSwgZGlzYWJsZWRdKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICB9LCBbcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgIGNvbnN0IHRleHQgPSBzdGF0ZT8udGV4dCA/PyAnJ1xuICAgIGlmICghdGV4dC50cmltKCkgJiYgIWF0dGFjaG1lbnRzLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgbWVudGlvbnMgPSBzdGF0ZT8ubWVudGlvbnMgPz8gW11cbiAgICBtZW50aW9ucy5mb3JFYWNoKG0gPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1lbnRpb25TZW5kLCB7IHR5cGU6IG0udHlwZSwgaWQ6IFN0cmluZyhtLmlkKSB9KVxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZSh0ZXh0LCBhdHRhY2htZW50cywgbWVudGlvbnMpXG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKGZhbHNlKVxuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgfSwgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCBldmVudEFtcGxpdHVkZSwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZDogQWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgICAgIGNvbnN0IGJlZm9yZVRyaWdnZXIgPSB0ZXh0LmVuZHNXaXRoKHRyaWdnZXJQYXJ0KSA/IHRleHQuc2xpY2UoMCwgLXRyaWdnZXJQYXJ0Lmxlbmd0aCkgOiB0ZXh0XG4gICAgICBjb25zdCBpc0VtcHR5QmVmb3JlVHJpZ2dlciA9IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoaXNFbXB0eUJlZm9yZVRyaWdnZXIpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZShjb21tYW5kLnRpdGxlLCBhdHRhY2htZW50cywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21tYW5kLmlkKVxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0U2xhc2hDb21tYW5kKHsgaWQ6IGNvbW1hbmQuaWQsIGxhYmVsOiBjb21tYW5kLnRpdGxlIH0pXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgfSxcbiAgICBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgc2xhc2hRdWVyeV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlU2xhc2hEcm9wZG93biA9ICgpID0+IHtcbiAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRvcklucHV0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHRleHQsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgc2xhc2hUcmlnZ2VyLFxuICAgIH06IHtcbiAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICAgIHNsYXNoVHJpZ2dlcj86IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCB2aXN1YWxNdWx0aWxpbmUgPSAhIWVkaXRvclJlZi5jdXJyZW50Py5oYXNWaXN1YWxNdWx0aWxpbmUoKVxuICAgICAgY29uc3QgZXhwbGljaXRNdWx0aWxpbmUgPSB0ZXh0LmluY2x1ZGVzKCdcXG4nKVxuICAgICAgY29uc3QgaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA9IHRleHQubGVuZ3RoIDw9IDEgJiYgIWV4cGxpY2l0TXVsdGlsaW5lICYmIHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3Qgc3RhYmxlVmlzdWFsTXVsdGlsaW5lID0gaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA/IGZhbHNlIDogdmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SXNNdWx0aWxpbmUgPSBleHBsaWNpdE11bHRpbGluZSB8fCBzdGFibGVWaXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IG5leHRIYXNUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IG5leHRUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcblxuICAgICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UobmV4dFR5cGluZ1ByZXNlbmNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShwcmV2ID0+IHtcbiAgICAgICAgbGV0IG5leHQgPSBwcmV2XG4gICAgICAgIGlmICghbmV4dEhhc1R5cGluZ1ByZXNlbmNlKSB7XG4gICAgICAgICAgbmV4dCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSBpZiAobmV4dElzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgbmV4dCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9KVxuICAgICAgb25DaGFuZ2U/LigpXG4gICAgICBoYW5kbGVUcmlnZ2VyKHRyaWdnZXIpXG5cbiAgICAgIGlmIChzbGFzaFRyaWdnZXI/LmFjdGl2ZSAmJiBzbGFzaENvbW1hbmRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24odHJ1ZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeShzbGFzaFRyaWdnZXIucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlciwgc2xhc2hDb21tYW5kc11cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChoYW5kbGVQb3BvdmVyS2V5RG93bihlKSkgcmV0dXJuXG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkgJiYgIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBpZiAoIXNlbmREaXNhYmxlZCAmJiAhZGlzYWJsZWQpIGhhbmRsZVNlbmRNZXNzYWdlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVQb3BvdmVyS2V5RG93biwgcG9wb3Zlck9wZW4sIHNlbmREaXNhYmxlZCwgZGlzYWJsZWQsIGhhbmRsZVNlbmRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgICBpZiAoIWZpbGVzKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgLy8gRGVmaW5pciBsw61taXRlcyBwYXJhIGRpZmVyZW50ZXMgdGlwb3MgZGUgYXJjaGl2b3NcbiAgICBjb25zdCBpc05ld0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT4gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnLCAnLnBkZiddLmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICBjb25zdCBpc09sZEZvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLnR4dCcsICcubWQnLCAnLmNzdicsICcuZG9jJywgJy5kb2N4JywgJy54bHN4JywgJy54bHMnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNBdWRpb0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGVkRmlsZSA9IGZhbHNlXG4gICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgICAgaWYgKCFhbGxvd2VkRmlsZVR5cGVzPy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgICAgLy8gVmFsaWRhY2lvbmVzIGVzcGVjw61maWNhcyBzZWfDum4gZWwgdGlwbyBkZSBhcmNoaXZvXG4gICAgICBpZiAoaXNOZXdGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBudWV2b3MgZm9ybWF0b3M6IGhhc3RhIDQuOTlNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc09sZEZvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGZvcm1hdG9zIGFudGVyaW9yZXM6IGhhc3RhIDFNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBdWRpb0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAvLyBQYXJhIGFyY2hpdm9zIGRlIGF1ZGlvOiBoYXN0YSAxME1CIHBvciBhcmNoaXZvLCBoYXN0YSBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyBhcmNoaXZvc1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9BVURJTyAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXhjbHVkZWRGaWxlKSB7XG4gICAgICAgIGZpbGVzSW5zZXJ0ZWQgKz0gMVxuICAgICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZS5uYW1lLCB7IHR5cGU6IHR5cGVGaWxlIH0pXG4gICAgICAgIG9uRmlsZUF0dGFjaD8uKHBhcnNlZEZpbGUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmIChleGNsdWRlZEZpbGVzLmxlbmd0aCB8fCBleGNlZWRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogdHJ1ZSwgZXhjbHVkZWRGaWxlcywgZXhjZWVkZWRGaWxlcywgZmlsZVNpemVzIH0pXG4gICAgfVxuXG4gICAgaWYgKGZpbGVJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBmaWxlSW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uRGVsZXRlQXR0YWNobWVudD8uKGZpbGVJZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJGb2N1cyA9ICgpID0+IHNldElzRm9jdXNlZCh0cnVlKVxuICBjb25zdCBoYW5kbGVXcmFwcGVyQmx1ciA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghd3JhcHBlclJlZi5jdXJyZW50Py5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpXG4gICAgICB9XG4gICAgfSwgMClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN0b3BHZW5lcmF0aW9uID0gKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTdG9wUmVzcG9uc2UpXG4gICAgb25TdG9wR2VuZXJhdGlvbj8uKClcbiAgfVxuXG4gIGNvbnN0IHBsdXNJY29uQ29sb3IgPSBpc0ZvY3VzZWQgPyBjb2xvcnMudGV4dC5zZWNvbmRhcnkgOiBjb2xvcnMudGV4dC5tZWRpdW1HcmF5XG4gIGNvbnN0IHBsdXNNZW51SWNvbkNvbG9yID0gTUFJQV9DSEFUX0lOUFVUX1VJLm1lbnVJY29uXG4gIGNvbnN0IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS50ZXh0QnJhbmRCb2xkXG5cbiAgbGV0IGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb246IFJlYWN0Tm9kZVxuICBpZiAoYWN0aXZlVG9vbENoaXBIb3ZlcmVkKSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxDcm9zcyBjb2xvcj17TUFJQV9DSEFUX0lOUFVUX1VJLmNoaXBDbG9zZUljb259IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfSBlbHNlIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8R2xvYmUgY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxUZWxlc2NvcGVJY29uIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZE1BSUFJbnB1dFdyYXBwZXJcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgICBoYXNBdHRhY2htZW50cz17ISFhdHRhY2htZW50cy5sZW5ndGh9XG4gICAgICAgIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyPXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn1cbiAgICAgICAgZGF0YS1tYWlhLXN0cmVhbWluZz17aXNTdHJlYW1pbmcgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICAgIHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19XG4gICAgICA+XG4gICAgICAgIHtzaG93U2xhc2hEcm9wZG93biAmJiAoXG4gICAgICAgICAgPFNsYXNoQ29tbWFuZERyb3Bkb3duXG4gICAgICAgICAgICBjb21tYW5kcz17c2xhc2hDb21tYW5kc31cbiAgICAgICAgICAgIHF1ZXJ5PXtzbGFzaFF1ZXJ5fVxuICAgICAgICAgICAgb25TZWxlY3Q9e2hhbmRsZVNlbGVjdFNsYXNoQ29tbWFuZH1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlU2xhc2hEcm9wZG93bn1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ISFhdHRhY2htZW50cy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxMnB4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICB7YXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gYXR0YWNobWVudC5uYW1lLnNwbGl0KCcuJylcbiAgICAgICAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeU1pbWUgPSBhdHRhY2htZW50LnR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthdHRhY2htZW50Lm5hbWV9IGtleT17YCR7aW5kZXh9LSR7YXR0YWNobWVudC5uYW1lfWB9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgIDxTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5vcGVuUGx1c01lbnVBcmlhJyl9XG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlUGx1c01lbnV9XG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgc2xvdFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICBwYXBlcjoge1xuICAgICAgICAgICAgICAgICAgICBlbGV2YXRpb246IDAsXG4gICAgICAgICAgICAgICAgICAgIHN4OiB7XG4gICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICctNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51QXR0YWNofT5cbiAgICAgICAgICAgICAgICAgICAgICA8QXR0YWNoIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9e2ZhbHNlfT57dCgnY2hhdC5wbHVzTWVudUF0dGFjaCcpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51V2ViU2VhcmNofT5cbiAgICAgICAgICAgICAgICAgICAgICA8R2xvYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc1dlYlNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9eyEhaXNXZWJTZWFyY2hBY3RpdmV9Pnt0KCdjaGF0LnNlYXJjaFdlYicpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAge2lzV2ViU2VhcmNoQWN0aXZlID8gPENoZWNrIGNvbG9yPXtwbHVzTWVudVNlbGVjdGVkQ29sb3J9IHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJbm5lckNvbHVtbj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51RGVlcFNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgIDxUZWxlc2NvcGVJY29uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzRGVlcFNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzRGVlcFNlYXJjaEFjdGl2ZX0+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7aXNEZWVwU2VhcmNoQWN0aXZlID8gPENoZWNrIGNvbG9yPXtwbHVzTWVudVNlbGVjdGVkQ29sb3J9IHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9QbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgICA8L1BvcG92ZXI+XG4gICAgICAgICAgICAgIHsoaXNXZWJTZWFyY2hBY3RpdmUgfHwgaXNEZWVwU2VhcmNoQWN0aXZlKSAmJiAoXG4gICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwUm9vdFxuICAgICAgICAgICAgICAgICAgJGhvdmVyZWQ9e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICRleGl0aW5nPXt0b29sQ2hpcEV4aXRpbmd9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCh0cnVlKX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAkY2xvc2VTaG93bj17YWN0aXZlVG9vbENoaXBIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjaGF0LnJlbW92ZUFjdGl2ZVRvb2xBcmlhJyl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHthY3RpdmVUb29sQ2hpcExlYWRpbmdJY29ufVxuICAgICAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcEljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzV2ViU2VhcmNoQWN0aXZlID8gdCgnY2hhdC5zZWFyY2hXZWInKSA6IHQoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcExhYmVsPlxuICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBSb290PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9QbHVzTWVudVRvb2xzUm93PlxuICAgICAgICAgIDwvU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyXG4gICAgICAgICAgICAgICAgPyB7IGdyaWRDb2x1bW46IDIsIGdyaWRSb3c6IDEsIG1pbldpZHRoOiAwLCBhbGlnblNlbGY6ICdjZW50ZXInIH1cbiAgICAgICAgICAgICAgICA6IHsgZ3JpZENvbHVtbjogJzEgLyAtMScsIGdyaWRSb3c6IDEsIG1pbldpZHRoOiAwIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q29udGV4dE1lbnRpb25FZGl0b3JcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBvbklucHV0PXtoYW5kbGVFZGl0b3JJbnB1dH1cbiAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICB7aXNXcml0aW5nID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zdG9wJyl9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc2VuZCcpfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZW5kRGlzYWJsZWQgfHwgZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlcz17aGFzVHlwaW5nUHJlc2VuY2UgfHwgYXR0YWNobWVudHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFBhcGVyUGxhbmUgY29sb3I9XCIjQkZCRkJGXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsPlxuICAgICAgICA8L1N0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucG5nLC5qcGcsLmpwZWcsLnBkZiwueGxzeCwueGxzLC5mbGFjLC5tNGEsLm1wMywubXA0LC5vZ2EsLm9nZywud2F2LC53ZWJtXCJcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkTUFJQUlucHV0V3JhcHBlcj5cbiAgICAgIHttb2RhbFByb3BzLmlzT3BlbiAmJiAoXG4gICAgICAgIDxNb2RhbEZpbGVFeGNlZWRzXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogZmFsc2UsIGV4Y2x1ZGVkRmlsZXM6IFtdLCBleGNlZWRlZEZpbGVzOiBbXSwgZmlsZVNpemVzOiB7fSB9KX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGZpbGVTaXplcz17bW9kYWxQcm9wcy5maWxlU2l6ZXN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3BvcG92ZXJOb2RlICYmIGNyZWF0ZVBvcnRhbChwb3BvdmVyTm9k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
|
|
772
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJ1c2VUIiwiVGVsZXNjb3BlSWNvbiIsIkVWRU5UUyIsInVzZUV2ZW50IiwiZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZSIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsImFsbG93ZWRGaWxlVHlwZXMiLCJmaWxlVHlwZXMiLCJNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OIiwiTUFYX0ZJTEVfU0laRV9NQl9PTEQiLCJNQVhfRklMRV9TSVpFX01CX0FVRElPIiwiTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMiLCJDb250ZXh0TWVudGlvbkVkaXRvciIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJnZXRRdWlja0FjdGlvblR5cGUiLCJjb21tYW5kIiwid29yZHMiLCJ0aXRsZSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsInNwbGl0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImxlbmd0aCIsImlkIiwibWFwIiwid29yZCIsImkiLCJjb25jYXQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiam9pbiIsIk1BSUFJbnB1dCIsIl9yZWYiLCJfYWdlbnQkZW50aXR5Iiwib25TZW5kTWVzc2FnZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9yZWYkYWxpZ25CdXR0b25zIiwiYWxpZ25CdXR0b25zIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiX3JlZiRhdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsIl91c2VUIiwidCIsImVkaXRvclJlZiIsImZpbGVJbnB1dFJlZiIsIndyYXBwZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJoYXNXcmFwcGVkVG9TZWNvbmRMaW5lIiwic2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaGFzVHlwaW5nUHJlc2VuY2UiLCJzZXRIYXNUeXBpbmdQcmVzZW5jZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiX3VzZVN0YXRlNyIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJleGNlZWRlZEZpbGVzIiwiZmlsZVNpemVzIiwiX3VzZVN0YXRlOCIsIm1vZGFsUHJvcHMiLCJzZXRNb2RhbFByb3BzIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInRvZ2dsZVdlYlNlYXJjaCIsImlzV2ViU2VhcmNoQWN0aXZlIiwidG9nZ2xlRGVlcFNlYXJjaCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImFnZW50IiwiX3VzZU1lbnRpb25Qb3BvdmVyIiwicG9wb3ZlckFuY2hvclJlZiIsInBvcG92ZXJPcGVuIiwicmVzZXRNZW50aW9uT3BlblRyYWNraW5nIiwiaGFuZGxlVHJpZ2dlciIsImhhbmRsZVBvcG92ZXJLZXlEb3duIiwiaGFuZGxlS2V5RG93biIsInBvcG92ZXJOb2RlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJwbHVzTWVudUFuY2hvciIsInNldFBsdXNNZW51QW5jaG9yIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiYWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwic2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInRvb2xDaGlwRXhpdGluZyIsInNldFRvb2xDaGlwRXhpdGluZyIsInRvb2xDaGlwRXhpdFRpbWVyUmVmIiwic2VhcmNoTW9kZUFjdGl2ZVJlZiIsIndlYiIsImRlZXAiLCJwbHVzTWVudU9wZW4iLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsImFuYWx5dGljc0FnZW50VHlwZSIsImFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCIsInR5cGUiLCJlbnRpdHkiLCJfdXNlU2xhc2hDb21tYW5kcyIsInNsYXNoQ29tbWFuZHMiLCJjb21tYW5kcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJzaG93U2xhc2hEcm9wZG93biIsInNldFNob3dTbGFzaERyb3Bkb3duIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInNsYXNoUXVlcnkiLCJzZXRTbGFzaFF1ZXJ5Iiwic2xhc2hNZW51V2FzT3BlblJlZiIsInNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiZm9jdXMiLCJjbG9zZVBsdXNNZW51IiwiY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCIsImNsZWFyVGltZW91dCIsImhhbmRsZVBsdXNCdXR0b25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50VGFyZ2V0IiwiYWlDaGF0UGx1c09wZW4iLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfdHlwZSIsImhhbmRsZVBsdXNNZW51QXR0YWNoIiwiX2ZpbGVJbnB1dFJlZiRjdXJyZW50IiwiYWlDaGF0VG9vbHMiLCJvcHRpb24iLCJjbGljayIsImJlZ2luVG9vbENoaXBFeGl0Iiwid2FzV2ViIiwid2FzRGVlcCIsIl9zZWFyY2hNb2RlQWN0aXZlUmVmJCIsImhhbmRsZVBsdXNNZW51V2ViU2VhcmNoIiwiaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoIiwiX2VkaXRvclJlZiRjdXJyZW50MiIsImNvbXBhY3RTaW5nbGVSb3dUb29sYmFyIiwic2VuZERpc2FibGVkIiwiYWdlbnRDaGFuZ2VkIiwicHJldmlvdXNDaGF0SWQiLCJjdXJyZW50Q2hhdElkIiwiY2hhdENoYW5nZWQiLCJjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQiLCJuZXdDaGF0U3RhcnRlZCIsImlzSW5pdGlhbE1vdW50IiwiZGVsYXkiLCJfZWRpdG9yUmVmJGN1cnJlbnQzIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsIl9lZGl0b3JSZWYkY3VycmVudDQiLCJjbGVhciIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJfc3RhdGUkdGV4dCIsIl9zdGF0ZSRtZW50aW9ucyIsIl9lZGl0b3JSZWYkY3VycmVudDYiLCJzdGF0ZSIsInNlcmlhbGl6ZSIsInRleHQiLCJ0cmltIiwibWVudGlvbnMiLCJmb3JFYWNoIiwibSIsImFpQ2hhdE1lbnRpb25TZW5kIiwiU3RyaW5nIiwiaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kIiwiX2VkaXRvclJlZiRjdXJyZW50NyIsIl9zdGF0ZSR0ZXh0MiIsIl9lZGl0b3JSZWYkY3VycmVudDkiLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInR5cGVfcXVpY2tfYWN0aW9uIiwib3JpZ2luX3F1aWNrX2FjdGlvbiIsInRyaWdnZXJQYXJ0IiwiYmVmb3JlVHJpZ2dlciIsImVuZHNXaXRoIiwiaXNFbXB0eUJlZm9yZVRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQ4IiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwibGFiZWwiLCJoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24iLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWYyIiwiX2VkaXRvclJlZiRjdXJyZW50MCIsInRyaWdnZXIiLCJzbGFzaFRyaWdnZXIiLCJ2aXN1YWxNdWx0aWxpbmUiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJleHBsaWNpdE11bHRpbGluZSIsImluY2x1ZGVzIiwiaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCIsInN0YWJsZVZpc3VhbE11bHRpbGluZSIsIm5leHRJc011bHRpbGluZSIsIm5leHRIYXNUeXBpbmdQcmVzZW5jZSIsIm5leHRUeXBpbmdQcmVzZW5jZSIsInByZXYiLCJuZXh0IiwiYWN0aXZlIiwiYWlDaGF0UXVpY2tBY3Rpb25PcGVuIiwicXVlcnkiLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRmlsZVNlbGVjdCIsImZpbGVzIiwidGFyZ2V0IiwiZmlsZXNJbnNlcnRlZCIsImlzTmV3Rm9ybWF0IiwiZXh0ZW5zaW9uIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImV4Y2x1ZGVkRmlsZSIsImZpbGVOYW1lUGFydHMiLCJuYW1lIiwiZmlsZUV4dGVuc2lvbiIsInBvcCIsInNpemUiLCJwdXNoIiwidHlwZUZpbGUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsInZhbHVlIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudCIsImNvbnRhaW5zIiwiYWN0aXZlRWxlbWVudCIsImhhbmRsZVN0b3BHZW5lcmF0aW9uIiwiYWlDaGF0U3RvcFJlc3BvbnNlIiwicGx1c0ljb25Db2xvciIsInNlY29uZGFyeSIsIm1lZGl1bUdyYXkiLCJwbHVzTWVudUljb25Db2xvciIsIm1lbnVJY29uIiwicGx1c01lbnVTZWxlY3RlZENvbG9yIiwidGV4dEJyYW5kQm9sZCIsImFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24iLCJjb2xvciIsImNoaXBDbG9zZUljb24iLCJ3aWR0aCIsImhlaWdodCIsImNoaWxkcmVuIiwicmVmIiwiaGFzQXR0YWNobWVudHMiLCJvbkZvY3VzIiwib25CbHVyIiwic3R5bGUiLCJwb3NpdGlvbiIsIm9uU2VsZWN0Iiwib25DbG9zZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJpY29uIiwib25DbGljayIsIiRjb21wYWN0Um93IiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic2xvdFByb3BzIiwicGFwZXIiLCJlbGV2YXRpb24iLCJzeCIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiZ3JpZENvbHVtbiIsImdyaWRSb3ciLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsIm9uSW5wdXQiLCJvbktleURvd24iLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQge1xuICBDaGFuZ2VFdmVudCxcbiAgS2V5Ym9hcmRFdmVudCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHtcbiAgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uLFxuICBBY3RpdmVUb29sQ2hpcExhYmVsLFxuICBBY3RpdmVUb29sQ2hpcFJvb3QsXG4gIFBsdXNNZW51RGl2aWRlcixcbiAgUGx1c01lbnVJbm5lckNvbHVtbixcbiAgUGx1c01lbnVJdGVtQnV0dG9uLFxuICBQbHVzTWVudUl0ZW1MYWJlbCxcbiAgUGx1c01lbnVQYXBlcixcbiAgUGx1c01lbnVUb29sc1JvdyxcbiAgUGx1c1RvZ2dsZUJ1dHRvbixcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQsXG4gIFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG59IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmREcm9wZG93biB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZERyb3Bkb3duJ1xuaW1wb3J0IHsgdXNlU2xhc2hDb21tYW5kcyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNsYXNoQ29tbWFuZHMnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcbmltcG9ydCB7IE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxuICBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkVkaXRvciwgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkVkaXRvcidcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZU1lbnRpb25Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBUT09MX0NISVBfRVhJVF9NUyA9IDIyMFxuXG5jb25zdCBnZXRRdWlja0FjdGlvblR5cGUgPSAoY29tbWFuZDogQWN0aW9uKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgd29yZHMgPSBjb21tYW5kLnRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAucmVwbGFjZSgvW15hLXowLTlcXHNdKy9nLCAnICcpXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gIGlmICh3b3Jkcy5sZW5ndGggPT09IDApIHJldHVybiBjb21tYW5kLmlkXG4gIHJldHVybiB3b3Jkcy5tYXAoKHdvcmQsIGkpID0+IChpID09PSAwID8gd29yZCA6IGAke3dvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt3b3JkLnNsaWNlKDEpfWApKS5qb2luKCcnKVxufVxuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKSA9PiB2b2lkXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbn06IE1BSUFJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtoYXNXcmFwcGVkVG9TZWNvbmRMaW5lLCBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaGFzVHlwaW5nUHJlc2VuY2UsIHNldEhhc1R5cGluZ1ByZXNlbmNlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttb2RhbFByb3BzLCBzZXRNb2RhbFByb3BzXSA9IHVzZVN0YXRlKHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIGV4Y2x1ZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGV4Y2VlZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGZpbGVTaXplczoge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgfSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgdG9nZ2xlV2ViU2VhcmNoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgdG9nZ2xlRGVlcFNlYXJjaCwgaXNEZWVwU2VhcmNoQWN0aXZlLCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICB9KVxuXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgdG9vbENoaXBFeGl0VGltZXJSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuICBjb25zdCBzZWFyY2hNb2RlQWN0aXZlUmVmID0gdXNlUmVmKHsgd2ViOiBmYWxzZSwgZGVlcDogZmFsc2UgfSlcbiAgY29uc3QgcGx1c01lbnVPcGVuID0gQm9vbGVhbihwbHVzTWVudUFuY2hvcilcblxuICAvLyBJbmljaWFsaXphciBsYXMgcmVmZXJlbmNpYXMgY29tbyB1bmRlZmluZWQgcGFyYSBkZXRlY3RhciBlbCBwcmltZXIgY2FtYmlvIGNvcnJlY3RhbWVudGVcbiAgY29uc3QgcHJldmlvdXNBZ2VudElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c0NoYXRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNOZXdDaGF0S2V5UmVmID0gdXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0IGFuYWx5dGljc0FnZW50VHlwZSA9IGdldENoYXRUb29sc01lbnVBZ2VudFR5cGUoYWdlbnQpXG4gIGNvbnN0IGFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnID8geyBlbnRpdHk6IGFnZW50LmVudGl0eSA/PyBudWxsIH0gOiB7fVxuXG4gIGNvbnN0IHsgY29tbWFuZHM6IHNsYXNoQ29tbWFuZHMgfSA9IHVzZVNsYXNoQ29tbWFuZHMoYWdlbnQ/LmlkKVxuICBjb25zdCBbc2hvd1NsYXNoRHJvcGRvd24sIHNldFNob3dTbGFzaERyb3Bkb3duXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2xhc2hRdWVyeSwgc2V0U2xhc2hRdWVyeV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3Qgc2xhc2hNZW51V2FzT3BlblJlZiA9IHVzZVJlZihmYWxzZSlcblxuICAvKiogVHJhcyBlbGVnaXIgbyBxdWl0YXIgYsO6c3F1ZWRhIHdlYi9wcm9mdW5kYTogdm9sdmVyIGFsIHRleHRhcmVhIChQb3BvdmVyL21lbnUgcHVlZGUgcm9iYXIgZm9jbykuICovXG4gIGNvbnN0IHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgMClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY2xvc2VQbHVzTWVudSA9ICgpID0+IHtcbiAgICBzZXRQbHVzTWVudUFuY2hvcihudWxsKVxuICB9XG5cbiAgY29uc3QgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHJldHVyblxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBiZWdpblRvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHdhc1dlYiA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgY29uc3Qgd2FzRGVlcCA9IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgIGlmICghd2FzV2ViICYmICF3YXNEZWVwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKHRydWUpXG4gICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGNvbnN0IHsgd2ViLCBkZWVwIH0gPSBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnRcbiAgICAgIGlmICh3YXNXZWIgJiYgd2ViKSB7XG4gICAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgICB9IGVsc2UgaWYgKHdhc0RlZXAgJiYgZGVlcCkge1xuICAgICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICAgIH1cbiAgICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gICAgfSwgVE9PTF9DSElQX0VYSVRfTVMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZGVlcF9zZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgY29uc3QgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIgPSB1c2VNZW1vKFxuICAgICgpID0+IGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSAmJiAhaGFzV3JhcHBlZFRvU2Vjb25kTGluZSxcbiAgICBbYXR0YWNobWVudHMubGVuZ3RoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlLCBoYXNXcmFwcGVkVG9TZWNvbmRMaW5lXVxuICApXG5cbiAgY29uc3Qgc2VuZERpc2FibGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiAhaGFzVHlwaW5nUHJlc2VuY2UgJiYgYXR0YWNobWVudHMubGVuZ3RoID09PSAwLFxuICAgIFtoYXNUeXBpbmdQcmVzZW5jZSwgYXR0YWNobWVudHMubGVuZ3RoXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnQgPSB7IHdlYjogaXNXZWJTZWFyY2hBY3RpdmUsIGRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpXG4gICAgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhZ2VudENoYW5nZWQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCAhPT0gYWdlbnQ/LmlkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICBjb25zdCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPVxuICAgICAgKHByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNDaGF0SWQgPT09IG51bGwpICYmIGN1cnJlbnRDaGF0SWQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50Q2hhdElkICE9PSBudWxsXG4gICAgY29uc3QgbmV3Q2hhdFN0YXJ0ZWQgPSBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCAhPT0gbmV3Q2hhdEtleVxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWRcblxuICAgIGlmICgoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiYgIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZWQpIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQ2xlYXIgaW5wdXQgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gIH0sIFtyZXNldE1lbnRpb25PcGVuVHJhY2tpbmddKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LnNlcmlhbGl6ZSgpXG4gICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgaWYgKCF0ZXh0LnRyaW0oKSAmJiAhYXR0YWNobWVudHMubGVuZ3RoKSByZXR1cm5cbiAgICBjb25zdCBtZW50aW9ucyA9IHN0YXRlPy5tZW50aW9ucyA/PyBbXVxuICAgIG1lbnRpb25zLmZvckVhY2gobSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TWVudGlvblNlbmQsIHsgdHlwZTogbS50eXBlLCBpZDogU3RyaW5nKG0uaWQpIH0pXG4gICAgfSlcbiAgICBvblNlbmRNZXNzYWdlKHRleHQsIGF0dGFjaG1lbnRzLCBtZW50aW9ucylcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICB9LCBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIGV2ZW50QW1wbGl0dWRlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmddKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFNsYXNoQ29tbWFuZCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb21tYW5kOiBBY3Rpb24pID0+IHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRRdWlja0FjdGlvblNlbGVjdCwge1xuICAgICAgICB0eXBlX3F1aWNrX2FjdGlvbjogZ2V0UXVpY2tBY3Rpb25UeXBlKGNvbW1hbmQpLFxuICAgICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiAnc2xhc2hfbWVudScsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgICAgIGNvbnN0IGJlZm9yZVRyaWdnZXIgPSB0ZXh0LmVuZHNXaXRoKHRyaWdnZXJQYXJ0KSA/IHRleHQuc2xpY2UoMCwgLXRyaWdnZXJQYXJ0Lmxlbmd0aCkgOiB0ZXh0XG4gICAgICBjb25zdCBpc0VtcHR5QmVmb3JlVHJpZ2dlciA9IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoaXNFbXB0eUJlZm9yZVRyaWdnZXIpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZShjb21tYW5kLnRpdGxlLCBhdHRhY2htZW50cywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21tYW5kLmlkKVxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0U2xhc2hDb21tYW5kKHsgaWQ6IGNvbW1hbmQuaWQsIGxhYmVsOiBjb21tYW5kLnRpdGxlIH0pXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIHNsYXNoUXVlcnksIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duID0gKCkgPT4ge1xuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgdHJpZ2dlcixcbiAgICAgIHNsYXNoVHJpZ2dlcixcbiAgICB9OiB7XG4gICAgICB0ZXh0OiBzdHJpbmdcbiAgICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICBzbGFzaFRyaWdnZXI/OiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgdmlzdWFsTXVsdGlsaW5lID0gISFlZGl0b3JSZWYuY3VycmVudD8uaGFzVmlzdWFsTXVsdGlsaW5lKClcbiAgICAgIGNvbnN0IGV4cGxpY2l0TXVsdGlsaW5lID0gdGV4dC5pbmNsdWRlcygnXFxuJylcbiAgICAgIGNvbnN0IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPSB0ZXh0Lmxlbmd0aCA8PSAxICYmICFleHBsaWNpdE11bHRpbGluZSAmJiB2aXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IHN0YWJsZVZpc3VhbE11bHRpbGluZSA9IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPyBmYWxzZSA6IHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3QgbmV4dElzTXVsdGlsaW5lID0gZXhwbGljaXRNdWx0aWxpbmUgfHwgc3RhYmxlVmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SGFzVHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBuZXh0VHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKG5leHRUeXBpbmdQcmVzZW5jZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUocHJldiA9PiB7XG4gICAgICAgIGxldCBuZXh0ID0gcHJldlxuICAgICAgICBpZiAoIW5leHRIYXNUeXBpbmdQcmVzZW5jZSkge1xuICAgICAgICAgIG5leHQgPSBmYWxzZVxuICAgICAgICB9IGVsc2UgaWYgKG5leHRJc011bHRpbGluZSkge1xuICAgICAgICAgIG5leHQgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgfSlcbiAgICAgIG9uQ2hhbmdlPy4oKVxuICAgICAgaGFuZGxlVHJpZ2dlcih0cmlnZ2VyKVxuXG4gICAgICBpZiAoc2xhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2xhc2hDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uT3BlbilcbiAgICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24odHJ1ZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeShzbGFzaFRyaWdnZXIucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlciwgc2xhc2hDb21tYW5kcywgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSBoYW5kbGVTZW5kTWVzc2FnZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlUG9wb3ZlcktleURvd24sIHBvcG92ZXJPcGVuLCBzZW5kRGlzYWJsZWQsIGRpc2FibGVkLCBoYW5kbGVTZW5kTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBhcmNoaXZvcyBkZSBhdWRpbzogaGFzdGEgMTBNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBwbHVzSWNvbkNvbG9yID0gaXNGb2N1c2VkID8gY29sb3JzLnRleHQuc2Vjb25kYXJ5IDogY29sb3JzLnRleHQubWVkaXVtR3JheVxuICBjb25zdCBwbHVzTWVudUljb25Db2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS5tZW51SWNvblxuICBjb25zdCBwbHVzTWVudVNlbGVjdGVkQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkudGV4dEJyYW5kQm9sZFxuXG4gIGxldCBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uOiBSZWFjdE5vZGVcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8Q3Jvc3MgY29sb3I9e01BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwQ2xvc2VJY29ufSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPEdsb2JlIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2Uge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8VGVsZXNjb3BlSWNvbiBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcj17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9XG4gICAgICAgIGRhdGEtbWFpYS1zdHJlYW1pbmc9e2lzU3RyZWFtaW5nID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fVxuICAgICAgPlxuICAgICAgICB7c2hvd1NsYXNoRHJvcGRvd24gJiYgKFxuICAgICAgICAgIDxTbGFzaENvbW1hbmREcm9wZG93blxuICAgICAgICAgICAgY29tbWFuZHM9e3NsYXNoQ29tbWFuZHN9XG4gICAgICAgICAgICBxdWVyeT17c2xhc2hRdWVyeX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmR9XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudCBpc0ltYWdlPXtpc0ltYWdlfT5cbiAgICAgICAgICAgICAgICAgICAge2F0dGFjaG1lbnQuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVBdHRhY2htZW50KGF0dGFjaG1lbnQuaWQpfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VHJhc2ggY29sb3I9XCJyZ2JhKDE5MSwgMTkxLCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50RGVsZXRlSWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnQ+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgJGNvbXBhY3RSb3c9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfT5cbiAgICAgICAgICA8U3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAgPFBsdXNNZW51VG9vbHNSb3c+XG4gICAgICAgICAgICAgIDxQbHVzVG9nZ2xlQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJG1lbnVPcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUGx1c0J1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2NoYXQub3BlblBsdXNNZW51QXJpYScpfVxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1cyBjb2xvcj17cGx1c0ljb25Db2xvcn0gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICA8L1BsdXNUb2dnbGVCdXR0b24+XG4gICAgICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICAgICAgb3Blbj17cGx1c01lbnVPcGVufVxuICAgICAgICAgICAgICAgIGFuY2hvckVsPXtwbHVzTWVudUFuY2hvcn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZVBsdXNNZW51fVxuICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbj17eyB2ZXJ0aWNhbDogJ3RvcCcsIGhvcml6b250YWw6ICdsZWZ0JyB9fVxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17eyB2ZXJ0aWNhbDogJ2JvdHRvbScsIGhvcml6b250YWw6ICdsZWZ0JyB9fVxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEF0dGFjaCBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51RGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICB7KGlzV2ViU2VhcmNoQWN0aXZlIHx8IGlzRGVlcFNlYXJjaEFjdGl2ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAkZXhpdGluZz17dG9vbENoaXBFeGl0aW5nfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NlU2hvd249e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwUm9vdD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICA8L1N0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGw+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uOiAyLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCwgYWxpZ25TZWxmOiAnY2VudGVyJyB9XG4gICAgICAgICAgICAgICAgOiB7IGdyaWRDb2x1bW46ICcxIC8gLTEnLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BCdXR0b24gZGlzYWJsZWQ9e2ZhbHNlfSBvbkNsaWNrPXtoYW5kbGVTdG9wR2VuZXJhdGlvbn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wSWNvbiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVN0b3BCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnNlbmQnKX0+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2lubGluZS1mbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VuZERpc2FibGVkIHx8IGRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBoYXNWYWx1ZXM9e2hhc1R5cGluZ1ByZXNlbmNlIHx8IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYXBlclBsYW5lIGNvbG9yPVwiI0JGQkZCRlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbD5cbiAgICAgICAgPC9TdHlsZWRNQUlBTWFpblRvb2xiYXJHcmlkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICBhY2NlcHQ9XCIudHh0LC5tZCwuY3N2LC5kb2MsLmRvY3gsLnBuZywuanBnLC5qcGVnLC5wZGYsLnhsc3gsLnhscywuZmxhYywubTRhLC5tcDMsLm1wNCwub2dhLC5vZ2csLndhdiwud2VibVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUZpbGVTZWxlY3R9XG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ25vbmUnIH19XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZE1BSUFJbnB1dFdyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGZpbGVTaXplczoge30gfSl9XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNsdWRlZEZpbGVzfVxuICAgICAgICAgIGV4Y2VlZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjZWVkZWRGaWxlc31cbiAgICAgICAgICBmaWxlU2l6ZXM9e21vZGFsUHJvcHMuZmlsZVNpemVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtwb3BvdmVyTm9kZSAmJiBjcmVhdGVQb3J0YWwocG9wb3Zlck5vZGUsIGRvY3VtZW50LmJvZHkpfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUtFQSxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0MsT0FBTyxRQUFRLGVBQWU7QUFDdkMsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFFdEQsU0FDRUMsd0JBQXdCLEVBQ3hCQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLEVBQ2RDLHdCQUF3QixFQUN4QkMsc0JBQXNCLEVBQ3RC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
|
|
@@ -4,9 +4,21 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
4
4
|
import { useEffect, useMemo, useState } from 'react';
|
|
5
5
|
import { useT } from '../../../hooks/useT';
|
|
6
6
|
import { ACTION_CATEGORY_MAP, ACTION_CATEGORY_ORDER } from '../../../utils/actionCategoryMap';
|
|
7
|
-
import { SCSCDropdown, SCSCItem, SCSCItemTitle, SCSCItemSubtitle, SCSCItemPrefix,
|
|
8
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { SCSCDropdown, SCSCItem, SCSCItemTitle, SCSCItemSubtitle, SCSCItemPrefix, SCSCCategoryGroup, SCSCCategoryHeader } from './SlashCommandDropdown.styles';
|
|
8
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
var UNGROUPED_KEY = '__ungrouped__';
|
|
10
|
+
var renderWithHighlight = function renderWithHighlight(text, query) {
|
|
11
|
+
var needle = query.trim().toLowerCase();
|
|
12
|
+
if (!needle) return text;
|
|
13
|
+
var haystack = text.toLowerCase();
|
|
14
|
+
var idx = haystack.indexOf(needle);
|
|
15
|
+
if (idx === -1) return text;
|
|
16
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
17
|
+
children: [text.slice(0, idx), /*#__PURE__*/_jsx("strong", {
|
|
18
|
+
children: text.slice(idx, idx + needle.length)
|
|
19
|
+
}), text.slice(idx + needle.length)]
|
|
20
|
+
});
|
|
21
|
+
};
|
|
10
22
|
export var SlashCommandDropdown = function SlashCommandDropdown(_ref) {
|
|
11
23
|
var commands = _ref.commands,
|
|
12
24
|
query = _ref.query,
|
|
@@ -98,11 +110,7 @@ export var SlashCommandDropdown = function SlashCommandDropdown(_ref) {
|
|
|
98
110
|
};
|
|
99
111
|
}, [orderedCommands, highlightedIndex, onSelect, onClose]);
|
|
100
112
|
if (orderedCommands.length === 0) {
|
|
101
|
-
return
|
|
102
|
-
children: /*#__PURE__*/_jsx(SCSCEmpty, {
|
|
103
|
-
children: "No commands found"
|
|
104
|
-
})
|
|
105
|
-
});
|
|
113
|
+
return null;
|
|
106
114
|
}
|
|
107
115
|
var flatIndex = -1;
|
|
108
116
|
return /*#__PURE__*/_jsx(SCSCDropdown, {
|
|
@@ -131,9 +139,9 @@ export var SlashCommandDropdown = function SlashCommandDropdown(_ref) {
|
|
|
131
139
|
children: [/*#__PURE__*/_jsxs(SCSCItemTitle, {
|
|
132
140
|
children: [/*#__PURE__*/_jsx(SCSCItemPrefix, {
|
|
133
141
|
children: "/"
|
|
134
|
-
}), command.title]
|
|
142
|
+
}), renderWithHighlight(command.title, query)]
|
|
135
143
|
}), command.subtitle && /*#__PURE__*/_jsx(SCSCItemSubtitle, {
|
|
136
|
-
children: command.subtitle
|
|
144
|
+
children: renderWithHighlight(command.subtitle, query)
|
|
137
145
|
})]
|
|
138
146
|
}, command.id);
|
|
139
147
|
})]
|
|
@@ -141,4 +149,4 @@ export var SlashCommandDropdown = function SlashCommandDropdown(_ref) {
|
|
|
141
149
|
})
|
|
142
150
|
});
|
|
143
151
|
};
|
|
144
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VUIiwiQUNUSU9OX0NBVEVHT1JZX01BUCIsIkFDVElPTl9DQVRFR09SWV9PUkRFUiIsIlNDU0NEcm9wZG93biIsIlNDU0NJdGVtIiwiU0NTQ0l0ZW1UaXRsZSIsIlNDU0NJdGVtU3VidGl0bGUiLCJTQ1NDSXRlbVByZWZpeCIsIlNDU0NFbXB0eSIsIlNDU0NDYXRlZ29yeUdyb3VwIiwiU0NTQ0NhdGVnb3J5SGVhZGVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlVOR1JPVVBFRF9LRVkiLCJTbGFzaENvbW1hbmREcm9wZG93biIsIl9yZWYiLCJjb21tYW5kcyIsInF1ZXJ5Iiwib25TZWxlY3QiLCJvbkNsb3NlIiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaGlnaGxpZ2h0ZWRJbmRleCIsInNldEhpZ2hsaWdodGVkSW5kZXgiLCJmaWx0ZXJlZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJmaWx0ZXIiLCJjIiwiX2Mkc3VidGl0bGUkdG9Mb3dlckNhIiwiX2Mkc3VidGl0bGUiLCJ0aXRsZSIsImluY2x1ZGVzIiwic3VidGl0bGUiLCJvcmRlcmVkQ29tbWFuZHMiLCJncm91cGVkIiwiTWFwIiwiZm9yRWFjaCIsIl9jJGNhdGVnb3J5Iiwia2V5IiwiY2F0ZWdvcnkiLCJoYXMiLCJzZXQiLCJnZXQiLCJwdXNoIiwicmVzdWx0IiwiY2F0S2V5IiwiaXRlbXMiLCJsZW5ndGgiLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsInVuZ3JvdXBlZCIsInJlbmRlckdyb3VwcyIsIl9jJGNhdGVnb3J5MiIsImhhbmRsZXIiLCJlIiwicHJldmVudERlZmF1bHQiLCJwcmV2Iiwic3RvcFByb3BhZ2F0aW9uIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNoaWxkcmVuIiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJjYXRlZ29yeURlZiIsImljb24iLCJsYWJlbEtleSIsImNvbW1hbmQiLCJjdXJyZW50SW5kZXgiLCIkaGlnaGxpZ2h0ZWQiLCJvbk1vdXNlRW50ZXIiLCJvbkNsaWNrIiwidHlwZSIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kRHJvcGRvd24vU2xhc2hDb21tYW5kRHJvcGRvd24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uQ2F0ZWdvcnlLZXkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEFDVElPTl9DQVRFR09SWV9NQVAsIEFDVElPTl9DQVRFR09SWV9PUkRFUiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGlvbkNhdGVnb3J5TWFwJ1xuaW1wb3J0IHtcbiAgU0NTQ0Ryb3Bkb3duLFxuICBTQ1NDSXRlbSxcbiAgU0NTQ0l0ZW1UaXRsZSxcbiAgU0NTQ0l0ZW1TdWJ0aXRsZSxcbiAgU0NTQ0l0ZW1QcmVmaXgsXG4gIFNDU0NFbXB0eSxcbiAgU0NTQ0NhdGVnb3J5R3JvdXAsXG4gIFNDU0NDYXRlZ29yeUhlYWRlcixcbn0gZnJvbSAnLi9TbGFzaENvbW1hbmREcm9wZG93bi5zdHlsZXMnXG5cbnR5cGUgU2xhc2hDb21tYW5kRHJvcGRvd25Qcm9wcyA9IHtcbiAgY29tbWFuZHM6IEFjdGlvbltdXG4gIHF1ZXJ5OiBzdHJpbmdcbiAgb25TZWxlY3Q6IChjb21tYW5kOiBBY3Rpb24pID0+IHZvaWRcbiAgb25DbG9zZTogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBVTkdST1VQRURfS0VZID0gJ19fdW5ncm91cGVkX18nXG5cbmV4cG9ydCBjb25zdCBTbGFzaENvbW1hbmREcm9wZG93biA9ICh7IGNvbW1hbmRzLCBxdWVyeSwgb25TZWxlY3QsIG9uQ2xvc2UgfTogU2xhc2hDb21tYW5kRHJvcGRvd25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBbaGlnaGxpZ2h0ZWRJbmRleCwgc2V0SGlnaGxpZ2h0ZWRJbmRleF0gPSB1c2VTdGF0ZSgwKVxuXG4gIGNvbnN0IGZpbHRlcmVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHF1ZXJ5LnRyaW0oKS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4gY29tbWFuZHNcbiAgICByZXR1cm4gY29tbWFuZHMuZmlsdGVyKFxuICAgICAgYyA9PiBjLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobm9ybWFsaXplZCkgfHwgKGMuc3VidGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobm9ybWFsaXplZCkgPz8gZmFsc2UpXG4gICAgKVxuICB9LCBbY29tbWFuZHMsIHF1ZXJ5XSlcblxuICBjb25zdCBvcmRlcmVkQ29tbWFuZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cGVkID0gbmV3IE1hcDxzdHJpbmcsIEFjdGlvbltdPigpXG4gICAgZmlsdGVyZWQuZm9yRWFjaChjID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMuY2F0ZWdvcnkgPz8gVU5HUk9VUEVEX0tFWVxuICAgICAgaWYgKCFncm91cGVkLmhhcyhrZXkpKSBncm91cGVkLnNldChrZXksIFtdKVxuICAgICAgZ3JvdXBlZC5nZXQoa2V5KSEucHVzaChjKVxuICAgIH0pXG5cbiAgICBjb25zdCByZXN1bHQ6IEFjdGlvbltdID0gW11cbiAgICBBQ1RJT05fQ0FURUdPUllfT1JERVIuZm9yRWFjaChjYXRLZXkgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSBncm91cGVkLmdldChjYXRLZXkpXG4gICAgICBpZiAoaXRlbXM/Lmxlbmd0aCkgcmVzdWx0LnB1c2goLi4uaXRlbXMpXG4gICAgfSlcbiAgICBjb25zdCB1bmdyb3VwZWQgPSBncm91cGVkLmdldChVTkdST1VQRURfS0VZKVxuICAgIGlmICh1bmdyb3VwZWQ/Lmxlbmd0aCkgcmVzdWx0LnB1c2goLi4udW5ncm91cGVkKVxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW2ZpbHRlcmVkXSlcblxuICBjb25zdCByZW5kZXJHcm91cHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cGVkID0gbmV3IE1hcDxzdHJpbmcsIEFjdGlvbltdPigpXG4gICAgZmlsdGVyZWQuZm9yRWFjaChjID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMuY2F0ZWdvcnkgPz8gVU5HUk9VUEVEX0tFWVxuICAgICAgaWYgKCFncm91cGVkLmhhcyhrZXkpKSBncm91cGVkLnNldChrZXksIFtdKVxuICAgICAgZ3JvdXBlZC5nZXQoa2V5KSEucHVzaChjKVxuICAgIH0pXG5cbiAgICBjb25zdCByZXN1bHQ6IHsga2V5OiBBY3Rpb25DYXRlZ29yeUtleSB8IHR5cGVvZiBVTkdST1VQRURfS0VZOyBpdGVtczogQWN0aW9uW10gfVtdID0gW11cbiAgICBBQ1RJT05fQ0FURUdPUllfT1JERVIuZm9yRWFjaChjYXRLZXkgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSBncm91cGVkLmdldChjYXRLZXkpXG4gICAgICBpZiAoaXRlbXM/Lmxlbmd0aCkgcmVzdWx0LnB1c2goeyBrZXk6IGNhdEtleSwgaXRlbXMgfSlcbiAgICB9KVxuICAgIGNvbnN0IHVuZ3JvdXBlZCA9IGdyb3VwZWQuZ2V0KFVOR1JPVVBFRF9LRVkpXG4gICAgaWYgKHVuZ3JvdXBlZD8ubGVuZ3RoKSByZXN1bHQucHVzaCh7IGtleTogVU5HUk9VUEVEX0tFWSwgaXRlbXM6IHVuZ3JvdXBlZCB9KVxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW2ZpbHRlcmVkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEhpZ2hsaWdodGVkSW5kZXgoMClcbiAgfSwgW3F1ZXJ5XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZXIgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SGlnaGxpZ2h0ZWRJbmRleChwcmV2ID0+IChvcmRlcmVkQ29tbWFuZHMubGVuZ3RoID8gKHByZXYgKyAxKSAlIG9yZGVyZWRDb21tYW5kcy5sZW5ndGggOiAwKSlcbiAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SGlnaGxpZ2h0ZWRJbmRleChwcmV2ID0+XG4gICAgICAgICAgb3JkZXJlZENvbW1hbmRzLmxlbmd0aCA/IChwcmV2IC0gMSArIG9yZGVyZWRDb21tYW5kcy5sZW5ndGgpICUgb3JkZXJlZENvbW1hbmRzLmxlbmd0aCA6IDBcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICBpZiAob3JkZXJlZENvbW1hbmRzW2hpZ2hsaWdodGVkSW5kZXhdKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uU2VsZWN0KG9yZGVyZWRDb21tYW5kc1toaWdobGlnaHRlZEluZGV4XSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIG9uQ2xvc2UoKVxuICAgICAgfVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciwgdHJ1ZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIsIHRydWUpXG4gIH0sIFtvcmRlcmVkQ29tbWFuZHMsIGhpZ2hsaWdodGVkSW5kZXgsIG9uU2VsZWN0LCBvbkNsb3NlXSlcblxuICBpZiAob3JkZXJlZENvbW1hbmRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NTQ0Ryb3Bkb3duPlxuICAgICAgICA8U0NTQ0VtcHR5Pk5vIGNvbW1hbmRzIGZvdW5kPC9TQ1NDRW1wdHk+XG4gICAgICA8L1NDU0NEcm9wZG93bj5cbiAgICApXG4gIH1cblxuICBsZXQgZmxhdEluZGV4ID0gLTFcblxuICByZXR1cm4gKFxuICAgIDxTQ1NDRHJvcGRvd24+XG4gICAgICB7cmVuZGVyR3JvdXBzLm1hcChncm91cCA9PiB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5RGVmID0gZ3JvdXAua2V5ICE9PSBVTkdST1VQRURfS0VZID8gQUNUSU9OX0NBVEVHT1JZX01BUFtncm91cC5rZXldIDogbnVsbFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTQ1NDQ2F0ZWdvcnlHcm91cCBrZXk9e2dyb3VwLmtleX0+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlEZWYgJiYgKFxuICAgICAgICAgICAgICA8U0NTQ0NhdGVnb3J5SGVhZGVyPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPntjYXRlZ29yeURlZi5pY29ufTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57dChjYXRlZ29yeURlZi5sYWJlbEtleSl9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDU0NDYXRlZ29yeUhlYWRlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7Z3JvdXAuaXRlbXMubWFwKGNvbW1hbmQgPT4ge1xuICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMVxuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBmbGF0SW5kZXhcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8U0NTQ0l0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17Y29tbWFuZC5pZH1cbiAgICAgICAgICAgICAgICAgICRoaWdobGlnaHRlZD17Y3VycmVudEluZGV4ID09PSBoaWdobGlnaHRlZEluZGV4fVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRIaWdobGlnaHRlZEluZGV4KGN1cnJlbnRJbmRleCl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblNlbGVjdChjb21tYW5kKX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTQ1NDSXRlbVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8U0NTQ0l0ZW1QcmVmaXg+LzwvU0NTQ0l0ZW1QcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIHtjb21tYW5kLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgPC9TQ1NDSXRlbVRpdGxlPlxuICAgICAgICAgICAgICAgICAge2NvbW1hbmQuc3VidGl0bGUgJiYgPFNDU0NJdGVtU3VidGl0bGU+e2NvbW1hbmQuc3VidGl0bGV9PC9TQ1NDSXRlbVN1YnRpdGxlPn1cbiAgICAgICAgICAgICAgICA8L1NDU0NJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDU0NDYXRlZ29yeUdyb3VwPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8L1NDU0NEcm9wZG93bj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBRXBELFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsbUJBQW1CLEVBQUVDLHFC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
|
|
152
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VUIiwiQUNUSU9OX0NBVEVHT1JZX01BUCIsIkFDVElPTl9DQVRFR09SWV9PUkRFUiIsIlNDU0NEcm9wZG93biIsIlNDU0NJdGVtIiwiU0NTQ0l0ZW1UaXRsZSIsIlNDU0NJdGVtU3VidGl0bGUiLCJTQ1NDSXRlbVByZWZpeCIsIlNDU0NDYXRlZ29yeUdyb3VwIiwiU0NTQ0NhdGVnb3J5SGVhZGVyIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVU5HUk9VUEVEX0tFWSIsInJlbmRlcldpdGhIaWdobGlnaHQiLCJ0ZXh0IiwicXVlcnkiLCJuZWVkbGUiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJoYXlzdGFjayIsImlkeCIsImluZGV4T2YiLCJjaGlsZHJlbiIsInNsaWNlIiwibGVuZ3RoIiwiU2xhc2hDb21tYW5kRHJvcGRvd24iLCJfcmVmIiwiY29tbWFuZHMiLCJvblNlbGVjdCIsIm9uQ2xvc2UiLCJfdXNlVCIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJoaWdobGlnaHRlZEluZGV4Iiwic2V0SGlnaGxpZ2h0ZWRJbmRleCIsImZpbHRlcmVkIiwibm9ybWFsaXplZCIsImZpbHRlciIsImMiLCJfYyRzdWJ0aXRsZSR0b0xvd2VyQ2EiLCJfYyRzdWJ0aXRsZSIsInRpdGxlIiwiaW5jbHVkZXMiLCJzdWJ0aXRsZSIsIm9yZGVyZWRDb21tYW5kcyIsImdyb3VwZWQiLCJNYXAiLCJmb3JFYWNoIiwiX2MkY2F0ZWdvcnkiLCJrZXkiLCJjYXRlZ29yeSIsImhhcyIsInNldCIsImdldCIsInB1c2giLCJyZXN1bHQiLCJjYXRLZXkiLCJpdGVtcyIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwidW5ncm91cGVkIiwicmVuZGVyR3JvdXBzIiwiX2MkY2F0ZWdvcnkyIiwiaGFuZGxlciIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInByZXYiLCJzdG9wUHJvcGFnYXRpb24iLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJjYXRlZ29yeURlZiIsImljb24iLCJsYWJlbEtleSIsImNvbW1hbmQiLCJjdXJyZW50SW5kZXgiLCIkaGlnaGxpZ2h0ZWQiLCJvbk1vdXNlRW50ZXIiLCJvbkNsaWNrIiwidHlwZSIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kRHJvcGRvd24vU2xhc2hDb21tYW5kRHJvcGRvd24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlLCB0eXBlIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24sIEFjdGlvbkNhdGVnb3J5S2V5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBBQ1RJT05fQ0FURUdPUllfTUFQLCBBQ1RJT05fQ0FURUdPUllfT1JERVIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hY3Rpb25DYXRlZ29yeU1hcCdcbmltcG9ydCB7XG4gIFNDU0NEcm9wZG93bixcbiAgU0NTQ0l0ZW0sXG4gIFNDU0NJdGVtVGl0bGUsXG4gIFNDU0NJdGVtU3VidGl0bGUsXG4gIFNDU0NJdGVtUHJlZml4LFxuICBTQ1NDQ2F0ZWdvcnlHcm91cCxcbiAgU0NTQ0NhdGVnb3J5SGVhZGVyLFxufSBmcm9tICcuL1NsYXNoQ29tbWFuZERyb3Bkb3duLnN0eWxlcydcblxudHlwZSBTbGFzaENvbW1hbmREcm9wZG93blByb3BzID0ge1xuICBjb21tYW5kczogQWN0aW9uW11cbiAgcXVlcnk6IHN0cmluZ1xuICBvblNlbGVjdDogKGNvbW1hbmQ6IEFjdGlvbikgPT4gdm9pZFxuICBvbkNsb3NlOiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IFVOR1JPVVBFRF9LRVkgPSAnX191bmdyb3VwZWRfXydcblxuY29uc3QgcmVuZGVyV2l0aEhpZ2hsaWdodCA9ICh0ZXh0OiBzdHJpbmcsIHF1ZXJ5OiBzdHJpbmcpOiBSZWFjdE5vZGUgPT4ge1xuICBjb25zdCBuZWVkbGUgPSBxdWVyeS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBpZiAoIW5lZWRsZSkgcmV0dXJuIHRleHRcbiAgY29uc3QgaGF5c3RhY2sgPSB0ZXh0LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgaWR4ID0gaGF5c3RhY2suaW5kZXhPZihuZWVkbGUpXG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gdGV4dFxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7dGV4dC5zbGljZSgwLCBpZHgpfVxuICAgICAgPHN0cm9uZz57dGV4dC5zbGljZShpZHgsIGlkeCArIG5lZWRsZS5sZW5ndGgpfTwvc3Ryb25nPlxuICAgICAge3RleHQuc2xpY2UoaWR4ICsgbmVlZGxlLmxlbmd0aCl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNsYXNoQ29tbWFuZERyb3Bkb3duID0gKHsgY29tbWFuZHMsIHF1ZXJ5LCBvblNlbGVjdCwgb25DbG9zZSB9OiBTbGFzaENvbW1hbmREcm9wZG93blByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFtoaWdobGlnaHRlZEluZGV4LCBzZXRIaWdobGlnaHRlZEluZGV4XSA9IHVzZVN0YXRlKDApXG5cbiAgY29uc3QgZmlsdGVyZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiBjb21tYW5kc1xuICAgIHJldHVybiBjb21tYW5kcy5maWx0ZXIoXG4gICAgICBjID0+IGMudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhub3JtYWxpemVkKSB8fCAoYy5zdWJ0aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhub3JtYWxpemVkKSA/PyBmYWxzZSlcbiAgICApXG4gIH0sIFtjb21tYW5kcywgcXVlcnldKVxuXG4gIGNvbnN0IG9yZGVyZWRDb21tYW5kcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWQgPSBuZXcgTWFwPHN0cmluZywgQWN0aW9uW10+KClcbiAgICBmaWx0ZXJlZC5mb3JFYWNoKGMgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5jYXRlZ29yeSA/PyBVTkdST1VQRURfS0VZXG4gICAgICBpZiAoIWdyb3VwZWQuaGFzKGtleSkpIGdyb3VwZWQuc2V0KGtleSwgW10pXG4gICAgICBncm91cGVkLmdldChrZXkpIS5wdXNoKGMpXG4gICAgfSlcblxuICAgIGNvbnN0IHJlc3VsdDogQWN0aW9uW10gPSBbXVxuICAgIEFDVElPTl9DQVRFR09SWV9PUkRFUi5mb3JFYWNoKGNhdEtleSA9PiB7XG4gICAgICBjb25zdCBpdGVtcyA9IGdyb3VwZWQuZ2V0KGNhdEtleSlcbiAgICAgIGlmIChpdGVtcz8ubGVuZ3RoKSByZXN1bHQucHVzaCguLi5pdGVtcylcbiAgICB9KVxuICAgIGNvbnN0IHVuZ3JvdXBlZCA9IGdyb3VwZWQuZ2V0KFVOR1JPVVBFRF9LRVkpXG4gICAgaWYgKHVuZ3JvdXBlZD8ubGVuZ3RoKSByZXN1bHQucHVzaCguLi51bmdyb3VwZWQpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LCBbZmlsdGVyZWRdKVxuXG4gIGNvbnN0IHJlbmRlckdyb3VwcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWQgPSBuZXcgTWFwPHN0cmluZywgQWN0aW9uW10+KClcbiAgICBmaWx0ZXJlZC5mb3JFYWNoKGMgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5jYXRlZ29yeSA/PyBVTkdST1VQRURfS0VZXG4gICAgICBpZiAoIWdyb3VwZWQuaGFzKGtleSkpIGdyb3VwZWQuc2V0KGtleSwgW10pXG4gICAgICBncm91cGVkLmdldChrZXkpIS5wdXNoKGMpXG4gICAgfSlcblxuICAgIGNvbnN0IHJlc3VsdDogeyBrZXk6IEFjdGlvbkNhdGVnb3J5S2V5IHwgdHlwZW9mIFVOR1JPVVBFRF9LRVk7IGl0ZW1zOiBBY3Rpb25bXSB9W10gPSBbXVxuICAgIEFDVElPTl9DQVRFR09SWV9PUkRFUi5mb3JFYWNoKGNhdEtleSA9PiB7XG4gICAgICBjb25zdCBpdGVtcyA9IGdyb3VwZWQuZ2V0KGNhdEtleSlcbiAgICAgIGlmIChpdGVtcz8ubGVuZ3RoKSByZXN1bHQucHVzaCh7IGtleTogY2F0S2V5LCBpdGVtcyB9KVxuICAgIH0pXG4gICAgY29uc3QgdW5ncm91cGVkID0gZ3JvdXBlZC5nZXQoVU5HUk9VUEVEX0tFWSlcbiAgICBpZiAodW5ncm91cGVkPy5sZW5ndGgpIHJlc3VsdC5wdXNoKHsga2V5OiBVTkdST1VQRURfS0VZLCBpdGVtczogdW5ncm91cGVkIH0pXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LCBbZmlsdGVyZWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SGlnaGxpZ2h0ZWRJbmRleCgwKVxuICB9LCBbcXVlcnldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRIaWdobGlnaHRlZEluZGV4KHByZXYgPT4gKG9yZGVyZWRDb21tYW5kcy5sZW5ndGggPyAocHJldiArIDEpICUgb3JkZXJlZENvbW1hbmRzLmxlbmd0aCA6IDApKVxuICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRIaWdobGlnaHRlZEluZGV4KHByZXYgPT5cbiAgICAgICAgICBvcmRlcmVkQ29tbWFuZHMubGVuZ3RoID8gKHByZXYgLSAxICsgb3JkZXJlZENvbW1hbmRzLmxlbmd0aCkgJSBvcmRlcmVkQ29tbWFuZHMubGVuZ3RoIDogMFxuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIGlmIChvcmRlcmVkQ29tbWFuZHNbaGlnaGxpZ2h0ZWRJbmRleF0pIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgb25TZWxlY3Qob3JkZXJlZENvbW1hbmRzW2hpZ2hsaWdodGVkSW5kZXhdKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgb25DbG9zZSgpXG4gICAgICB9XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyLCB0cnVlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciwgdHJ1ZSlcbiAgfSwgW29yZGVyZWRDb21tYW5kcywgaGlnaGxpZ2h0ZWRJbmRleCwgb25TZWxlY3QsIG9uQ2xvc2VdKVxuXG4gIGlmIChvcmRlcmVkQ29tbWFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGxldCBmbGF0SW5kZXggPSAtMVxuXG4gIHJldHVybiAoXG4gICAgPFNDU0NEcm9wZG93bj5cbiAgICAgIHtyZW5kZXJHcm91cHMubWFwKGdyb3VwID0+IHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlEZWYgPSBncm91cC5rZXkgIT09IFVOR1JPVVBFRF9LRVkgPyBBQ1RJT05fQ0FURUdPUllfTUFQW2dyb3VwLmtleV0gOiBudWxsXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNDU0NDYXRlZ29yeUdyb3VwIGtleT17Z3JvdXAua2V5fT5cbiAgICAgICAgICAgIHtjYXRlZ29yeURlZiAmJiAoXG4gICAgICAgICAgICAgIDxTQ1NDQ2F0ZWdvcnlIZWFkZXI+XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+e2NhdGVnb3J5RGVmLmljb259PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt0KGNhdGVnb3J5RGVmLmxhYmVsS2V5KX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvU0NTQ0NhdGVnb3J5SGVhZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtncm91cC5pdGVtcy5tYXAoY29tbWFuZCA9PiB7XG4gICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxXG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGZsYXRJbmRleFxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTQ1NDSXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtjb21tYW5kLmlkfVxuICAgICAgICAgICAgICAgICAgJGhpZ2hsaWdodGVkPXtjdXJyZW50SW5kZXggPT09IGhpZ2hsaWdodGVkSW5kZXh9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEhpZ2hsaWdodGVkSW5kZXgoY3VycmVudEluZGV4KX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0KGNvbW1hbmQpfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNDU0NJdGVtVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1NDSXRlbVByZWZpeD4vPC9TQ1NDSXRlbVByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAge3JlbmRlcldpdGhIaWdobGlnaHQoY29tbWFuZC50aXRsZSwgcXVlcnkpfVxuICAgICAgICAgICAgICAgICAgPC9TQ1NDSXRlbVRpdGxlPlxuICAgICAgICAgICAgICAgICAge2NvbW1hbmQuc3VidGl0bGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NTQ0l0ZW1TdWJ0aXRsZT57cmVuZGVyV2l0aEhpZ2hsaWdodChjb21tYW5kLnN1YnRpdGxlLCBxdWVyeSl9PC9TQ1NDSXRlbVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1NDU0NJdGVtPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDU0NDYXRlZ29yeUdyb3VwPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8L1NDU0NEcm9wZG93bj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBd0IsT0FBTztBQUVwRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLG1CQUFtQixFQUFFQyxxQkFBcUIsUUFBUSxrQ0FBa0M7QUFDN0YsU0FDRUMsWUFBWSxFQUNaQyxRQUFRLEVBQ1JDLGFBQWEsRUFDYkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsa0JBQWtCLFFBQ2IsK0JBQStCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFTdEMsSUFBTUMsYUFBYSxHQUFHLGVBQWU7QUFFckMsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsSUFBWSxFQUFFQyxLQUFhLEVBQWdCO0VBQ3RFLElBQU1DLE1BQU0sR0FBR0QsS0FBSyxDQUFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztFQUN6QyxJQUFJLENBQUNGLE1BQU0sRUFBRSxPQUFPRixJQUFJO0VBQ3hCLElBQU1LLFFBQVEsR0FBR0wsSUFBSSxDQUFDSSxXQUFXLENBQUMsQ0FBQztFQUNuQyxJQUFNRSxHQUFHLEdBQUdELFFBQVEsQ0FBQ0UsT0FBTyxDQUFDTCxNQUFNLENBQUM7RUFDcEMsSUFBSUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU9OLElBQUk7RUFDM0Isb0JBQ0VILEtBQUEsQ0FBQUYsU0FBQTtJQUFBYSxRQUFBLEdBQ0dSLElBQUksQ0FBQ1MsS0FBSyxDQUFDLENBQUMsRUFBRUgsR0FBRyxDQUFDLGVBQ25CYixJQUFBO01BQUFlLFFBQUEsRUFBU1IsSUFBSSxDQUFDUyxLQUFLLENBQUNILEdBQUcsRUFBRUEsR0FBRyxHQUFHSixNQUFNLENBQUNRLE1BQU07SUFBQyxDQUFTLENBQUMsRUFDdERWLElBQUksQ0FBQ1MsS0FBSyxDQUFDSCxHQUFHLEdBQUdKLE1BQU0sQ0FBQ1EsTUFBTSxDQUFDO0VBQUEsQ0FDaEMsQ0FBQztBQUVQLENBQUM7QUFFRCxPQUFPLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUFDLElBQUEsRUFBMEU7RUFBQSxJQUFwRUMsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7SUFBRVosS0FBSyxHQUFBVyxJQUFBLENBQUxYLEtBQUs7SUFBRWEsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7SUFBRUMsT0FBTyxHQUFBSCxJQUFBLENBQVBHLE9BQU87RUFDdkUsSUFBQUMsS0FBQSxHQUFjbEMsSUFBSSxDQUFDLENBQUM7SUFBWm1DLENBQUMsR0FBQUQsS0FBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsU0FBQSxHQUFnRHJDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQXNDLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXBERyxnQkFBZ0IsR0FBQUYsVUFBQTtJQUFFRyxtQkFBbUIsR0FBQUgsVUFBQTtFQUU1QyxJQUFNSSxRQUFRLEdBQUczQyxPQUFPLENBQUMsWUFBTTtJQUM3QixJQUFNNEMsVUFBVSxHQUFHdkIsS0FBSyxDQUFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUNvQixVQUFVLEVBQUUsT0FBT1gsUUFBUTtJQUNoQyxPQUFPQSxRQUFRLENBQUNZLE1BQU0sQ0FDcEIsVUFBQUMsQ0FBQztNQUFBLElBQUFDLHFCQUFBLEVBQUFDLFdBQUE7TUFBQSxPQUFJRixDQUFDLENBQUNHLEtBQUssQ0FBQ3pCLFdBQVcsQ0FBQyxDQUFDLENBQUMwQixRQUFRLENBQUNOLFVBQVUsQ0FBQyxNQUFBRyxxQkFBQSxJQUFBQyxXQUFBLEdBQUtGLENBQUMsQ0FBQ0ssUUFBUSxjQUFBSCxXQUFBLHVCQUFWQSxXQUFBLENBQVl4QixXQUFXLENBQUMsQ0FBQyxDQUFDMEIsUUFBUSxDQUFDTixVQUFVLENBQUMsY0FBQUcscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxLQUFLLENBQUM7SUFBQSxDQUM5RyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNkLFFBQVEsRUFBRVosS0FBSyxDQUFDLENBQUM7RUFFckIsSUFBTStCLGVBQWUsR0FBR3BELE9BQU8sQ0FBQyxZQUFNO0lBQ3BDLElBQU1xRCxPQUFPLEdBQUcsSUFBSUMsR0FBRyxDQUFtQixDQUFDO0lBQzNDWCxRQUFRLENBQUNZLE9BQU8sQ0FBQyxVQUFBVCxDQUFDLEVBQUk7TUFBQSxJQUFBVSxXQUFBO01BQ3BCLElBQU1DLEdBQUcsSUFBQUQsV0FBQSxHQUFHVixDQUFDLENBQUNZLFFBQVEsY0FBQUYsV0FBQSxjQUFBQSxXQUFBLEdBQUl0QyxhQUFhO01BQ3ZDLElBQUksQ0FBQ21DLE9BQU8sQ0FBQ00sR0FBRyxDQUFDRixHQUFHLENBQUMsRUFBRUosT0FBTyxDQUFDTyxHQUFHLENBQUNILEdBQUcsRUFBRSxFQUFFLENBQUM7TUFDM0NKLE9BQU8sQ0FBQ1EsR0FBRyxDQUFDSixHQUFHLENBQUMsQ0FBRUssSUFBSSxDQUFDaEIsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztJQUVGLElBQU1pQixNQUFnQixHQUFHLEVBQUU7SUFDM0IzRCxxQkFBcUIsQ0FBQ21ELE9BQU8sQ0FBQyxVQUFBUyxNQUFNLEVBQUk7TUFDdEMsSUFBTUMsS0FBSyxHQUFHWixPQUFPLENBQUNRLEdBQUcsQ0FBQ0csTUFBTSxDQUFDO01BQ2pDLElBQUlDLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUVuQyxNQUFNLEVBQUVpQyxNQUFNLENBQUNELElBQUksQ0FBQUksS0FBQSxDQUFYSCxNQUFNLEVBQUFJLGtCQUFBLENBQVNGLEtBQUssRUFBQztJQUMxQyxDQUFDLENBQUM7SUFDRixJQUFNRyxTQUFTLEdBQUdmLE9BQU8sQ0FBQ1EsR0FBRyxDQUFDM0MsYUFBYSxDQUFDO0lBQzVDLElBQUlrRCxTQUFTLGFBQVRBLFNBQVMsZUFBVEEsU0FBUyxDQUFFdEMsTUFBTSxFQUFFaUMsTUFBTSxDQUFDRCxJQUFJLENBQUFJLEtBQUEsQ0FBWEgsTUFBTSxFQUFBSSxrQkFBQSxDQUFTQyxTQUFTLEVBQUM7SUFDaEQsT0FBT0wsTUFBTTtFQUNmLENBQUMsRUFBRSxDQUFDcEIsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFNMEIsWUFBWSxHQUFHckUsT0FBTyxDQUFDLFlBQU07SUFDakMsSUFBTXFELE9BQU8sR0FBRyxJQUFJQyxHQUFHLENBQW1CLENBQUM7SUFDM0NYLFFBQVEsQ0FBQ1ksT0FBTyxDQUFDLFVBQUFULENBQUMsRUFBSTtNQUFBLElBQUF3QixZQUFBO01BQ3BCLElBQU1iLEdBQUcsSUFBQWEsWUFBQSxHQUFHeEIsQ0FBQyxDQUFDWSxRQUFRLGNBQUFZLFlBQUEsY0FBQUEsWUFBQSxHQUFJcEQsYUFBYTtNQUN2QyxJQUFJLENBQUNtQyxPQUFPLENBQUNNLEdBQUcsQ0FBQ0YsR0FBRyxDQUFDLEVBQUVKLE9BQU8sQ0FBQ08sR0FBRyxDQUFDSCxHQUFHLEVBQUUsRUFBRSxDQUFDO01BQzNDSixPQUFPLENBQUNRLEdBQUcsQ0FBQ0osR0FBRyxDQUFDLENBQUVLLElBQUksQ0FBQ2hCLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7SUFFRixJQUFNaUIsTUFBNEUsR0FBRyxFQUFFO0lBQ3ZGM0QscUJBQXFCLENBQUNtRCxPQUFPLENBQUMsVUFBQVMsTUFBTSxFQUFJO01BQ3RDLElBQU1DLEtBQUssR0FBR1osT0FBTyxDQUFDUSxHQUFHLENBQUNHLE1BQU0sQ0FBQztNQUNqQyxJQUFJQyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFbkMsTUFBTSxFQUFFaUMsTUFBTSxDQUFDRCxJQUFJLENBQUM7UUFBRUwsR0FBRyxFQUFFTyxNQUFNO1FBQUVDLEtBQUssRUFBTEE7TUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDO0lBQ0YsSUFBTUcsU0FBUyxHQUFHZixPQUFPLENBQUNRLEdBQUcsQ0FBQzNDLGFBQWEsQ0FBQztJQUM1QyxJQUFJa0QsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRXRDLE1BQU0sRUFBRWlDLE1BQU0sQ0FBQ0QsSUFBSSxDQUFDO01BQUVMLEdBQUcsRUFBRXZDLGFBQWE7TUFBRStDLEtBQUssRUFBRUc7SUFBVSxDQUFDLENBQUM7SUFDNUUsT0FBT0wsTUFBTTtFQUNmLENBQUMsRUFBRSxDQUFDcEIsUUFBUSxDQUFDLENBQUM7RUFFZDVDLFNBQVMsQ0FBQyxZQUFNO0lBQ2QyQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLENBQUNyQixLQUFLLENBQUMsQ0FBQztFQUVYdEIsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNd0UsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUlDLENBQWdCLEVBQUs7TUFDcEMsSUFBSUEsQ0FBQyxDQUFDZixHQUFHLEtBQUssV0FBVyxFQUFFO1FBQ3pCZSxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCL0IsbUJBQW1CLENBQUMsVUFBQWdDLElBQUk7VUFBQSxPQUFLdEIsZUFBZSxDQUFDdEIsTUFBTSxHQUFHLENBQUM0QyxJQUFJLEdBQUcsQ0FBQyxJQUFJdEIsZUFBZSxDQUFDdEIsTUFBTSxHQUFHLENBQUM7UUFBQSxDQUFDLENBQUM7TUFDakcsQ0FBQyxNQUFNLElBQUkwQyxDQUFDLENBQUNmLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFDOUJlLENBQUMsQ0FBQ0MsY0FBYyxDQUFDLENBQUM7UUFDbEIvQixtQkFBbUIsQ0FBQyxVQUFBZ0MsSUFBSTtVQUFBLE9BQ3RCdEIsZUFBZSxDQUFDdEIsTUFBTSxHQUFHLENBQUM0QyxJQUFJLEdBQUcsQ0FBQyxHQUFHdEIsZUFBZSxDQUFDdEIsTUFBTSxJQUFJc0IsZUFBZSxDQUFDdEIsTUFBTSxHQUFHLENBQUM7UUFBQSxDQUMzRixDQUFDO01BQ0gsQ0FBQyxNQUFNLElBQUkwQyxDQUFDLENBQUNmLEdBQUcsS0FBSyxPQUFPLEVBQUU7UUFDNUIsSUFBSUwsZUFBZSxDQUFDWCxnQkFBZ0IsQ0FBQyxFQUFFO1VBQ3JDK0IsQ0FBQyxDQUFDQyxjQUFjLENBQUMsQ0FBQztVQUNsQkQsQ0FBQyxDQUFDRyxlQUFlLENBQUMsQ0FBQztVQUNuQnpDLFFBQVEsQ0FBQ2tCLGVBQWUsQ0FBQ1gsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QztNQUNGLENBQUMsTUFBTSxJQUFJK0IsQ0FBQyxDQUFDZixHQUFHLEtBQUssUUFBUSxFQUFFO1FBQzdCZSxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCdEMsT0FBTyxDQUFDLENBQUM7TUFDWDtJQUNGLENBQUM7SUFDRHlDLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFTixPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQ25ELE9BQU87TUFBQSxPQUFNSyxRQUFRLENBQUNFLG1CQUFtQixDQUFDLFNBQVMsRUFBRVAsT0FBTyxFQUFFLElBQUksQ0FBQztJQUFBO0VBQ3JFLENBQUMsRUFBRSxDQUFDbkIsZUFBZSxFQUFFWCxnQkFBZ0IsRUFBRVAsUUFBUSxFQUFFQyxPQUFPLENBQUMsQ0FBQztFQUUxRCxJQUFJaUIsZUFBZSxDQUFDdEIsTUFBTSxLQUFLLENBQUMsRUFBRTtJQUNoQyxPQUFPLElBQUk7RUFDYjtFQUVBLElBQUlpRCxTQUFTLEdBQUcsQ0FBQyxDQUFDO0VBRWxCLG9CQUNFbEUsSUFBQSxDQUFDUixZQUFZO0lBQUF1QixRQUFBLEVBQ1Z5QyxZQUFZLENBQUNXLEdBQUcsQ0FBQyxVQUFBQyxLQUFLLEVBQUk7TUFDekIsSUFBTUMsV0FBVyxHQUFHRCxLQUFLLENBQUN4QixHQUFHLEtBQUt2QyxhQUFhLEdBQUdmLG1CQUFtQixDQUFDOEUsS0FBSyxDQUFDeEIsR0FBRyxDQUFDLEdBQUcsSUFBSTtNQUN2RixvQkFDRXhDLEtBQUEsQ0FBQ1AsaUJBQWlCO1FBQUFrQixRQUFBLEdBQ2ZzRCxXQUFXLGlCQUNWakUsS0FBQSxDQUFDTixrQkFBa0I7VUFBQWlCLFFBQUEsZ0JBQ2pCZixJQUFBO1lBQU0sZUFBWSxNQUFNO1lBQUFlLFFBQUEsRUFBRXNELFdBQVcsQ0FBQ0M7VUFBSSxDQUFPLENBQUMsZUFDbER0RSxJQUFBO1lBQUFlLFFBQUEsRUFBT1MsQ0FBQyxDQUFDNkMsV0FBVyxDQUFDRSxRQUFRO1VBQUMsQ0FBTyxDQUFDO1FBQUEsQ0FDcEIsQ0FDckIsRUFDQUgsS0FBSyxDQUFDaEIsS0FBSyxDQUFDZSxHQUFHLENBQUMsVUFBQUssT0FBTyxFQUFJO1VBQzFCTixTQUFTLElBQUksQ0FBQztVQUNkLElBQU1PLFlBQVksR0FBR1AsU0FBUztVQUM5QixvQkFDRTlELEtBQUEsQ0FBQ1gsUUFBUTtZQUVQaUYsWUFBWSxFQUFFRCxZQUFZLEtBQUs3QyxnQkFBaUI7WUFDaEQrQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtjQUFBLE9BQVE5QyxtQkFBbUIsQ0FBQzRDLFlBQVksQ0FBQztZQUFBLENBQUM7WUFDdERHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2NBQUEsT0FBUXZELFFBQVEsQ0FBQ21ELE9BQU8sQ0FBQztZQUFBLENBQUM7WUFDakNLLElBQUksRUFBQyxRQUFRO1lBQUE5RCxRQUFBLGdCQUViWCxLQUFBLENBQUNWLGFBQWE7Y0FBQXFCLFFBQUEsZ0JBQ1pmLElBQUEsQ0FBQ0osY0FBYztnQkFBQW1CLFFBQUEsRUFBQztjQUFDLENBQWdCLENBQUMsRUFDakNULG1CQUFtQixDQUFDa0UsT0FBTyxDQUFDcEMsS0FBSyxFQUFFNUIsS0FBSyxDQUFDO1lBQUEsQ0FDN0IsQ0FBQyxFQUNmZ0UsT0FBTyxDQUFDbEMsUUFBUSxpQkFDZnRDLElBQUEsQ0FBQ0wsZ0JBQWdCO2NBQUFvQixRQUFBLEVBQUVULG1CQUFtQixDQUFDa0UsT0FBTyxDQUFDbEMsUUFBUSxFQUFFOUIsS0FBSztZQUFDLENBQW1CLENBQ25GO1VBQUEsR0FaSWdFLE9BQU8sQ0FBQ00sRUFhTCxDQUFDO1FBRWYsQ0FBQyxDQUFDO01BQUEsR0EzQm9CVixLQUFLLENBQUN4QixHQTRCWCxDQUFDO0lBRXhCLENBQUM7RUFBQyxDQUNVLENBQUM7QUFFbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|