@projectcor/maia-components 2.11.103-4 → 2.11.103-5
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/App.js +44 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.js +1 -6
- package/lib/components/atoms/icons/index.js +1 -2
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +91 -4
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +7 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +69 -308
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +18 -28
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -9
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +61 -69
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +1 -5
- package/lib/components/molecules/ChatFooter/ChatFooter.js +2 -4
- package/lib/components/molecules/Sidebar/Sidebar.js +61 -104
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +1 -16
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +29 -30
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +35 -6
- package/lib/components/organisms/ChatAI/ChatAI.js +40 -131
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +543 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/context/global-context.js +1 -3
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +61 -14
- package/lib/hooks/useAgentModel/useUpdateAgent.js +58 -11
- package/lib/hooks/useChatManager/useChatManager.js +438 -530
- package/lib/hooks/useChatMessages/useChatMessages.js +236 -427
- package/lib/hooks/useChats/useChats.js +4 -21
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +521 -139
- 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/index.js +5 -2
- package/lib/lang/br/index.js +9 -11
- package/lib/lang/en/index.js +9 -11
- package/lib/lang/es/index.js +9 -11
- package/lib/lang/fr/index.js +10 -13
- package/lib/services/maia/Agents/connectors.js +250 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +4 -6
- package/lib/services/maia/Chats/index.js +1 -3
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/useChatsStore.js +12 -149
- package/lib/types/Chat.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/utils/normalizeAgentConnectors.js +28 -3
- package/package.json +3 -3
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +0 -20
- package/lib/components/atoms/SessionGeneratingDot/index.js +0 -2
- package/lib/components/atoms/icons/MaiaSparkleIcon.js +0 -75
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +0 -66
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +0 -55
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +0 -2
- package/lib/hooks/useMinimizedPillBottomOffset.js +0 -97
- package/lib/services/maia/Chats/markSessionAsRead.js +0 -32
- package/lib/store/chatsSidebarOptimistic.js +0 -92
- package/lib/store/maiaMinimizedPersistence.js +0 -49
- package/lib/store/sessions/activeView.js +0 -22
- package/lib/store/sessions/index.js +0 -9
- package/lib/store/sessions/sessionHitlContext.js +0 -15
- package/lib/store/sessions/sessionNotificationSound.js +0 -57
- package/lib/store/sessions/sessionNotifications.js +0 -110
- package/lib/store/sessions/sessionNotifications.types.js +0 -2
- package/lib/store/sessions/sessionStreamManager.js +0 -576
- package/lib/store/sessions/sessionStreamingText.js +0 -80
- 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 -197
- package/lib/utils/formatUnreadCount.js +0 -6
- package/lib/utils/maiaHostOpen.js +0 -54
package/lib/components/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { ProjectSummaryModal } from './molecules/ProjectSummaryModal';
|
|
|
6
6
|
export { ContextMentionInput } from './molecules/ContextMentionInput';
|
|
7
7
|
export { ProjectSummary } from './organisms/ProjectSummary';
|
|
8
8
|
export { ChatAI } from './organisms/ChatAI';
|
|
9
|
+
export { ChatAIPage } from './organisms/ChatAIPage';
|
|
9
10
|
export { ProjectAIButton } from './organisms/ProjectAIButton';
|
|
10
11
|
export { ClientAIButton } from './organisms/ClientAIButton';
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiQ29udGV4dE1lbnRpb25JbnB1dCIsIlByb2plY3RTdW1tYXJ5IiwiQ2hhdEFJIiwiQ2hhdEFJUGFnZSIsIlByb2plY3RBSUJ1dHRvbiIsIkNsaWVudEFJQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTUFJQUJ1dHRvbiB9IGZyb20gJy4vYXRvbXMvTUFJQUJ1dHRvbidcbmV4cG9ydCB7IE1haWFXcmFwcGVyIH0gZnJvbSAnLi9hdG9tcy9NYWlhV3JhcHBlcidcbmV4cG9ydCB7IE1BSUFFcnJvciB9IGZyb20gJy4vYXRvbXMvTUFJQUVycm9yJ1xuXG5leHBvcnQgeyBBSUljb24gfSBmcm9tICcuL2F0b21zL2ljb25zJ1xuXG5leHBvcnQgeyBQcm9qZWN0U3VtbWFyeU1vZGFsIH0gZnJvbSAnLi9tb2xlY3VsZXMvUHJvamVjdFN1bW1hcnlNb2RhbCdcbmV4cG9ydCB7IENvbnRleHRNZW50aW9uSW5wdXQgfSBmcm9tICcuL21vbGVjdWxlcy9Db250ZXh0TWVudGlvbklucHV0J1xuXG5leHBvcnQgeyBQcm9qZWN0U3VtbWFyeSB9IGZyb20gJy4vb3JnYW5pc21zL1Byb2plY3RTdW1tYXJ5J1xuZXhwb3J0IHsgQ2hhdEFJIH0gZnJvbSAnLi9vcmdhbmlzbXMvQ2hhdEFJJ1xuZXhwb3J0IHsgQ2hhdEFJUGFnZSB9IGZyb20gJy4vb3JnYW5pc21zL0NoYXRBSVBhZ2UnXG5leHBvcnQgeyBQcm9qZWN0QUlCdXR0b24gfSBmcm9tICcuL29yZ2FuaXNtcy9Qcm9qZWN0QUlCdXR0b24nXG5leHBvcnQgeyBDbGllbnRBSUJ1dHRvbiB9IGZyb20gJy4vb3JnYW5pc21zL0NsaWVudEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsbUJBQW1CLFFBQVEsaUNBQWlDO0FBRXJFLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEI7QUFDM0QsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ25ELFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
4
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -7,10 +8,19 @@ import { useTranslation } from 'react-i18next';
|
|
|
7
8
|
import { OptionAccessibility } from '../../../atoms/OptionAccessibility';
|
|
8
9
|
import { OptionCorPermission } from '../../../atoms/OptionCorPermission';
|
|
9
10
|
import { EVENTS, useEvent } from '../../../../hooks/useEvent';
|
|
11
|
+
import { getAvailableConnectors } from '../../../../services/maia/Agents/connectors';
|
|
12
|
+
import { NETSUITE_CONNECTOR_SLUG } from '../../../../utils/normalizeAgentConnectors';
|
|
10
13
|
import { SCAASWrapper, SCAASHeader, SCAASTitle, SCAASSubtitle, SCAASContent, SCAASSection, SCAASSectionHeader, SCAASSectionTitle, SCAASSectionSubtitle, SCAASOptionsContainer, SCAASDivider } from './AbmAccessibilitySection.styles';
|
|
11
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
var FALLBACK_CONNECTORS = [{
|
|
16
|
+
id: 0,
|
|
17
|
+
slug: NETSUITE_CONNECTOR_SLUG,
|
|
18
|
+
name: 'NetSuite',
|
|
19
|
+
requires_auth: true,
|
|
20
|
+
is_active: true
|
|
21
|
+
}];
|
|
12
22
|
export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
13
|
-
var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _formValues$clients;
|
|
23
|
+
var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _values$accessibility5, _values$accessibility7, _formValues$clients;
|
|
14
24
|
var values = _ref.values,
|
|
15
25
|
handleSetAgentValues = _ref.handleSetAgentValues;
|
|
16
26
|
var _useTranslation = useTranslation('abm_agent_section'),
|
|
@@ -19,11 +29,16 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
19
29
|
var _useState = useState({
|
|
20
30
|
accessType: (values === null || values === void 0 || (_values$accessibility = values.accessibility) === null || _values$accessibility === void 0 ? void 0 : _values$accessibility.accessType) || 'company',
|
|
21
31
|
clients: (values === null || values === void 0 || (_values$accessibility2 = values.accessibility) === null || _values$accessibility2 === void 0 ? void 0 : _values$accessibility2.clients) || null,
|
|
22
|
-
taskAccess: (_values$accessibility3 = values === null || values === void 0 || (_values$accessibility4 = values.accessibility) === null || _values$accessibility4 === void 0 ? void 0 : _values$accessibility4.taskAccess) !== null && _values$accessibility3 !== void 0 ? _values$accessibility3 : true
|
|
32
|
+
taskAccess: (_values$accessibility3 = values === null || values === void 0 || (_values$accessibility4 = values.accessibility) === null || _values$accessibility4 === void 0 ? void 0 : _values$accessibility4.taskAccess) !== null && _values$accessibility3 !== void 0 ? _values$accessibility3 : true,
|
|
33
|
+
selectedConnectors: (values === null || values === void 0 || (_values$accessibility5 = values.accessibility) === null || _values$accessibility5 === void 0 ? void 0 : _values$accessibility5.selectedConnectors) || []
|
|
23
34
|
}),
|
|
24
35
|
_useState2 = _slicedToArray(_useState, 2),
|
|
25
36
|
formValues = _useState2[0],
|
|
26
37
|
setFormValues = _useState2[1];
|
|
38
|
+
var _useState3 = useState(FALLBACK_CONNECTORS),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
catalogConnectors = _useState4[0],
|
|
41
|
+
setCatalogConnectors = _useState4[1];
|
|
27
42
|
var _handleSelectOption = function handleSelectOption(option, clients) {
|
|
28
43
|
var optionMapping = {
|
|
29
44
|
company: 'all_company',
|
|
@@ -36,7 +51,8 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
36
51
|
var valueToSend = {
|
|
37
52
|
accessType: option,
|
|
38
53
|
clients: null,
|
|
39
|
-
taskAccess: formValues.taskAccess
|
|
54
|
+
taskAccess: formValues.taskAccess,
|
|
55
|
+
selectedConnectors: formValues.selectedConnectors
|
|
40
56
|
};
|
|
41
57
|
if (option !== 'clients' || !clients) {
|
|
42
58
|
setFormValues(valueToSend);
|
|
@@ -67,6 +83,40 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
67
83
|
});
|
|
68
84
|
});
|
|
69
85
|
};
|
|
86
|
+
var handleConnectorAccessChange = function handleConnectorAccessChange(slug, checked) {
|
|
87
|
+
eventAmplitude(EVENTS.connectorMcp, {
|
|
88
|
+
option: checked ? 'on' : 'off',
|
|
89
|
+
slug: slug
|
|
90
|
+
});
|
|
91
|
+
setFormValues(function (prev) {
|
|
92
|
+
var next = new Set(prev.selectedConnectors);
|
|
93
|
+
if (checked) {
|
|
94
|
+
next.add(slug);
|
|
95
|
+
} else {
|
|
96
|
+
next["delete"](slug);
|
|
97
|
+
}
|
|
98
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
99
|
+
selectedConnectors: Array.from(next)
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
useEffect(function () {
|
|
104
|
+
var _values$accessibility6;
|
|
105
|
+
var nextConnectors = values === null || values === void 0 || (_values$accessibility6 = values.accessibility) === null || _values$accessibility6 === void 0 ? void 0 : _values$accessibility6.selectedConnectors;
|
|
106
|
+
if (!nextConnectors) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
setFormValues(function (prev) {
|
|
110
|
+
var current = _toConsumableArray(prev.selectedConnectors).sort().join('|');
|
|
111
|
+
var incoming = _toConsumableArray(nextConnectors).sort().join('|');
|
|
112
|
+
if (current === incoming) {
|
|
113
|
+
return prev;
|
|
114
|
+
}
|
|
115
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
116
|
+
selectedConnectors: nextConnectors
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
}, [values === null || values === void 0 || (_values$accessibility7 = values.accessibility) === null || _values$accessibility7 === void 0 ? void 0 : _values$accessibility7.selectedConnectors]);
|
|
70
120
|
useEffect(function () {
|
|
71
121
|
if (formValues) {
|
|
72
122
|
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
@@ -75,6 +125,24 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
75
125
|
});
|
|
76
126
|
}
|
|
77
127
|
}, [formValues]);
|
|
128
|
+
useEffect(function () {
|
|
129
|
+
var cancelled = false;
|
|
130
|
+
getAvailableConnectors().then(function (connectors) {
|
|
131
|
+
if (!cancelled) {
|
|
132
|
+
setCatalogConnectors(connectors.filter(function (connector) {
|
|
133
|
+
return connector.is_active && connector.slug === NETSUITE_CONNECTOR_SLUG;
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
})["catch"](function (error) {
|
|
137
|
+
console.error('Error fetching connectors catalog:', error);
|
|
138
|
+
if (!cancelled) {
|
|
139
|
+
setCatalogConnectors(FALLBACK_CONNECTORS);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return function () {
|
|
143
|
+
cancelled = true;
|
|
144
|
+
};
|
|
145
|
+
}, []);
|
|
78
146
|
return /*#__PURE__*/_jsxs(SCAASWrapper, {
|
|
79
147
|
children: [/*#__PURE__*/_jsxs(SCAASHeader, {
|
|
80
148
|
$index: 0,
|
|
@@ -98,6 +166,25 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
98
166
|
checked: formValues.taskAccess,
|
|
99
167
|
onChange: handleTaskAccessChange
|
|
100
168
|
})]
|
|
169
|
+
}), /*#__PURE__*/_jsx(SCAASDivider, {}), /*#__PURE__*/_jsxs(SCAASSection, {
|
|
170
|
+
children: [/*#__PURE__*/_jsxs(SCAASSectionHeader, {
|
|
171
|
+
children: [/*#__PURE__*/_jsx(SCAASSectionTitle, {
|
|
172
|
+
children: t('accessibilitySection.mcpPermissionsTitle')
|
|
173
|
+
}), /*#__PURE__*/_jsx(SCAASSectionSubtitle, {
|
|
174
|
+
children: t('accessibilitySection.mcpPermissionsSubtitle')
|
|
175
|
+
})]
|
|
176
|
+
}), catalogConnectors.map(function (connector) {
|
|
177
|
+
return /*#__PURE__*/_jsx(OptionCorPermission, {
|
|
178
|
+
title: connector.slug === NETSUITE_CONNECTOR_SLUG ? t('accessibilitySection.netsuiteAccessTitle') : connector.name,
|
|
179
|
+
description: connector.slug === NETSUITE_CONNECTOR_SLUG ? t('accessibilitySection.netsuiteAccessDescription') : connector.description || t('accessibilitySection.connectorAccessDescription', {
|
|
180
|
+
name: connector.name
|
|
181
|
+
}),
|
|
182
|
+
checked: formValues.selectedConnectors.includes(connector.slug),
|
|
183
|
+
onChange: function onChange(checked) {
|
|
184
|
+
return handleConnectorAccessChange(connector.slug, checked);
|
|
185
|
+
}
|
|
186
|
+
}, connector.slug);
|
|
187
|
+
})]
|
|
101
188
|
}), /*#__PURE__*/_jsx(SCAASDivider, {}), /*#__PURE__*/_jsxs(SCAASSection, {
|
|
102
189
|
children: [/*#__PURE__*/_jsxs(SCAASSectionHeader, {
|
|
103
190
|
children: [/*#__PURE__*/_jsx(SCAASSectionTitle, {
|
|
@@ -146,4 +233,4 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
146
233
|
})]
|
|
147
234
|
});
|
|
148
235
|
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsIlNDQUFTV3JhcHBlciIsIlNDQUFTSGVhZGVyIiwiU0NBQVNUaXRsZSIsIlNDQUFTU3VidGl0bGUiLCJTQ0FBU0NvbnRlbnQiLCJTQ0FBU1NlY3Rpb24iLCJTQ0FBU1NlY3Rpb25IZWFkZXIiLCJTQ0FBU1NlY3Rpb25UaXRsZSIsIlNDQUFTU2VjdGlvblN1YnRpdGxlIiwiU0NBQVNPcHRpb25zQ29udGFpbmVyIiwiU0NBQVNEaXZpZGVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkFibUFjY2Vzc2liaWxpdHlTZWN0aW9uIiwiX3JlZiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTIiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkzIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NCIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsInRhc2tBY2Nlc3MiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtVmFsdWVzIiwic2V0Rm9ybVZhbHVlcyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZVRhc2tBY2Nlc3NDaGFuZ2UiLCJjaGVja2VkIiwiY29ubmVjdG9yQ29yIiwicHJldiIsImtleSIsInZhbHVlIiwiY2hpbGRyZW4iLCIkaW5kZXgiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJvcHRpb25TZWxlY3RlZCIsImlzQ2xpZW50IiwicHJvcHMiLCJzZWxlY3RlZENsaWVudHMiLCJfY2xpZW50JG5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgT3B0aW9uQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL2F0b21zL09wdGlvbkFjY2Vzc2liaWxpdHknXG5pbXBvcnQgeyBPcHRpb25Db3JQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIFNDQUFTV3JhcHBlcixcbiAgU0NBQVNIZWFkZXIsXG4gIFNDQUFTVGl0bGUsXG4gIFNDQUFTU3VidGl0bGUsXG4gIFNDQUFTQ29udGVudCxcbiAgU0NBQVNTZWN0aW9uLFxuICBTQ0FBU1NlY3Rpb25IZWFkZXIsXG4gIFNDQUFTU2VjdGlvblRpdGxlLFxuICBTQ0FBU1NlY3Rpb25TdWJ0aXRsZSxcbiAgU0NBQVNPcHRpb25zQ29udGFpbmVyLFxuICBTQ0FBU0RpdmlkZXIsXG59IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uc3R5bGVzJ1xuaW1wb3J0IHsgQ2xpZW50Rm9ybURhdGEgfSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLmludGVyZmFjZSdcblxuaW50ZXJmYWNlIEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uUHJvcHMge1xuICB2YWx1ZXM/OiB7XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgdGFza0FjY2Vzcz86IGJvb2xlYW5cbiAgICB9XG4gIH1cbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/OiAoeyBrZXksIHZhbHVlIH06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uID0gKHsgdmFsdWVzLCBoYW5kbGVTZXRBZ2VudFZhbHVlcyB9OiBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgdGFza0FjY2VzczogYm9vbGVhblxuICB9Pih7XG4gICAgYWNjZXNzVHlwZTogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5hY2Nlc3NUeXBlIHx8ICdjb21wYW55JyxcbiAgICBjbGllbnRzOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmNsaWVudHMgfHwgbnVsbCxcbiAgICB0YXNrQWNjZXNzOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnRhc2tBY2Nlc3MgPz8gdHJ1ZSxcbiAgfSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSAob3B0aW9uOiBzdHJpbmcsIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBjb21wYW55OiAnYWxsX2NvbXBhbnknLFxuICAgICAgY2xpZW50czogJ2J5X2NsaWVudGVzJyxcbiAgICAgIG9ubHlfbWU6ICdqdXN0X21lJyxcbiAgICB9XG5cbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVR5cGUsIHsgb3B0aW9uOiBvcHRpb25NYXBwaW5nW29wdGlvbl0gfSlcblxuICAgIGNvbnN0IHZhbHVlVG9TZW5kID0ge1xuICAgICAgYWNjZXNzVHlwZTogb3B0aW9uLFxuICAgICAgY2xpZW50czogbnVsbCBhcyBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCxcbiAgICAgIHRhc2tBY2Nlc3M6IGZvcm1WYWx1ZXMudGFza0FjY2VzcyxcbiAgICB9XG4gICAgaWYgKG9wdGlvbiAhPT0gJ2NsaWVudHMnIHx8ICFjbGllbnRzKSB7XG4gICAgICBzZXRGb3JtVmFsdWVzKHZhbHVlVG9TZW5kKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgY2xpZW50Rm9ybURhdGEgPSBjbGllbnRzLm1hcChjbGllbnQgPT4gKHtcbiAgICAgIGlkOiBjbGllbnQuaWQsXG4gICAgICBuYW1lOiBjbGllbnQubmFtZSxcbiAgICAgIGlzX2FjdGl2ZTogY2xpZW50LmlzX2FjdGl2ZSxcbiAgICAgIGlzX2RlbGV0ZWQ6IGNsaWVudC5pc19kZWxldGVkLFxuICAgIH0pKVxuXG4gICAgaWYgKGNsaWVudHMgJiYgY2xpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudClcbiAgICB9XG5cbiAgICBzZXRGb3JtVmFsdWVzKHsgLi4udmFsdWVUb1NlbmQsIGNsaWVudHM6IGNsaWVudEZvcm1EYXRhIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrQWNjZXNzQ2hhbmdlID0gKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgdGFza0FjY2VzczogY2hlY2tlZCxcbiAgICB9KSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPE9wdGlvbkNvclBlcm1pc3Npb25cbiAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi50YXNrQWNjZXNzVGl0bGUnKX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi50YXNrQWNjZXNzRGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgIGNoZWNrZWQ9e2Zvcm1WYWx1ZXMudGFza0FjY2Vzc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYXNrQWNjZXNzQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDM0MsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSw0QkFBNEI7QUFDN0QsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsRUFDakJDLG9CQUFvQixFQUNwQkMscUJBQXFCLEVBQ3JCQyxZQUFZLFFBQ1Asa0NBQWtDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWN6QyxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUFDLElBQUEsRUFB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
|
|
236
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJORVRTVUlURV9DT05ORUNUT1JfU0xVRyIsIlNDQUFTV3JhcHBlciIsIlNDQUFTSGVhZGVyIiwiU0NBQVNUaXRsZSIsIlNDQUFTU3VidGl0bGUiLCJTQ0FBU0NvbnRlbnQiLCJTQ0FBU1NlY3Rpb24iLCJTQ0FBU1NlY3Rpb25IZWFkZXIiLCJTQ0FBU1NlY3Rpb25UaXRsZSIsIlNDQUFTU2VjdGlvblN1YnRpdGxlIiwiU0NBQVNPcHRpb25zQ29udGFpbmVyIiwiU0NBQVNEaXZpZGVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZBTExCQUNLX0NPTk5FQ1RPUlMiLCJpZCIsInNsdWciLCJuYW1lIiwicmVxdWlyZXNfYXV0aCIsImlzX2FjdGl2ZSIsIkFibUFjY2Vzc2liaWxpdHlTZWN0aW9uIiwiX3JlZiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTIiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkzIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NCIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTUiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk3IiwiX2Zvcm1WYWx1ZXMkY2xpZW50cyIsInZhbHVlcyIsImhhbmRsZVNldEFnZW50VmFsdWVzIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZVN0YXRlIiwiYWNjZXNzVHlwZSIsImFjY2Vzc2liaWxpdHkiLCJjbGllbnRzIiwidGFza0FjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm1WYWx1ZXMiLCJzZXRGb3JtVmFsdWVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJjYXRhbG9nQ29ubmVjdG9ycyIsInNldENhdGFsb2dDb25uZWN0b3JzIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwib3B0aW9uIiwib3B0aW9uTWFwcGluZyIsImNvbXBhbnkiLCJvbmx5X21lIiwiYWNjZXNzaWJpbGl0eVR5cGUiLCJ2YWx1ZVRvU2VuZCIsImNsaWVudEZvcm1EYXRhIiwibWFwIiwiY2xpZW50IiwiaXNfZGVsZXRlZCIsImxlbmd0aCIsImFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQiLCJfb2JqZWN0U3ByZWFkIiwiaGFuZGxlVGFza0FjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTYiLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiY29ubmVjdG9ycyIsImZpbHRlciIsImNvbm5lY3RvciIsImVycm9yIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm9uQ2hhbmdlIiwiaW5jbHVkZXMiLCJvcHRpb25TZWxlY3RlZCIsImlzQ2xpZW50IiwicHJvcHMiLCJzZWxlY3RlZENsaWVudHMiLCJfY2xpZW50JG5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgT3B0aW9uQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL2F0b21zL09wdGlvbkFjY2Vzc2liaWxpdHknXG5pbXBvcnQgeyBPcHRpb25Db3JQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IGdldEF2YWlsYWJsZUNvbm5lY3RvcnMsIHR5cGUgQ2F0YWxvZ0Nvbm5lY3RvciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMnXG5pbXBvcnQgeyBORVRTVUlURV9DT05ORUNUT1JfU0xVRyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycydcbmltcG9ydCB7XG4gIFNDQUFTV3JhcHBlcixcbiAgU0NBQVNIZWFkZXIsXG4gIFNDQUFTVGl0bGUsXG4gIFNDQUFTU3VidGl0bGUsXG4gIFNDQUFTQ29udGVudCxcbiAgU0NBQVNTZWN0aW9uLFxuICBTQ0FBU1NlY3Rpb25IZWFkZXIsXG4gIFNDQUFTU2VjdGlvblRpdGxlLFxuICBTQ0FBU1NlY3Rpb25TdWJ0aXRsZSxcbiAgU0NBQVNPcHRpb25zQ29udGFpbmVyLFxuICBTQ0FBU0RpdmlkZXIsXG59IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uc3R5bGVzJ1xuaW1wb3J0IHsgQ2xpZW50Rm9ybURhdGEgfSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLmludGVyZmFjZSdcblxuY29uc3QgRkFMTEJBQ0tfQ09OTkVDVE9SUzogQ2F0YWxvZ0Nvbm5lY3RvcltdID0gW1xuICB7XG4gICAgaWQ6IDAsXG4gICAgc2x1ZzogTkVUU1VJVEVfQ09OTkVDVE9SX1NMVUcsXG4gICAgbmFtZTogJ05ldFN1aXRlJyxcbiAgICByZXF1aXJlc19hdXRoOiB0cnVlLFxuICAgIGlzX2FjdGl2ZTogdHJ1ZSxcbiAgfSxcbl1cblxuaW50ZXJmYWNlIEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uUHJvcHMge1xuICB2YWx1ZXM/OiB7XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgdGFza0FjY2Vzcz86IGJvb2xlYW5cbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9ycz86IHN0cmluZ1tdXG4gICAgfVxuICB9XG4gIGhhbmRsZVNldEFnZW50VmFsdWVzPzogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IFtmb3JtVmFsdWVzLCBzZXRGb3JtVmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBhY2Nlc3NUeXBlOiBzdHJpbmdcbiAgICBjbGllbnRzOiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgIHRhc2tBY2Nlc3M6IGJvb2xlYW5cbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIHRhc2tBY2Nlc3M6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8udGFza0FjY2VzcyA/PyB0cnVlLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gIH0pXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihGQUxMQkFDS19DT05ORUNUT1JTKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IChvcHRpb246IHN0cmluZywgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uTWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGNvbXBhbnk6ICdhbGxfY29tcGFueScsXG4gICAgICBjbGllbnRzOiAnYnlfY2xpZW50ZXMnLFxuICAgICAgb25seV9tZTogJ2p1c3RfbWUnLFxuICAgIH1cblxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG9wdGlvbk1hcHBpbmdbb3B0aW9uXSB9KVxuXG4gICAgY29uc3QgdmFsdWVUb1NlbmQgPSB7XG4gICAgICBhY2Nlc3NUeXBlOiBvcHRpb24sXG4gICAgICBjbGllbnRzOiBudWxsIGFzIENsaWVudEZvcm1EYXRhW10gfCBudWxsLFxuICAgICAgdGFza0FjY2VzczogZm9ybVZhbHVlcy50YXNrQWNjZXNzLFxuICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBmb3JtVmFsdWVzLnNlbGVjdGVkQ29ubmVjdG9ycyxcbiAgICB9XG4gICAgaWYgKG9wdGlvbiAhPT0gJ2NsaWVudHMnIHx8ICFjbGllbnRzKSB7XG4gICAgICBzZXRGb3JtVmFsdWVzKHZhbHVlVG9TZW5kKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgY2xpZW50Rm9ybURhdGEgPSBjbGllbnRzLm1hcChjbGllbnQgPT4gKHtcbiAgICAgIGlkOiBjbGllbnQuaWQsXG4gICAgICBuYW1lOiBjbGllbnQubmFtZSxcbiAgICAgIGlzX2FjdGl2ZTogY2xpZW50LmlzX2FjdGl2ZSxcbiAgICAgIGlzX2RlbGV0ZWQ6IGNsaWVudC5pc19kZWxldGVkLFxuICAgIH0pKVxuXG4gICAgaWYgKGNsaWVudHMgJiYgY2xpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVNlbGVjdENsaWVudClcbiAgICB9XG5cbiAgICBzZXRGb3JtVmFsdWVzKHsgLi4udmFsdWVUb1NlbmQsIGNsaWVudHM6IGNsaWVudEZvcm1EYXRhIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrQWNjZXNzQ2hhbmdlID0gKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgdGFza0FjY2VzczogY2hlY2tlZCxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycygpXG4gICAgICAudGhlbihjb25uZWN0b3JzID0+IHtcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhcbiAgICAgICAgICAgIGNvbm5lY3RvcnMuZmlsdGVyKFxuICAgICAgICAgICAgICBjb25uZWN0b3IgPT4gY29ubmVjdG9yLmlzX2FjdGl2ZSAmJiBjb25uZWN0b3Iuc2x1ZyA9PT0gTkVUU1VJVEVfQ09OTkVDVE9SX1NMVUdcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjb25uZWN0b3JzIGNhdGFsb2c6JywgZXJyb3IpXG4gICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnMoRkFMTEJBQ0tfQ09OTkVDVE9SUylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBQVNXcmFwcGVyPlxuICAgICAgPFNDQUFTSGVhZGVyICRpbmRleD17MH0+XG4gICAgICAgIDxTQ0FBU1RpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi50aXRsZVNlY3Rpb24nKX08L1NDQUFTVGl0bGU+XG4gICAgICAgIDxTQ0FBU1N1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdWJ0aXRsZVNlY3Rpb24nKX08L1NDQUFTU3VidGl0bGU+XG4gICAgICA8L1NDQUFTSGVhZGVyPlxuICAgICAgPFNDQUFTQ29udGVudCAkaW5kZXg9ezF9PlxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvclBlcm1pc3Npb25zVGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnRhc2tBY2Nlc3NUaXRsZScpfVxuICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnRhc2tBY2Nlc3NEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy50YXNrQWNjZXNzfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhc2tBY2Nlc3NDaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TQ0FBU1NlY3Rpb24+XG5cbiAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgIDxTQ0FBU1NlY3Rpb24+XG4gICAgICAgICAgPFNDQUFTU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm1jcFBlcm1pc3Npb25zU3VidGl0bGUnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgIDxPcHRpb25Db3JQZXJtaXNzaW9uXG4gICAgICAgICAgICAgIGtleT17Y29ubmVjdG9yLnNsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICBjb25uZWN0b3Iuc2x1ZyA9PT0gTkVUU1VJVEVfQ09OTkVDVE9SX1NMVUdcbiAgICAgICAgICAgICAgICAgID8gdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubmV0c3VpdGVBY2Nlc3NUaXRsZScpXG4gICAgICAgICAgICAgICAgICA6IGNvbm5lY3Rvci5uYW1lXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgIGNvbm5lY3Rvci5zbHVnID09PSBORVRTVUlURV9DT05ORUNUT1JfU0xVR1xuICAgICAgICAgICAgICAgICAgPyB0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5uZXRzdWl0ZUFjY2Vzc0Rlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgIDogY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2Zvcm1WYWx1ZXMuc2VsZWN0ZWRDb25uZWN0b3JzLmluY2x1ZGVzKGNvbm5lY3Rvci5zbHVnKX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFt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
|