@projectcor/maia-components 2.11.78-2 → 2.11.78-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/OptionCorPermission/OptionCorPermission.js +27 -0
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
- package/lib/components/atoms/OptionCorPermission/index.js +2 -0
- package/lib/components/atoms/Switch/Switch.js +27 -0
- package/lib/components/atoms/Switch/Switch.styles.js +22 -0
- package/lib/components/atoms/Switch/index.js +2 -0
- package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
- package/lib/components/atoms/icons/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +71 -43
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +23 -7
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +5 -4
- package/lib/components/molecules/ChatFooter/ChatFooter.js +18 -6
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
- package/lib/components/molecules/ChatFooter/styles.js +5 -1
- package/lib/components/molecules/Sidebar/Sidebar.js +42 -51
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +6 -10
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +16 -12
- package/lib/components/organisms/ChatAI/ChatAI.js +2 -10
- package/lib/hooks/useAgentModel/useCreateAgent.js +36 -13
- package/lib/hooks/useAgentModel/useUpdateAgent.js +34 -10
- package/lib/hooks/useChatManager/useChatManager.js +431 -456
- package/lib/hooks/useChatMessages/useChatMessages.js +249 -411
- package/lib/hooks/useChats/useChats.js +3 -8
- package/lib/hooks/useMentionAllowedTypes.js +12 -11
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +518 -140
- package/lib/hooks/useStreamingMessage/index.js +3 -2
- package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +17 -13
- package/lib/lang/br/index.js +17 -16
- package/lib/lang/en/index.js +15 -14
- package/lib/lang/es/index.js +15 -14
- package/lib/lang/fr/index.js +19 -19
- package/lib/services/maia/Agents/getAgentById.js +4 -2
- package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/useChatsStore.js +9 -41
- package/lib/types/agentModal.js +1 -1
- package/lib/utils/corConnectorMentionTypes.js +10 -6
- package/lib/utils/normalizeAgentConnectors.js +39 -1
- package/package.json +1 -1
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -17
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -15
- package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
- package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.js +0 -12
- package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.styles.js +0 -8
- package/lib/components/atoms/SessionUnreadDot/index.js +0 -2
- package/lib/store/chatsSidebarOptimistic.js +0 -87
- package/lib/store/sessions/activeView.js +0 -22
- package/lib/store/sessions/index.js +0 -10
- package/lib/store/sessions/sessionHitlContext.js +0 -15
- package/lib/store/sessions/sessionNotificationSound.js +0 -57
- package/lib/store/sessions/sessionNotifications.js +0 -111
- package/lib/store/sessions/sessionNotifications.types.js +0 -2
- package/lib/store/sessions/sessionStreamManager.js +0 -585
- package/lib/store/sessions/sessionStreamingText.js +0 -80
- package/lib/store/sessions/sessionUnreadPersistence.js +0 -49
- package/lib/store/sessions/sessions.types.js +0 -35
- package/lib/store/sessions/useSessionMeta.js +0 -39
- package/lib/store/sessions/useSessionStreamingText.js +0 -18
- package/lib/store/sessions/useSessionsStore.js +0 -234
|
@@ -36,11 +36,7 @@ import { fetchMaia } from '../../../services/maia/client';
|
|
|
36
36
|
import { mapCORLang } from '../../../lang/utils';
|
|
37
37
|
import { formatChatListTitleMentions } from '../../../utils/renderContextMentions';
|
|
38
38
|
import { getAgentDisplayName, isMarketplaceGlobalCloneAgent } from '../../../utils/agentDisplayName';
|
|
39
|
-
import {
|
|
40
|
-
import { SessionUnreadDot } from '../../atoms/SessionUnreadDot';
|
|
41
|
-
import { useIsSessionGenerating, useSessionMeta } from '../../../store/sessions/useSessionMeta';
|
|
42
|
-
import { useSessionsStore } from '../../../store/sessions/useSessionsStore';
|
|
43
|
-
import { SCLHCWrapper, SCLHCWrapperAgent, SCLHCWrapperAgentText, SCLHCWrapperButtonActions, SCLHCWrapperContent, SCLHCWrapperTitle, SCLHCWrapperTitleRow, SCSWrapperCollapsedButton, SCSWrapperNewChatIcon, SCSWrapperAgentsNavIcon } from './Sidebar.styles';
|
|
39
|
+
import { SCLHCWrapper, SCLHCWrapperAgent, SCLHCWrapperAgentText, SCLHCWrapperButtonActions, SCLHCWrapperContent, SCLHCWrapperTitle, SCSWrapperCollapsedButton, SCSWrapperNewChatIcon, SCSWrapperAgentsNavIcon } from './Sidebar.styles';
|
|
44
40
|
import { SCSSidebarRoot, SCSSidebarToolbar, SCSSidebarBody, SCSSidebarOpenPanel, SCSSidebarAgentsBlock, SCSSidebarAgentsActions, SCSSidebarMaiakerNavButton, SCSSidebarMaiakerNavLabel, SCSSidebarMaiakerNavBadgeNew, SCSSidebarConversationsHeading, SCSSidebarChatsScroll, SCSSidebarErrorStateColumn, SCSSidebarErrorStateTop, SCSSidebarErrorBanner, SCSSidebarErrorBannerIconWrap, SCSSidebarErrorBannerMessage, SCSSidebarLoadingArea, SCSSidebarLoadMoreRow, SCSSidebarEmptyChats, SCSSidebarEmptyChatsText, SCSSidebarChatsFooter, SCSSidebarFooterActions, SCSSidebarCollapsedDivider } from './Sidebar.layout.styles';
|
|
45
41
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
46
42
|
var actions = {
|
|
@@ -83,9 +79,6 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
|
|
|
83
79
|
_useState2 = _slicedToArray(_useState, 2),
|
|
84
80
|
action = _useState2[0],
|
|
85
81
|
setAction = _useState2[1];
|
|
86
|
-
var isGenerating = useIsSessionGenerating(chat.sessionExternalId);
|
|
87
|
-
var sessionMeta = useSessionMeta(chat.sessionExternalId);
|
|
88
|
-
var isUnread = Boolean(sessionMeta === null || sessionMeta === void 0 ? void 0 : sessionMeta.unread) && !isGenerating;
|
|
89
82
|
var menuItems = [{
|
|
90
83
|
label: t('history.menu.rename'),
|
|
91
84
|
onClickItem: function onClickItem(chatId) {
|
|
@@ -122,19 +115,12 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
|
|
|
122
115
|
isSelected: isSelected,
|
|
123
116
|
$index: index,
|
|
124
117
|
children: [/*#__PURE__*/_jsxs(SCLHCWrapper, {
|
|
125
|
-
children: [/*#__PURE__*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}) : null, /*#__PURE__*/_jsx(Tooltip, {
|
|
132
|
-
title: showTooltip ? displayTitle : '',
|
|
133
|
-
children: /*#__PURE__*/_jsx(SCLHCWrapperTitle, {
|
|
134
|
-
ref: textRef,
|
|
135
|
-
children: displayTitle || t('conversations.emptyLabel')
|
|
136
|
-
})
|
|
137
|
-
})]
|
|
118
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
119
|
+
title: showTooltip ? displayTitle : '',
|
|
120
|
+
children: /*#__PURE__*/_jsx(SCLHCWrapperTitle, {
|
|
121
|
+
ref: textRef,
|
|
122
|
+
children: displayTitle || t('conversations.emptyLabel')
|
|
123
|
+
})
|
|
138
124
|
}), /*#__PURE__*/_jsx(Tooltip, {
|
|
139
125
|
title: showTooltipAgent ? displayAgent + (contextName ? " - ".concat(contextName) : '') : '',
|
|
140
126
|
children: /*#__PURE__*/_jsxs(SCLHCWrapperAgent, {
|
|
@@ -284,22 +270,8 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
284
270
|
}
|
|
285
271
|
};
|
|
286
272
|
}, [resetSelectedChatRef]);
|
|
287
|
-
useEffect(function () {
|
|
288
|
-
var handleSelectSession = function handleSelectSession(evt) {
|
|
289
|
-
var _detail;
|
|
290
|
-
var _ref4 = (_detail = evt.detail) !== null && _detail !== void 0 ? _detail : {},
|
|
291
|
-
sessionId = _ref4.sessionId;
|
|
292
|
-
if (sessionId) {
|
|
293
|
-
setSelectedChat(sessionId);
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
document.addEventListener('sidebar-select-session', handleSelectSession);
|
|
297
|
-
return function () {
|
|
298
|
-
document.removeEventListener('sidebar-select-session', handleSelectSession);
|
|
299
|
-
};
|
|
300
|
-
}, []);
|
|
301
273
|
var handleDeleteChat = /*#__PURE__*/function () {
|
|
302
|
-
var
|
|
274
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(chat) {
|
|
303
275
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
304
276
|
while (1) switch (_context.prev = _context.next) {
|
|
305
277
|
case 0:
|
|
@@ -313,7 +285,7 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
313
285
|
}, _callee);
|
|
314
286
|
}));
|
|
315
287
|
return function handleDeleteChat(_x) {
|
|
316
|
-
return
|
|
288
|
+
return _ref4.apply(this, arguments);
|
|
317
289
|
};
|
|
318
290
|
}();
|
|
319
291
|
var handleUpdateChat = function handleUpdateChat(chat) {
|
|
@@ -355,7 +327,7 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
355
327
|
});
|
|
356
328
|
};
|
|
357
329
|
var handleOpenCreateAgent = /*#__PURE__*/function () {
|
|
358
|
-
var
|
|
330
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
359
331
|
var response, data, maiakerAgent, _t;
|
|
360
332
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
361
333
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -401,7 +373,7 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
401
373
|
}, _callee2, null, [[0, 4]]);
|
|
402
374
|
}));
|
|
403
375
|
return function handleOpenCreateAgent() {
|
|
404
|
-
return
|
|
376
|
+
return _ref5.apply(this, arguments);
|
|
405
377
|
};
|
|
406
378
|
}();
|
|
407
379
|
useEffect(function () {
|
|
@@ -449,22 +421,42 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
449
421
|
}
|
|
450
422
|
};
|
|
451
423
|
}, [hasMoreChats, isLoadingMoreChats, loadMoreChats, hasError]);
|
|
452
|
-
var handleNewChat = function
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
424
|
+
var handleNewChat = /*#__PURE__*/function () {
|
|
425
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
426
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
427
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
428
|
+
case 0:
|
|
429
|
+
eventAmplitude(EVENTS.aiSidebarNewChat);
|
|
430
|
+
if (isOpenModal) {
|
|
431
|
+
setIsOpenModal(null);
|
|
432
|
+
}
|
|
433
|
+
setSelectedChat(null);
|
|
434
|
+
// Refrescamos las conversaciones aunque el sidebar esté colapsado.
|
|
435
|
+
chatsFetchedRef.current = true;
|
|
436
|
+
_context3.next = 1;
|
|
437
|
+
return fetchChats({
|
|
438
|
+
limit: limit,
|
|
439
|
+
offset: 0
|
|
440
|
+
});
|
|
441
|
+
case 1:
|
|
442
|
+
handleGoToHome();
|
|
443
|
+
case 2:
|
|
444
|
+
case "end":
|
|
445
|
+
return _context3.stop();
|
|
446
|
+
}
|
|
447
|
+
}, _callee3);
|
|
448
|
+
}));
|
|
449
|
+
return function handleNewChat() {
|
|
450
|
+
return _ref6.apply(this, arguments);
|
|
451
|
+
};
|
|
452
|
+
}();
|
|
460
453
|
useEffect(function () {
|
|
461
454
|
// Al crear/actualizar una conversación refrescamos la lista aunque el sidebar esté colapsado.
|
|
462
455
|
var handleRefetchSession = function handleRefetchSession() {
|
|
463
456
|
chatsFetchedRef.current = true;
|
|
464
457
|
fetchChats({
|
|
465
458
|
limit: 20,
|
|
466
|
-
offset: 0
|
|
467
|
-
background: true
|
|
459
|
+
offset: 0
|
|
468
460
|
});
|
|
469
461
|
};
|
|
470
462
|
document.addEventListener('refetch-session', handleRefetchSession);
|
|
@@ -589,7 +581,6 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
589
581
|
if (isOpenModal) {
|
|
590
582
|
setIsOpenModal(null);
|
|
591
583
|
}
|
|
592
|
-
useSessionsStore.getState().markUnread(chatData.sessionExternalId, false);
|
|
593
584
|
setSelectedChat(chatData.sessionExternalId);
|
|
594
585
|
onGoToChat(chatData);
|
|
595
586
|
},
|
|
@@ -632,4 +623,4 @@ export var Sidebar = function Sidebar(_ref3) {
|
|
|
632
623
|
})]
|
|
633
624
|
});
|
|
634
625
|
};
|
|
635
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJOZXdDaGF0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VUIiwiT3B0aW9uSXRlbSIsIkVkaXRRdWVzdGlvbk1vZGFsIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIkVycm9ySWNvbiIsInVzZVVzZXIiLCJGZWVkYmFja0J1dHRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwiZ2V0QWdlbnREaXNwbGF5TmFtZSIsImlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IiwiU2Vzc2lvbkdlbmVyYXRpbmdEb3QiLCJTZXNzaW9uVW5yZWFkRG90IiwidXNlSXNTZXNzaW9uR2VuZXJhdGluZyIsInVzZVNlc3Npb25NZXRhIiwidXNlU2Vzc2lvbnNTdG9yZSIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50IiwiU0NMSENXcmFwcGVyQWdlbnRUZXh0IiwiU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyIsIlNDTEhDV3JhcHBlckNvbnRlbnQiLCJTQ0xIQ1dyYXBwZXJUaXRsZSIsIlNDTEhDV3JhcHBlclRpdGxlUm93IiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiU0NTU2lkZWJhclJvb3QiLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsImlzR2VuZXJhdGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwic2Vzc2lvbk1ldGEiLCJpc1VucmVhZCIsIkJvb2xlYW4iLCJ1bnJlYWQiLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2tJdGVtIiwiY2hhdElkIiwiSWNvbiIsImV2ZW50S2V5IiwicG1BaU1lbnVFZGl0IiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiY2hhdERhdGEiLCJoYW5kbGVVcGRhdGVDaGF0IiwiaGFuZGxlRGVsZXRlQ2hhdCIsImNoaWxkcmVuIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIiRpbmRleCIsImFyaWFMYWJlbCIsImlzV3JpdGluZyIsInJlZiIsImNvbmNhdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiekluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIiwiU2lkZWJhciIsIl9yZWYzIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkdvVG9DaGF0IiwiX3JlZjMkb25FcnJvciIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsInNob3dOZXdDaGF0IiwicmVmZXRjaENoYXRzIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiaGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsIl9yZWYzJGFnZW50c05hdkFjdGl2ZSIsImFnZW50c05hdkFjdGl2ZSIsIl9yZWYzJGlzTGVnYWN5Q29udGV4dCIsImlzTGVnYWN5Q29udGV4dFNlc3Npb24iLCJfdXNlVDIiLCJpMThuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzT3Blbk1vZGFsIiwic2V0SXNPcGVuTW9kYWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImNoYXRzRmV0Y2hlZFJlZiIsImNoYXRzQ29udGFpbmVyUmVmIiwic2hvdWxkRmV0Y2hTZXNzaW9ucyIsInVzZXIiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsInNldFRhc2siLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0cyIsImxpbWl0Iiwib2Zmc2V0IiwiaGFzTW9yZUNoYXRzIiwibG9hZE1vcmVDaGF0cyIsImlzTG9hZGluZ01vcmVDaGF0cyIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY2FuQ3JlYXRlQWdlbnRzIiwiY3JlYXRlIiwiaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhblZpZXdBZ2VudHMiLCJ2aWV3Iiwic2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiIsIk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiIsImFnZW50TmF2QnV0dG9uQ291bnQiLCJzaG93QWdlbnRzTmF2QmxvY2siLCJjdXJyZW50IiwiaGFuZGxlU2VsZWN0U2Vzc2lvbiIsImV2dCIsIl9kZXRhaWwiLCJfcmVmNCIsImRldGFpbCIsInNlc3Npb25JZCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJfcmVmNSIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZU9wZW5Nb2RhbCIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVDbGlja091dHNpZGUiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImFpQ2hhdFNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNiIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJhZ2VudEl0ZW0iLCJhYnJ1cHQiLCJoYW5kbGVTY3JvbGwiLCJfY2hhdHNDb250YWluZXJSZWYkY3UiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc0F0Qm90dG9tIiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsImFpU2lkZWJhck5ld0NoYXQiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsImJhY2tncm91bmQiLCJzaG93TmV3Q2hhdEJ1dHRvbiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCIkaXNPcGVuIiwiY29sb3IiLCIkYWN0aXZlIiwiYWlDaGF0TXBPcGVuIiwiYWlTaWRlYmFyTXlBZ2VudHMiLCJ0eXBlIiwiJGhhc0NoYXRzIiwibGVuZ3RoIiwiJG9mZnNldFZhcmlhbnQiLCIkYWdlbnROYXZCdXR0b25Db3VudCIsImdldFN0YXRlIiwibWFya1VucmVhZCIsImNvdW50IiwiJGp1c3RpZnlCZXR3ZWVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvbkRvdWJsZUxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG91YmxlTGVmdCdcbmltcG9ydCB7IEhpc3RvcnkgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9IaXN0b3J5J1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgUGVuY2lsIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGVuY2lsJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBFbXB0eUhpc3RvcnlJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRW1wdHlIaXN0b3J5J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyB1c2VDaGF0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRzJ1xuaW1wb3J0IHsgU2lkZWJhckNoYXRzU2tlbGV0b24gfSBmcm9tICcuL1NpZGViYXIuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTWFpYVN0b3JlSWNvbiwgTXlBZ2VudHNOYXZJY29uLCBOZXdDaGF0IH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuaW1wb3J0IHsgZ2V0QWdlbnREaXNwbGF5TmFtZSwgaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgU2Vzc2lvbkdlbmVyYXRpbmdEb3QgfSBmcm9tICcuLi8uLi9hdG9tcy9TZXNzaW9uR2VuZXJhdGluZ0RvdCdcbmltcG9ydCB7IFNlc3Npb25VbnJlYWREb3QgfSBmcm9tICcuLi8uLi9hdG9tcy9TZXNzaW9uVW5yZWFkRG90J1xuaW1wb3J0IHsgdXNlSXNTZXNzaW9uR2VuZXJhdGluZywgdXNlU2Vzc2lvbk1ldGEgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZXNzaW9ucy91c2VTZXNzaW9uTWV0YSdcbmltcG9ydCB7IHVzZVNlc3Npb25zU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9zZXNzaW9ucy91c2VTZXNzaW9uc1N0b3JlJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NMSENXcmFwcGVyVGl0bGVSb3csXG4gIFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24sXG4gIFNDU1dyYXBwZXJOZXdDaGF0SWNvbixcbiAgU0NTV3JhcHBlckFnZW50c05hdkljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5pbXBvcnQge1xuICBTQ1NTaWRlYmFyUm9vdCxcbiAgU0NTU2lkZWJhclRvb2xiYXIsXG4gIFNDU1NpZGViYXJCb2R5LFxuICBTQ1NTaWRlYmFyT3BlblBhbmVsLFxuICBTQ1NTaWRlYmFyQWdlbnRzQmxvY2ssXG4gIFNDU1NpZGViYXJBZ2VudHNBY3Rpb25zLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbixcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCxcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyxcbiAgU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nLFxuICBTQ1NTaWRlYmFyQ2hhdHNTY3JvbGwsXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uLFxuICBTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcCxcbiAgU0NTU2lkZWJhckVycm9yQmFubmVyLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCxcbiAgU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZSxcbiAgU0NTU2lkZWJhckxvYWRpbmdBcmVhLFxuICBTQ1NTaWRlYmFyTG9hZE1vcmVSb3csXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzLFxuICBTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQsXG4gIFNDU1NpZGViYXJDaGF0c0Zvb3RlcixcbiAgU0NTU2lkZWJhckZvb3RlckFjdGlvbnMsXG4gIFNDU1NpZGViYXJDb2xsYXBzZWREaXZpZGVyLFxufSBmcm9tICcuL1NpZGViYXIubGF5b3V0LnN0eWxlcydcblxuY29uc3QgYWN0aW9ucyA9IHtcbiAgZWRpdDogKHByb3BzOiBhbnkpID0+IDxFZGl0UXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxuICBkZWxldGU6IChwcm9wczogYW55KSA9PiA8RGVsZXRlUXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxufVxuXG4vKiogQWJyZXZpYSBcImVzcGVjaWFsaXN0YVwiL1wiZXNwZWNpYWxpc3RcIiDihpIgXCJFc3AuXCIgKEVTL1BUKSB5IFwic3BlY2lhbGlzdFwiIOKGkiBcIlNwZWMuXCIgKEVOKSBlbiBlbCBub21icmUgZGVsIGFnZW50ZS4gKi9cbmZ1bmN0aW9uIGFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUoYWdlbnROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWFnZW50TmFtZSB8fCB0eXBlb2YgYWdlbnROYW1lICE9PSAnc3RyaW5nJykgcmV0dXJuIGFnZW50TmFtZVxuICByZXR1cm4gYWdlbnROYW1lLnJlcGxhY2UoL1xcYihlc3BlY2lhbGlzdGF8ZXNwZWNpYWxpc3QpXFxiL2dpLCAnRXNwLicpLnJlcGxhY2UoL1xcYnNwZWNpYWxpc3RcXGIvZ2ksICdTcGVjLicpXG59XG5cbmNvbnN0IExpc3RIaXN0b3J5Q2hhdCA9ICh7XG4gIGNoYXQsXG4gIG9uQ2xpY2ssXG4gIGlzTW9kYWxPcGVuLFxuICBvbk9wZW5Nb2RhbCxcbiAgb25DbG9zZU1vZGFsLFxuICBoYW5kbGVycyxcbiAgaXNTZWxlY3RlZCxcbiAgaW5kZXgsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIGluZGV4OiBudW1iZXJcbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYWdlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGRpc3BsYXlUaXRsZSA9IHVzZU1lbW8oKCkgPT4gZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zKGNoYXQudGl0bGUpLCBbY2hhdC50aXRsZV0pXG4gIGNvbnN0IGRpc3BsYXlBZ2VudCA9IGdldEFnZW50RGlzcGxheU5hbWUoY2hhdC5hZ2VudFR5cGUsIGNoYXQuYWdlbnQpXG4gIGNvbnN0IGNvbnRleHROYW1lID0gY2hhdC5wcm9qZWN0TmFtZSB8fCBjaGF0LmNsaWVudE5hbWVcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2Rpc3BsYXlUaXRsZV0pXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKGFnZW50UmVmLCBbY2hhdC5hZ2VudF0pXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFthY3Rpb24sIHNldEFjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBpc0dlbmVyYXRpbmcgPSB1c2VJc1Nlc3Npb25HZW5lcmF0aW5nKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gIGNvbnN0IHNlc3Npb25NZXRhID0gdXNlU2Vzc2lvbk1ldGEoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgY29uc3QgaXNVbnJlYWQgPSBCb29sZWFuKHNlc3Npb25NZXRhPy51bnJlYWQpICYmICFpc0dlbmVyYXRpbmdcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2tJdGVtOiAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc2V0QWN0aW9uKCdlZGl0JylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFBlbmNpbCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVFZGl0LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5kZWxldGUnKSxcbiAgICAgIG9uQ2xpY2tJdGVtOiAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc2V0QWN0aW9uKCdkZWxldGUnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVDb25maXJtQWN0aW9uID0gKGNoYXREYXRhOiBhbnkpID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSAnZWRpdCcpIHtcbiAgICAgIGhhbmRsZXJzLmhhbmRsZVVwZGF0ZUNoYXQoY2hhdERhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZXJzLmhhbmRsZURlbGV0ZUNoYXQoY2hhdERhdGEpXG4gICAgfVxuICAgIHNldEFjdGlvbihudWxsKVxuICAgIG9uQ2xvc2VNb2RhbCgpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U0NMSENXcmFwcGVyQ29udGVudFxuICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgb25DbGljayhjaGF0KVxuICAgICAgICB9fVxuICAgICAgICBrZXk9e2Bjb252ZXJzYXRpb24tJHtjaGF0LnNlc3Npb25FeHRlcm5hbElkfWB9XG4gICAgICAgIGlzTW9kYWxPcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgJGluZGV4PXtpbmRleH1cbiAgICAgID5cbiAgICAgICAgPFNDTEhDV3JhcHBlcj5cbiAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGVSb3c+XG4gICAgICAgICAgICB7aXNHZW5lcmF0aW5nID8gKFxuICAgICAgICAgICAgICA8U2Vzc2lvbkdlbmVyYXRpbmdEb3QgYXJpYUxhYmVsPXt0KCdjb252ZXJzYXRpb25zLmdlbmVyYXRpbmcnKX0gaXNXcml0aW5nPXtzZXNzaW9uTWV0YT8uaXNXcml0aW5nfSAvPlxuICAgICAgICAgICAgKSA6IGlzVW5yZWFkID8gKFxuICAgICAgICAgICAgICA8U2Vzc2lvblVucmVhZERvdCBhcmlhTGFiZWw9e3QoJ2NvbnZlcnNhdGlvbnMudW5yZWFkJyl9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGRpc3BsYXlUaXRsZSA6ICcnfT5cbiAgICAgICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlIHJlZj17dGV4dFJlZn0+e2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDwvU0NMSENXcmFwcGVyVGl0bGVSb3c+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwQWdlbnQgPyBkaXNwbGF5QWdlbnQgKyAoY29udGV4dE5hbWUgPyBgIC0gJHtjb250ZXh0TmFtZX1gIDogJycpIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgfHwgY2hhdC5hZ2VudFR5cGUgPT09ICdvcmNoZXN0cmF0b3InID8gKFxuICAgICAgICAgICAgICAgIDxNQUlBSWNvbiB3aWR0aD17MTR9IGhlaWdodD17MTR9IC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFNpemU6ICcxNHB4JyB9fT57Y2hhdC5lbW9qaX08L3NwYW4+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50VGV4dCByZWY9e2FnZW50UmVmfT5cbiAgICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgfHwgY2hhdC5hZ2VudFR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gICAgICAgICAgICAgICAgICA/IGFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUoY2hhdC5hZ2VudClcbiAgICAgICAgICAgICAgICAgIDogY2hhdC5hZ2VudH1cbiAgICAgICAgICAgICAgICB7Y2hhdC5wcm9qZWN0TmFtZSAmJiBgIC0gJHtjaGF0LnByb2plY3ROYW1lfWB9XG4gICAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnRUZXh0PlxuICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NMSENXcmFwcGVyPlxuICAgICAgICA8U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgIGljb25Pbmx5XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAge2lzTW9kYWxPcGVuICYmICFhY3Rpb24gJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzMycHgnLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMjQsIDIyNCwgMjI0LCAxKScsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjRweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKCh7IGxhYmVsLCBvbkNsaWNrSXRlbSwgSWNvbiwgZXZlbnRLZXkgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25JdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0oY2hhdC5pZCl9XG4gICAgICAgICAgICAgICAgICBJY29uPXtJY29ufVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e2V2ZW50S2V5fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgPC9TQ0xIQ1dyYXBwZXJDb250ZW50PlxuICAgICAgeyEhYWN0aW9uICYmXG4gICAgICAgIGFjdGlvbnNbYWN0aW9uXSh7XG4gICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZU1vZGFsKClcbiAgICAgICAgICAgIHNldEFjdGlvbihudWxsKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hhdCxcbiAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbixcbiAgICAgICAgICAgIGhhbmRsZVNldElzT3Blbk1vZGFsOiBvbkNsb3NlTW9kYWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNpZGViYXIgPSAoe1xuICBvbkdvVG9DaGF0LFxuICBvbkVycm9yID0gKCkgPT4gbnVsbCxcbiAgaGFuZGxlR29Ub0hvbWUsXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSxcbiAgc2hvd05ld0NoYXQsXG4gIHJlZmV0Y2hDaGF0cyxcbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzLFxuICBoYXNFcnJvcixcbiAgcmVzZXRTZWxlY3RlZENoYXRSZWYsXG4gIGFnZW50c05hdkFjdGl2ZSA9IG51bGwsXG4gIGlzTGVnYWN5Q29udGV4dFNlc3Npb24gPSBmYWxzZSxcbn06IHtcbiAgb25Hb1RvQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgaGFuZGxlR29Ub0hvbWU6ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlOiAoKSA9PiB2b2lkXG4gIHNob3dOZXdDaGF0OiBib29sZWFuXG4gIHJlZmV0Y2hDaGF0czogYm9vbGVhblxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM6IChyZWZldGNoOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhc0Vycm9yOiBib29sZWFuXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPzogTXV0YWJsZVJlZk9iamVjdDwoKCkgPT4gdm9pZCkgfCBudWxsPlxuICAvKiogUmVzYWx0YSBNYWlha2VyIG8gTWlzIGFnZW50ZXMgKi9cbiAgYWdlbnRzTmF2QWN0aXZlPzogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8IG51bGxcbiAgLyoqIENvbnZlcnNhY2nDs24gZGUgdW4gY2xvbmUgbGVnYWN5IChhZ2VudF90eXBlIGNsb25lICsgZW50aXR5IHByb2plY3QvY2xpZW50L3Rhc2spOiBvY3VsdGEgXCJudWV2byBjaGF0XCIuICovXG4gIGlzTGVnYWN5Q29udGV4dFNlc3Npb24/OiBib29sZWFuXG59KSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzT3Blbk1vZGFsLCBzZXRJc09wZW5Nb2RhbF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbc2VsZWN0ZWRDaGF0LCBzZXRTZWxlY3RlZENoYXRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgY2hhdHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBjaGF0c0NvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3Qgc2hvdWxkRmV0Y2hTZXNzaW9ucyA9IGlzT3BlblxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFnZW50OiBzZWxlY3RlZEFnZW50LCBzZWxlY3RBZ2VudCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3Qge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBjaGF0cyxcbiAgICBkZWxldGVDaGF0LFxuICAgIHVwZGF0ZUNoYXQsXG4gICAgZmV0Y2hDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gICAgaGFzTW9yZUNoYXRzLFxuICAgIGxvYWRNb3JlQ2hhdHMsXG4gICAgaXNMb2FkaW5nTW9yZUNoYXRzLFxuICB9ID0gdXNlQ2hhdHMoe1xuICAgIG9uRXJyb3IsXG4gIH0pXG5cbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudHMgPSAhIXVzZXJQZXJtaXNzaW9ucz8uY3JlYXRlXG4gIGNvbnN0IGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuVmlld0FnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy52aWV3ICYmIGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2Vzc1xuICBjb25zdCBzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID0gISFjYW5DcmVhdGVBZ2VudHMgJiYgISF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSXG4gIGNvbnN0IGFnZW50TmF2QnV0dG9uQ291bnQgPSAoKHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAxIDogMCkgKyAoY2FuVmlld0FnZW50cyA/IDEgOiAwKSkgYXMgMCB8IDEgfCAyXG4gIGNvbnN0IHNob3dBZ2VudHNOYXZCbG9jayA9IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gfHwgY2FuVmlld0FnZW50c1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gKCkgPT4gc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtyZXNldFNlbGVjdGVkQ2hhdFJlZl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RTZXNzaW9uID0gKGV2dDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgc2Vzc2lvbklkIH0gPSAoZXZ0IGFzIEN1c3RvbUV2ZW50PHsgc2Vzc2lvbklkPzogc3RyaW5nIH0+KS5kZXRhaWwgPz8ge31cbiAgICAgIGlmIChzZXNzaW9uSWQpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRDaGF0KHNlc3Npb25JZClcbiAgICAgIH1cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2lkZWJhci1zZWxlY3Qtc2Vzc2lvbicsIGhhbmRsZVNlbGVjdFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NpZGViYXItc2VsZWN0LXNlc3Npb24nLCBoYW5kbGVTZWxlY3RTZXNzaW9uKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQ2hhdCA9IGFzeW5jIChjaGF0OiBhbnkpID0+IHtcbiAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICBjb25zdCBoYW5kbGVVcGRhdGVDaGF0ID0gKGNoYXQ6IGFueSkgPT4ge1xuICAgIHVwZGF0ZUNoYXQoY2hhdClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3Blbk1vZGFsID0gKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsICYmIGlzT3Blbk1vZGFsICE9PSBjaGF0SWQpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKGNoYXRJZClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gKCkgPT4ge1xuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGlzT3Blbk1vZGFsICYmICEoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmNsb3Nlc3QoJ1tkYXRhLW1vZGFsLWNvbnRhaW5lcl0nKSkge1xuICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNPcGVuTW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVNpZGViYXIgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U2lkZWJhciwgeyBhY3Rpb246IGlzT3BlbiA/ICdjbG9zZScgOiAnb3BlbicgfSlcbiAgICBzZXRJc09wZW4ocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5DcmVhdGVBZ2VudCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmZW50aXR5PWdsb2JhbCZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGFnZW50SXRlbTogeyB0eXBlPzogc3RyaW5nOyBlbnRpdHk/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfSkgPT5cbiAgICAgICAgaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQoYWdlbnRJdGVtKVxuICAgICAgKVxuXG4gICAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIC8vIGhhbmRsZUdvVG9Ib21lIHB1ZWRlIHJlc2VsZWNjaW9uYXIgYWdlbnRzLmRhdGFbMF0gc2kgZWwgYWdlbnRlIGdsb2JhbCBhdW4gZXN0YSBlbiBudWxsXG4gICAgICAvLyAoY2xvc3VyZSBzdGFsZSBkZSBsYSBzZWNjaW9uIFwiTWlzIGFnZW50ZXNcIiksIHBvciBlc28gc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KSB2YSBkZXNwdWVzLlxuICAgICAgaGFuZGxlR29Ub0hvbWUoKVxuICAgICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFByaW1lcmEgY2FyZ2EgcGVyZXpvc2EgZGUgbGFzIGNvbnZlcnNhY2lvbmVzOiBhbCBhYnJpciBlbCBzaWRlYmFyIHBvciBwcmltZXJhIHZlei5cbiAgICBpZiAoIWNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAoc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgICBjaGF0c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBSZWZldGNoIHNvbGljaXRhZG8gcG9yIHByb3A6IHNlIGVqZWN1dGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGlmIChyZWZldGNoQ2hhdHMpIHtcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMoZmFsc2UpXG4gICAgfVxuICB9LCBbc2hvdWxkRmV0Y2hTZXNzaW9ucywgcmVmZXRjaENoYXRzLCBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsIGZldGNoQ2hhdHMsIGxpbWl0LCBvZmZzZXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50IHx8ICFoYXNNb3JlQ2hhdHMgfHwgaXNMb2FkaW5nTW9yZUNoYXRzIHx8IGhhc0Vycm9yKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMTBcblxuICAgICAgaWYgKGlzQXRCb3R0b20pIHtcbiAgICAgICAgbG9hZE1vcmVDaGF0cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtoYXNNb3JlQ2hhdHMsIGlzTG9hZGluZ01vcmVDaGF0cywgbG9hZE1vcmVDaGF0cywgaGFzRXJyb3JdKVxuXG4gIGNvbnN0IGhhbmRsZU5ld0NoYXQgPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpU2lkZWJhck5ld0NoYXQpXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEFsIGNyZWFyL2FjdHVhbGl6YXIgdW5hIGNvbnZlcnNhY2nDs24gcmVmcmVzY2Ftb3MgbGEgbGlzdGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAsIGJhY2tncm91bmQ6IHRydWUgfSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIH1cbiAgfSwgW2ZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgIWlzTGVnYWN5Q29udGV4dFNlc3Npb24gJiZcbiAgICAoKHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpIHx8XG4gICAgICAoIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2hpc3RvcnkudG9vbHRpcCcpfT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEhpc3RvcnkgY29sb3I9XCJyZ2JhKDEzLCAxMywgMTMsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzT3BlbiAmJiBzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciAvPlxuICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2FuVmlld0FnZW50cyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubXlBZ2VudHNOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz57dCgnaG9tZU1lbnUubWFpYWtlci5iYWRnZU5ldycpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8TXlBZ2VudHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5tYXJrVW5yZWFkKGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDaGF0KGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG9DaGF0KGNoYXREYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTW9kYWxPcGVuPXtpc09wZW5Nb2RhbCA9PT0gY2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uT3Blbk1vZGFsPXtoYW5kbGVPcGVuTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlTW9kYWw9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWxldGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVVcGRhdGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQ2hhdCA9PT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiBjb3VudD17Mn0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgICAgIDxFbXB0eUhpc3RvcnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0Pnt0KCdjb252ZXJzYXRpb25zLmVtcHR5Jyl9PC9TQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzU2Nyb2xsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmIGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgPC9TQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDU1NpZGViYXJGb290ZXJBY3Rpb25zICRpc09wZW49e2lzT3Blbn0gJGp1c3RpZnlCZXR3ZWVuPXshIXNlbGVjdGVkQWdlbnR9PlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ID8gPEZlZWRiYWNrQnV0dG9uIHNlbGVjdGVkQWdlbnQ9e3NlbGVjdGVkQWdlbnR9IGlzT3Blbj17aXNPcGVufSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NTU2lkZWJhckZvb3RlckFjdGlvbnM+XG4gICAgICA8L1NDU1NpZGViYXJCb2R5PlxuICAgIDwvU0NTU2lkZWJhclJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBMkJBLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzlFLFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxPQUFPLFFBQVEsMENBQTBDO0FBQ2xFLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxNQUFNLFFBQVEs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
|
|
626
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJOZXdDaGF0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VUIiwiT3B0aW9uSXRlbSIsIkVkaXRRdWVzdGlvbk1vZGFsIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIkVycm9ySWNvbiIsInVzZVVzZXIiLCJGZWVkYmFja0J1dHRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwiZ2V0QWdlbnREaXNwbGF5TmFtZSIsImlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiU0NTU2lkZWJhclJvb3QiLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsIm1lbnVJdGVtcyIsImxhYmVsIiwib25DbGlja0l0ZW0iLCJjaGF0SWQiLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJwbUFpTWVudURlbGV0ZSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjaGF0RGF0YSIsImhhbmRsZVVwZGF0ZUNoYXQiLCJoYW5kbGVEZWxldGVDaGF0IiwiY2hpbGRyZW4iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiJGluZGV4IiwicmVmIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJzdHlsZSIsImZvbnRTaXplIiwiZW1vamkiLCJpY29uT25seSIsInNpemUiLCJ2YXJpYW50IiwiZXZlbnQiLCJpZCIsInBvc2l0aW9uIiwidG9wIiwicmlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ6SW5kZXgiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImJvcmRlclJhZGl1cyIsImJvcmRlciIsIm1pbldpZHRoIiwibWFwIiwiX3JlZjIiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsIm9uQ2xvc2UiLCJoYW5kbGVTZXRJc09wZW5Nb2RhbCIsIlNpZGViYXIiLCJfcmVmMyIsIl91c2VyJHBlcm1pc3Npb25zIiwib25Hb1RvQ2hhdCIsIl9yZWYzJG9uRXJyb3IiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJzaG93TmV3Q2hhdCIsInJlZmV0Y2hDaGF0cyIsImhhbmRsZVNldFJlZmV0Y2hDaGF0cyIsImhhc0Vycm9yIiwicmVzZXRTZWxlY3RlZENoYXRSZWYiLCJfcmVmMyRhZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNOYXZBY3RpdmUiLCJfcmVmMyRpc0xlZ2FjeUNvbnRleHQiLCJpc0xlZ2FjeUNvbnRleHRTZXNzaW9uIiwiX3VzZVQyIiwiaTE4biIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc09wZW5Nb2RhbCIsInNldElzT3Blbk1vZGFsIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWxlY3RlZENoYXQiLCJzZXRTZWxlY3RlZENoYXQiLCJjaGF0c0ZldGNoZWRSZWYiLCJjaGF0c0NvbnRhaW5lclJlZiIsInNob3VsZEZldGNoU2Vzc2lvbnMiLCJ1c2VyIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50cyIsImNyZWF0ZSIsImhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5WaWV3QWdlbnRzIiwidmlldyIsInNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24iLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJhZ2VudE5hdkJ1dHRvbkNvdW50Iiwic2hvd0FnZW50c05hdkJsb2NrIiwiY3VycmVudCIsIl9yZWY0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlT3Blbk1vZGFsIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsInRhcmdldCIsImNsb3Nlc3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImFpQ2hhdFNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNSIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJhZ2VudEl0ZW0iLCJhYnJ1cHQiLCJoYW5kbGVTY3JvbGwiLCJfY2hhdHNDb250YWluZXJSZWYkY3UiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc0F0Qm90dG9tIiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsIl9yZWY2IiwiX2NhbGxlZTMiLCJfY29udGV4dDMiLCJhaVNpZGViYXJOZXdDaGF0IiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCIkaXNPcGVuIiwiY29sb3IiLCIkYWN0aXZlIiwiYWlDaGF0TXBPcGVuIiwiYWlTaWRlYmFyTXlBZ2VudHMiLCJ0eXBlIiwiJGhhc0NoYXRzIiwibGVuZ3RoIiwiJG9mZnNldFZhcmlhbnQiLCIkYWdlbnROYXZCdXR0b25Db3VudCIsImNvdW50IiwiJGp1c3RpZnlCZXR3ZWVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvbkRvdWJsZUxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG91YmxlTGVmdCdcbmltcG9ydCB7IEhpc3RvcnkgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9IaXN0b3J5J1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgUGVuY2lsIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGVuY2lsJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBFbXB0eUhpc3RvcnlJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRW1wdHlIaXN0b3J5J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyB1c2VDaGF0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRzJ1xuaW1wb3J0IHsgU2lkZWJhckNoYXRzU2tlbGV0b24gfSBmcm9tICcuL1NpZGViYXIuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTWFpYVN0b3JlSWNvbiwgTXlBZ2VudHNOYXZJY29uLCBOZXdDaGF0IH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuaW1wb3J0IHsgZ2V0QWdlbnREaXNwbGF5TmFtZSwgaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbixcbiAgU0NTV3JhcHBlck5ld0NoYXRJY29uLFxuICBTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbixcbn0gZnJvbSAnLi9TaWRlYmFyLnN0eWxlcydcbmltcG9ydCB7XG4gIFNDU1NpZGViYXJSb290LFxuICBTQ1NTaWRlYmFyVG9vbGJhcixcbiAgU0NTU2lkZWJhckJvZHksXG4gIFNDU1NpZGViYXJPcGVuUGFuZWwsXG4gIFNDU1NpZGViYXJBZ2VudHNCbG9jayxcbiAgU0NTU2lkZWJhckFnZW50c0FjdGlvbnMsXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3LFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmcsXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbi8qKiBBYnJldmlhIFwiZXNwZWNpYWxpc3RhXCIvXCJlc3BlY2lhbGlzdFwiIOKGkiBcIkVzcC5cIiAoRVMvUFQpIHkgXCJzcGVjaWFsaXN0XCIg4oaSIFwiU3BlYy5cIiAoRU4pIGVuIGVsIG5vbWJyZSBkZWwgYWdlbnRlLiAqL1xuZnVuY3Rpb24gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShhZ2VudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghYWdlbnROYW1lIHx8IHR5cGVvZiBhZ2VudE5hbWUgIT09ICdzdHJpbmcnKSByZXR1cm4gYWdlbnROYW1lXG4gIHJldHVybiBhZ2VudE5hbWUucmVwbGFjZSgvXFxiKGVzcGVjaWFsaXN0YXxlc3BlY2lhbGlzdClcXGIvZ2ksICdFc3AuJykucmVwbGFjZSgvXFxic3BlY2lhbGlzdFxcYi9naSwgJ1NwZWMuJylcbn1cblxuY29uc3QgTGlzdEhpc3RvcnlDaGF0ID0gKHtcbiAgY2hhdCxcbiAgb25DbGljayxcbiAgaXNNb2RhbE9wZW4sXG4gIG9uT3Blbk1vZGFsLFxuICBvbkNsb3NlTW9kYWwsXG4gIGhhbmRsZXJzLFxuICBpc1NlbGVjdGVkLFxuICBpbmRleCxcbn06IHtcbiAgY2hhdDogYW55XG4gIG9uQ2xpY2s6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgaXNNb2RhbE9wZW46IGJvb2xlYW5cbiAgb25PcGVuTW9kYWw6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkNsb3NlTW9kYWw6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVEZWxldGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gICAgaGFuZGxlVXBkYXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICB9XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbiAgaW5kZXg6IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBhZ2VudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZGlzcGxheVRpdGxlID0gdXNlTWVtbygoKSA9PiBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSksIFtjaGF0LnRpdGxlXSlcbiAgY29uc3QgZGlzcGxheUFnZW50ID0gZ2V0QWdlbnREaXNwbGF5TmFtZShjaGF0LmFnZW50VHlwZSwgY2hhdC5hZ2VudClcbiAgY29uc3QgY29udGV4dE5hbWUgPSBjaGF0LnByb2plY3ROYW1lIHx8IGNoYXQuY2xpZW50TmFtZVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbZGlzcGxheVRpdGxlXSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIoYWdlbnRSZWYsIFtjaGF0LmFnZW50XSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2FjdGlvbiwgc2V0QWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgbWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUucmVuYW1lJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZWRpdCcpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZGVsZXRlJylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFRyYXNoLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudURlbGV0ZSxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybUFjdGlvbiA9IChjaGF0RGF0YTogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2VkaXQnKSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVVcGRhdGVDaGF0KGNoYXREYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVEZWxldGVDaGF0KGNoYXREYXRhKVxuICAgIH1cbiAgICBzZXRBY3Rpb24obnVsbClcbiAgICBvbkNsb3NlTW9kYWwoKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDTEhDV3JhcHBlckNvbnRlbnRcbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgICBpc01vZGFsT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXI+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwID8gZGlzcGxheVRpdGxlIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlIHJlZj17dGV4dFJlZn0+e2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PlxuICAgICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgICAgICAgICAgICAgICAgID8gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShjaGF0LmFnZW50KVxuICAgICAgICAgICAgICAgICAgOiBjaGF0LmFnZW50fVxuICAgICAgICAgICAgICAgIHtjaGF0LnByb2plY3ROYW1lICYmIGAgLSAke2NoYXQucHJvamVjdE5hbWV9YH1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudFRleHQ+XG4gICAgICAgICAgICA8L1NDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXI+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgaWNvbk9ubHlcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIG9uT3Blbk1vZGFsKGNoYXQuaWQpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxNZW51RG90cyB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICB7aXNNb2RhbE9wZW4gJiYgIWFjdGlvbiAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtbW9kYWwtY29udGFpbmVyXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgdG9wOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDIyNCwgMjI0LCAyMjQsIDEpJyxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEyNHB4JyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge21lbnVJdGVtcy5tYXAoKHsgbGFiZWwsIG9uQ2xpY2tJdGVtLCBJY29uLCBldmVudEtleSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPE9wdGlvbkl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrSXRlbShjaGF0LmlkKX1cbiAgICAgICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgICAgICBldmVudEtleT17ZXZlbnRLZXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICA8L1NDTEhDV3JhcHBlckNvbnRlbnQ+XG4gICAgICB7ISFhY3Rpb24gJiZcbiAgICAgICAgYWN0aW9uc1thY3Rpb25dKHtcbiAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlTW9kYWwoKVxuICAgICAgICAgICAgc2V0QWN0aW9uKG51bGwpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGF0LFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uLFxuICAgICAgICAgICAgaGFuZGxlU2V0SXNPcGVuTW9kYWw6IG9uQ2xvc2VNb2RhbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU2lkZWJhciA9ICh7XG4gIG9uR29Ub0NoYXQsXG4gIG9uRXJyb3IgPSAoKSA9PiBudWxsLFxuICBoYW5kbGVHb1RvSG9tZSxcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlLFxuICBzaG93TmV3Q2hhdCxcbiAgcmVmZXRjaENoYXRzLFxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsXG4gIGhhc0Vycm9yLFxuICByZXNldFNlbGVjdGVkQ2hhdFJlZixcbiAgYWdlbnRzTmF2QWN0aXZlID0gbnVsbCxcbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbiA9IGZhbHNlLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuTWFya2V0cGxhY2U6ICgpID0+IHZvaWRcbiAgc2hvd05ld0NoYXQ6IGJvb2xlYW5cbiAgcmVmZXRjaENoYXRzOiBib29sZWFuXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0czogKHJlZmV0Y2g6IGJvb2xlYW4pID0+IHZvaWRcbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgcmVzZXRTZWxlY3RlZENoYXRSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PCgoKSA9PiB2b2lkKSB8IG51bGw+XG4gIC8qKiBSZXNhbHRhIE1haWFrZXIgbyBNaXMgYWdlbnRlcyAqL1xuICBhZ2VudHNOYXZBY3RpdmU/OiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgbnVsbFxuICAvKiogQ29udmVyc2FjacOzbiBkZSB1biBjbG9uZSBsZWdhY3kgKGFnZW50X3R5cGUgY2xvbmUgKyBlbnRpdHkgcHJvamVjdC9jbGllbnQvdGFzayk6IG9jdWx0YSBcIm51ZXZvIGNoYXRcIi4gKi9cbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbj86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBzaG91bGRGZXRjaFNlc3Npb25zID0gaXNPcGVuXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIG9mZnNldCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGVcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5WaWV3QWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiYgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9ICgoc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IDEgOiAwKSArIChjYW5WaWV3QWdlbnRzID8gMSA6IDApKSBhcyAwIHwgMSB8IDJcbiAgY29uc3Qgc2hvd0FnZW50c05hdkJsb2NrID0gc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiB8fCBjYW5WaWV3QWdlbnRzXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSAoKSA9PiBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfSwgW3Jlc2V0U2VsZWN0ZWRDaGF0UmVmXSlcblxuICBjb25zdCBoYW5kbGVEZWxldGVDaGF0ID0gYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgIGRlbGV0ZUNoYXQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwZGF0ZUNoYXQgPSAoY2hhdDogYW55KSA9PiB7XG4gICAgdXBkYXRlQ2hhdChjaGF0KVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuTW9kYWwgPSAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwgJiYgaXNPcGVuTW9kYWwgIT09IGNoYXRJZCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SXNPcGVuTW9kYWwoY2hhdElkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoaXNPcGVuTW9kYWwgJiYgIShldmVudC50YXJnZXQgYXMgRWxlbWVudCkuY2xvc2VzdCgnW2RhdGEtbW9kYWwtY29udGFpbmVyXScpKSB7XG4gICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtpc09wZW5Nb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlU2lkZWJhciA9ICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTaWRlYmFyLCB7IGFjdGlvbjogaXNPcGVuID8gJ2Nsb3NlJyA6ICdvcGVuJyB9KVxuICAgIHNldElzT3BlbihwcmV2ID0+ICFwcmV2KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZlbnRpdHk9Z2xvYmFsJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgY29uc3QgbWFpYWtlckFnZW50ID0gKGRhdGEuZGF0YSB8fCBbXSkuZmluZCgoYWdlbnRJdGVtOiB7IHR5cGU/OiBzdHJpbmc7IGVudGl0eT86IHN0cmluZzsgbmFtZT86IHN0cmluZyB9KSA9PlxuICAgICAgICBpc01hcmtldHBsYWNlR2xvYmFsQ2xvbmVBZ2VudChhZ2VudEl0ZW0pXG4gICAgICApXG5cbiAgICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgLy8gaGFuZGxlR29Ub0hvbWUgcHVlZGUgcmVzZWxlY2Npb25hciBhZ2VudHMuZGF0YVswXSBzaSBlbCBhZ2VudGUgZ2xvYmFsIGF1biBlc3RhIGVuIG51bGxcbiAgICAgIC8vIChjbG9zdXJlIHN0YWxlIGRlIGxhIHNlY2Npb24gXCJNaXMgYWdlbnRlc1wiKSwgcG9yIGVzbyBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpIHZhIGRlc3B1ZXMuXG4gICAgICBoYW5kbGVHb1RvSG9tZSgpXG4gICAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUHJpbWVyYSBjYXJnYSBwZXJlem9zYSBkZSBsYXMgY29udmVyc2FjaW9uZXM6IGFsIGFicmlyIGVsIHNpZGViYXIgcG9yIHByaW1lcmEgdmV6LlxuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldCB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIC8vIFJlZmV0Y2ggc29saWNpdGFkbyBwb3IgcHJvcDogc2UgZWplY3V0YSBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCByZWZldGNoQ2hhdHMsIGhhbmRsZVNldFJlZmV0Y2hDaGF0cywgZmV0Y2hDaGF0cywgbGltaXQsIG9mZnNldF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWhhc01vcmVDaGF0cyB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMgfHwgaGFzRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgICBpZiAoaXNBdEJvdHRvbSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTmV3Q2hhdClcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIC8vIFJlZnJlc2NhbW9zIGxhcyBjb252ZXJzYWNpb25lcyBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEFsIGNyZWFyL2FjdHVhbGl6YXIgdW5hIGNvbnZlcnNhY2nDs24gcmVmcmVzY2Ftb3MgbGEgbGlzdGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAgfSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIH1cbiAgfSwgW2ZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgIWlzTGVnYWN5Q29udGV4dFNlc3Npb24gJiZcbiAgICAoKHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpIHx8XG4gICAgICAoIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2hpc3RvcnkudG9vbHRpcCcpfT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEhpc3RvcnkgY29sb3I9XCJyZ2JhKDEzLCAxMywgMTMsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzT3BlbiAmJiBzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciAvPlxuICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2FuVmlld0FnZW50cyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubXlBZ2VudHNOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz57dCgnaG9tZU1lbnUubWFpYWtlci5iYWRnZU5ldycpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8TXlBZ2VudHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChjaGF0RGF0YS5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZENoYXQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gY291bnQ9ezJ9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICAgICA8RW1wdHlIaXN0b3J5SWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD57dCgnY29udmVyc2F0aW9ucy5lbXB0eScpfTwvU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c1Njcm9sbD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPnt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9PC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgIDwvU0NTU2lkZWJhck9wZW5QYW5lbD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyAkaXNPcGVuPXtpc09wZW59ICRqdXN0aWZ5QmV0d2Vlbj17ISFzZWxlY3RlZEFnZW50fT5cbiAgICAgICAgICB7c2VsZWN0ZWRBZ2VudCA/IDxGZWVkYmFja0J1dHRvbiBzZWxlY3RlZEFnZW50PXtzZWxlY3RlZEFnZW50fSBpc09wZW49e2lzT3Blbn0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDU1NpZGViYXJGb290ZXJBY3Rpb25zPlxuICAgICAgPC9TQ1NTaWRlYmFyQm9keT5cbiAgICA8L1NDU1NpZGViYXJSb290PlxuICApXG59XG4iXSwibWFwcGluZ3Mi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
|
|
@@ -19,14 +19,10 @@ export var SCLHCWrapperAgentText = styled.span.withConfig({
|
|
|
19
19
|
export var SCLHCWrapperTitle = styled.span.withConfig({
|
|
20
20
|
displayName: "Sidebarstyles__SCLHCWrapperTitle",
|
|
21
21
|
componentId: "sc-1y4wxn6-4"
|
|
22
|
-
})(["color:rgba(32,32,31,1);text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;
|
|
23
|
-
export var SCLHCWrapperTitleRow = styled.div.withConfig({
|
|
24
|
-
displayName: "Sidebarstyles__SCLHCWrapperTitleRow",
|
|
25
|
-
componentId: "sc-1y4wxn6-5"
|
|
26
|
-
})(["display:flex;align-items:center;gap:6px;min-width:0;width:100%;"]);
|
|
22
|
+
})(["color:rgba(32,32,31,1);text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;"]);
|
|
27
23
|
export var SCLHCWrapperContent = styled.div.withConfig({
|
|
28
24
|
displayName: "Sidebarstyles__SCLHCWrapperContent",
|
|
29
|
-
componentId: "sc-1y4wxn6-
|
|
25
|
+
componentId: "sc-1y4wxn6-5"
|
|
30
26
|
})(["display:flex;flex-direction:row;padding:12px 8px 12px 12px;cursor:pointer;", " position:relative;", " width:100%;justify-content:space-between;background-color:", ";border-radius:4px;&:hover{", "{display:flex;}", "{color:rgba(102,102,102,1);}background-color:", ";border-radius:4px;}", ""], function (_ref) {
|
|
31
27
|
var $index = _ref.$index;
|
|
32
28
|
return cascadeItem($index);
|
|
@@ -45,7 +41,7 @@ export var SCLHCWrapperContent = styled.div.withConfig({
|
|
|
45
41
|
});
|
|
46
42
|
export var SCSWrapperCollapsedButton = styled.div.withConfig({
|
|
47
43
|
displayName: "Sidebarstyles__SCSWrapperCollapsedButton",
|
|
48
|
-
componentId: "sc-1y4wxn6-
|
|
44
|
+
componentId: "sc-1y4wxn6-6"
|
|
49
45
|
})(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;width:28px;height:28px;align-self:", ";margin-right:", ";svg{width:", ";height:", ";*:not(.no-fill){fill:rgba(13,13,13,1) !important;transition:fill 0.3s ease;}}&:hover{box-shadow:none;background-color:#f2f2f2 !important;border-radius:200px;svg *:not(.no-fill){fill:rgba(13,13,13,1) !important;}}"], function (_ref6) {
|
|
50
46
|
var isOpen = _ref6.isOpen;
|
|
51
47
|
return isOpen ? 'auto' : 'flex-end';
|
|
@@ -61,13 +57,13 @@ export var SCSWrapperCollapsedButton = styled.div.withConfig({
|
|
|
61
57
|
});
|
|
62
58
|
export var SCSWrapperNewChatIcon = styled.div.withConfig({
|
|
63
59
|
displayName: "Sidebarstyles__SCSWrapperNewChatIcon",
|
|
64
|
-
componentId: "sc-1y4wxn6-
|
|
60
|
+
componentId: "sc-1y4wxn6-7"
|
|
65
61
|
})(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;padding:4px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;}&:hover{background-color:#f2f2f2 !important;border-radius:200px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;}}"]);
|
|
66
62
|
|
|
67
63
|
/** Iconos Maiaker / Mis agentes en barra superior solo con sidebar colapsado */
|
|
68
64
|
export var SCSWrapperAgentsNavIcon = styled.div.withConfig({
|
|
69
65
|
displayName: "Sidebarstyles__SCSWrapperAgentsNavIcon",
|
|
70
|
-
componentId: "sc-1y4wxn6-
|
|
66
|
+
componentId: "sc-1y4wxn6-8"
|
|
71
67
|
})(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;padding:4px;background-color:", ";border-radius:200px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;fill:rgba(13,13,13,1) !important;}&:hover{background-color:", " !important;border-radius:200px;}"], function (_ref0) {
|
|
72
68
|
var $active = _ref0.$active;
|
|
73
69
|
return $active ? '#ECECEC' : 'transparent';
|
|
@@ -75,4 +71,4 @@ export var SCSWrapperAgentsNavIcon = styled.div.withConfig({
|
|
|
75
71
|
var $active = _ref1.$active;
|
|
76
72
|
return $active ? '#ECECEC' : '#f2f2f2';
|
|
77
73
|
});
|
|
78
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjYXNjYWRlSXRlbSIsIlNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50Iiwic3BhbiIsIlNDTEhDV3JhcHBlckFnZW50VGV4dCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIl9yZWYiLCIkaW5kZXgiLCJfcmVmMiIsImlzTW9kYWxPcGVuIiwiX3JlZjMiLCJpc1NlbGVjdGVkIiwiX3JlZjQiLCJfcmVmNSIsIlNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24iLCJfcmVmNiIsImlzT3BlbiIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiX3JlZjAiLCIkYWN0aXZlIiwiX3JlZjEiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgY2FzY2FkZUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY2FzY2FkZSdcblxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgZmlsbDogcmdiYSgxNTMsIDE1MywgMTUzLCAxKSAhaW1wb3J0YW50O1xuICB9XG4gIGJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICAgIGZpbGw6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgd2lkdGg6IDE5MHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQWdlbnQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQWdlbnRUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gIHRleHQtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxNHB4O1xuYFxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlckNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgaXNNb2RhbE9wZW46IGJvb2xlYW47IGlzU2VsZWN0ZWQ/OiBib29sZWFuOyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHBhZGRpbmc6IDEycHggOHB4IDEycHggMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7ICRpbmRleCB9KSA9PiBjYXNjYWRlSXRlbSgkaW5kZXgpfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICR7KHsgaXNNb2RhbE9wZW4gfSkgPT5cbiAgICBpc01vZGFsT3BlbiAmJlxuICAgIGNzc2BcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgYH1cbiAgd2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc1NlbGVjdGVkIH0pID0+IChpc1NlbGVjdGVkID8gJyNFQ0VDRUMnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICY6aG92ZXIge1xuICAgICR7U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9uc30ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgJHtTQ0xIQ1dyYXBwZXJUaXRsZX0ge1xuICAgICAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICcjRUNFQ0VDJyA6ICcjZjJmMmYyJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuICAkeyh7IGlzTW9kYWxPcGVuIH0pID0+XG4gICAgaXNNb2RhbE9wZW4gJiZcbiAgICBjc3NgXG4gICAgICAke1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnN9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiA9IHN0eWxlZC5kaXY8eyBpc09wZW4/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYWxpZ24tc2VsZjogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICdhdXRvJyA6ICdmbGV4LWVuZCcpfTtcbiAgbWFyZ2luLXJpZ2h0OiAkeyh7IGlzT3BlbiB9KSA9PiAoaXNPcGVuID8gJzAnIDogJy0zcHgnKX07XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICcxNnB4JyA6ICcyMHB4Jyl9O1xuICAgIGhlaWdodDogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICcxNnB4JyA6ICcyMHB4Jyl9O1xuXG4gICAgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgZmlsbDogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlck5ld0NoYXRJY29uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgc3Ryb2tlOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgc3Ryb2tlOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbi8qKiBJY29ub3MgTWFpYWtlciAvIE1pcyBhZ2VudGVzIGVuIGJhcnJhIHN1cGVyaW9yIHNvbG8gY29uIHNpZGViYXIgY29sYXBzYWRvICovXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlckFnZW50c05hdkljb24gPSBzdHlsZWQuZGl2PHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBwYWRkaW5nOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgJGFjdGl2ZSB9KSA9PiAoJGFjdGl2ZSA/ICcjRUNFQ0VDJyA6ICd0cmFuc3BhcmVudCcpfTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgIHN0cm9rZTogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICAgIGZpbGw6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAnI0VDRUNFQycgOiAnI2YyZjJmMicpfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBRXJELE9BQU8sSUFBTUMseUJBQXlCLEdBQUdILE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRRQWlCbEQ7QUFFRCxPQUFPLElBQU1DLFlBQVksR0FBR1IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0lBU3JDO0FBRUQsT0FBTyxJQUFNRSxpQkFBaUIsR0FBR1QsTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMEVBTzNDO0FBQ0QsT0FBTyxJQUFNSSxxQkFBcUIsR0FBR1gsTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd0dBTS9DO0FBRUQsT0FBTyxJQUFNSyxpQkFBaUIsR0FBR1osTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseUhBTzNDO0FBQ0QsT0FBTyxJQUFNTSxtQkFBbUIsR0FBR2IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd1NBS3pDLFVBQUFPLElBQUE7RUFBQSxJQUFHQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtFQUFBLE9BQU9iLFdBQVcsQ0FBQ2EsTUFBTSxDQUFDO0FBQUEsR0FFbkMsVUFBQUMsS0FBQTtFQUFBLElBQUdDLFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0VBQUEsT0FDZEEsV0FBVyxJQUNYaEIsR0FBRyxnQkFFRjtBQUFBLEdBR2lCLFVBQUFpQixLQUFBO0VBQUEsSUFBR0MsVUFBVSxHQUFBRCxLQUFBLENBQVZDLFVBQVU7RUFBQSxPQUFRQSxVQUFVLEdBQUcsU0FBUyxHQUFHLGFBQWE7QUFBQSxDQUFDLEVBRzVFaEIseUJBQXlCLEVBR3pCUyxpQkFBaUIsRUFHQyxVQUFBUSxLQUFBO0VBQUEsSUFBR0QsVUFBVSxHQUFBQyxLQUFBLENBQVZELFVBQVU7RUFBQSxPQUFRQSxVQUFVLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBRzVFLFVBQUFFLEtBQUE7RUFBQSxJQUFHSixXQUFXLEdBQUFJLEtBQUEsQ0FBWEosV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWGhCLEdBQUcsMEJBQ0NFLHlCQUF5QixDQUc1QjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU1tQix5QkFBeUIsR0FBR3RCLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVaQVFuQyxVQUFBZ0IsS0FBQTtFQUFBLElBQUdDLE1BQU0sR0FBQUQsS0FBQSxDQUFOQyxNQUFNO0VBQUEsT0FBUUEsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVO0FBQUEsQ0FBQyxFQUM1QyxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsTUFBTSxHQUFBQyxLQUFBLENBQU5ELE1BQU07RUFBQSxPQUFRQSxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU07QUFBQSxDQUFDLEVBRzVDLFVBQUFFLEtBQUE7RUFBQSxJQUFHRixNQUFNLEdBQUFFLEtBQUEsQ0FBTkYsTUFBTTtFQUFBLE9BQVFBLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFDekMsVUFBQUcsS0FBQTtFQUFBLElBQUdILE1BQU0sR0FBQUcsS0FBQSxDQUFOSCxNQUFNO0VBQUEsT0FBUUEsTUFBTSxHQUFHLE1BQU0sR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQWdCdkQ7QUFFRCxPQUFPLElBQU1JLHFCQUFxQixHQUFHNUIsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMlNBaUI5Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTXNCLHVCQUF1QixHQUFHN0IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNFRBTzNCLFVBQUF1QixLQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsU0FBUyxHQUFHLGFBQWE7QUFBQSxDQUFDLEVBT3BELFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxPQUFPLEdBQUFDLEtBQUEsQ0FBUEQsT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsQ0FHekUiLCJpZ25vcmVMaXN0IjpbXX0=
|