@projectcor/maia-components 2.11.20-8 → 2.11.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +2 -16
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +5 -6
  3. package/lib/components/atoms/MAIAInput/MAIAInput.js +6 -6
  4. package/lib/components/atoms/icons/index.js +1 -3
  5. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -24
  6. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +61 -26
  7. package/lib/components/molecules/ChatAIHome/styles.js +43 -37
  8. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -58
  9. package/lib/components/molecules/ChatAIMessages/newStyles.js +21 -24
  10. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +14 -184
  11. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +42 -20
  12. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +13 -5
  13. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  14. package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -4
  15. package/lib/components/molecules/Sidebar/Sidebar.js +198 -171
  16. package/lib/components/molecules/Sidebar/Sidebar.styles.js +1 -13
  17. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +52 -99
  18. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +6 -6
  19. package/lib/constants/formatExtensions.js +4 -1
  20. package/lib/hooks/index.js +1 -4
  21. package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
  22. package/lib/hooks/useChatManager/useChatManager.js +85 -245
  23. package/lib/hooks/useEvent.js +2 -5
  24. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  25. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -19
  26. package/lib/lang/br/index.js +9 -75
  27. package/lib/lang/en/index.js +9 -75
  28. package/lib/lang/es/index.js +7 -73
  29. package/lib/lang/fr/index.js +4 -100
  30. package/lib/services/maia/Agents/getAgentById.js +5 -9
  31. package/lib/services/maia/Agents/getAgents.js +10 -9
  32. package/lib/services/maia/Orchestrator/orchestrator.js +25 -35
  33. package/lib/services/utils/mapChatMessages.js +1 -2
  34. package/lib/types/Chat.js +1 -1
  35. package/lib/types/agent.js +1 -1
  36. package/lib/types/agentModal.js +1 -1
  37. package/package.json +1 -1
  38. package/lib/components/atoms/icons/MaiaStoreIcon.js +0 -31
  39. package/lib/components/atoms/icons/MyAgentsNavIcon.js +0 -51
  40. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +0 -130
  41. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +0 -91
  42. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +0 -137
  43. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +0 -43
  44. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +0 -37
  45. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +0 -326
  46. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +0 -168
  47. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +0 -114
  48. package/lib/hooks/useAgentSuggestions.js +0 -60
  49. package/lib/services/maia/Agents/fetchAgentDetail.js +0 -122
  50. package/lib/services/maia/Agents/getAgentSuggestions.js +0 -44
  51. package/lib/types/AgentSuggestion.js +0 -2
@@ -1,326 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _regeneratorRuntime from "@babel/runtime/regenerator";
4
- import React, { useEffect, useMemo, useState } from 'react';
5
- import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
6
- import { Star } from '@projectcor/icons/lib/components/Star';
7
- import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
8
- import { useTranslation } from 'react-i18next';
9
- import { useGlobalContext } from '../../../context/global-context';
10
- import { useUser } from '../../../context/cor-user';
11
- import { deleteAgent } from '../../../services/maia/Agents/deleteAgent';
12
- import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
13
- import { DeleteQuestionModal } from '../../organisms/DeleteQuestionModal/DeleteQuestionModal';
14
- import { SECTIONS } from '../../../constants/config';
15
- import { Loader } from '../../atoms/Loader';
16
- import { useToggleFavorite } from '../../../hooks';
17
- import { SCMABody, SCMACardBody, SCMACardButton, SCMACardFooter, SCMACardHeader, SCMACardTopRow, SCMACardIntroText, SCMACardMenu, SCMACardMenuItem, SCMACardMenuItems, SCMAFavoriteButton, SCMACardText, SCMACardTitleEmoji, SCMACardTitleName, SCMACardsOuter, SCMACardsRow, SCMAEmptyStateRoot, SCMAEmptyStateColumn, SCMAEmptyStateTitleBlock, SCMAEmptyStateTitle, SCMAEmptyStateSubtitle, SCMAEmptyStateButton, SCMAKebabButton, SCMALoadMoreWrapper, SCMAMyAgentsContainer, SCMATitle, SCMATitleInner, SCMATitleWrap } from './ChatAIMyAgents.styles';
18
- import { MAIAIsologo } from '../../atoms/icons';
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
21
- var _user$permissions;
22
- var onBack = _ref.onBack,
23
- agents = _ref.agents,
24
- onDeleteAgent = _ref.onDeleteAgent,
25
- onFavoriteAgentUpdate = _ref.onFavoriteAgentUpdate,
26
- _ref$hasMoreAgents = _ref.hasMoreAgents,
27
- hasMoreAgents = _ref$hasMoreAgents === void 0 ? false : _ref$hasMoreAgents,
28
- _ref$loadingMoreAgent = _ref.loadingMoreAgents,
29
- loadingMoreAgents = _ref$loadingMoreAgent === void 0 ? false : _ref$loadingMoreAgent,
30
- onLoadMoreAgents = _ref.onLoadMoreAgents,
31
- onGoToMaiaker = _ref.onGoToMaiaker;
32
- var _useTranslation = useTranslation([SECTIONS.chatAI, SECTIONS.abmAgent]),
33
- t = _useTranslation.t;
34
- var user = useUser();
35
- var _useGlobalContext = useGlobalContext(),
36
- selectAgent = _useGlobalContext.selectAgent,
37
- setProject = _useGlobalContext.setProject,
38
- setClient = _useGlobalContext.setClient;
39
- var _useSnackBarManager = useSnackBarManager(),
40
- handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
41
- handleSnackbarError = _useSnackBarManager.handleSnackbarError;
42
- var customAgents = agents.filter(function (agent) {
43
- return agent.type === 'custom' && !agent.is_deleted;
44
- });
45
- var _useState = useState(null),
46
- _useState2 = _slicedToArray(_useState, 2),
47
- menuOpenForAgentId = _useState2[0],
48
- setMenuOpenForAgentId = _useState2[1];
49
- var _useState3 = useState(null),
50
- _useState4 = _slicedToArray(_useState3, 2),
51
- agentToDelete = _useState4[0],
52
- setAgentToDelete = _useState4[1];
53
- var userPermissions = user === null || user === void 0 || (_user$permissions = user.permissions) === null || _user$permissions === void 0 ? void 0 : _user$permissions.ai_agents;
54
- var canCreateAgent = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
55
- var canEdit = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.edit) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
56
- var canDelete = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions["delete"]) && !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
57
- var canShowMenu = canEdit || canDelete;
58
- var _useToggleFavorite = useToggleFavorite(),
59
- toggleFavorite = _useToggleFavorite.toggleFavorite;
60
- var handleLoadMore = function handleLoadMore() {
61
- if (!onLoadMoreAgents || !hasMoreAgents || loadingMoreAgents) {
62
- return;
63
- }
64
- onLoadMoreAgents();
65
- };
66
- var deleteModalChat = useMemo(function () {
67
- return agentToDelete ? {
68
- title: agentToDelete.name,
69
- id: agentToDelete.id
70
- } : null;
71
- }, [agentToDelete]);
72
- var handleUseAgent = function handleUseAgent(agent) {
73
- setProject(null);
74
- setClient === null || setClient === void 0 || setClient(null);
75
- selectAgent(agent);
76
- onBack();
77
- };
78
- var normalizeText = function normalizeText(value) {
79
- if (Array.isArray(value)) return value[0] || '';
80
- return value || '';
81
- };
82
- var getCreatedAtLabel = function getCreatedAtLabel(agent) {
83
- var createdAt = agent.created_at;
84
- if (!createdAt) return '';
85
- var createdAtDate = new Date(createdAt);
86
- if (Number.isNaN(createdAtDate.getTime())) return '';
87
- var diffMs = Date.now() - createdAtDate.getTime();
88
- var dayMs = 1000 * 60 * 60 * 24;
89
- var days = Math.max(0, Math.floor(diffMs / dayMs));
90
- if (days === 0) return t('marketplace.myAgentsToday');
91
- if (days === 1) return t('marketplace.myAgentsOneDayAgo');
92
- return t('marketplace.myAgentsDaysAgo', {
93
- days: days
94
- });
95
- };
96
- var handleOpenEditAgent = function handleOpenEditAgent(agent) {
97
- document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
98
- detail: {
99
- agentValues: {
100
- values: {
101
- isEditing: true,
102
- knowledge: (agent === null || agent === void 0 ? void 0 : agent.knowledge) || [],
103
- general: {
104
- name: agent.name,
105
- id: agent.id
106
- }
107
- },
108
- isOpen: true
109
- }
110
- }
111
- }));
112
- setMenuOpenForAgentId(null);
113
- };
114
- var handleToggleFavorite = function handleToggleFavorite(event, agent, isFavorite) {
115
- event.preventDefault();
116
- event.stopPropagation();
117
- toggleFavorite(agent.id, function (updatedAgent) {
118
- onFavoriteAgentUpdate === null || onFavoriteAgentUpdate === void 0 || onFavoriteAgentUpdate(updatedAgent);
119
- }, undefined, isFavorite);
120
- };
121
- var handleConfirmDelete = /*#__PURE__*/function () {
122
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(chat) {
123
- var _t;
124
- return _regeneratorRuntime.wrap(function (_context) {
125
- while (1) switch (_context.prev = _context.next) {
126
- case 0:
127
- _context.prev = 0;
128
- _context.next = 1;
129
- return deleteAgent(chat.id);
130
- case 1:
131
- handleSnackbarSuccess(t('confirmAgentDeleted', {
132
- ns: SECTIONS.abmAgent
133
- }));
134
- onDeleteAgent === null || onDeleteAgent === void 0 || onDeleteAgent(chat.id);
135
- setAgentToDelete(null);
136
- setMenuOpenForAgentId(null);
137
- _context.next = 3;
138
- break;
139
- case 2:
140
- _context.prev = 2;
141
- _t = _context["catch"](0);
142
- handleSnackbarError(t('errorAgentCreated', {
143
- ns: SECTIONS.abmAgent
144
- }));
145
- case 3:
146
- case "end":
147
- return _context.stop();
148
- }
149
- }, _callee, null, [[0, 2]]);
150
- }));
151
- return function handleConfirmDelete(_x) {
152
- return _ref2.apply(this, arguments);
153
- };
154
- }();
155
- useEffect(function () {
156
- var handleClickOutside = function handleClickOutside() {
157
- if (menuOpenForAgentId) {
158
- setMenuOpenForAgentId(null);
159
- }
160
- };
161
- document.addEventListener('click', handleClickOutside);
162
- return function () {
163
- document.removeEventListener('click', handleClickOutside);
164
- };
165
- }, [menuOpenForAgentId]);
166
- useEffect(function () {
167
- var container = document.getElementById('my-agents-scroll-container');
168
- if (!container) {
169
- return undefined;
170
- }
171
- var onScroll = function onScroll() {
172
- if (!hasMoreAgents || loadingMoreAgents) return;
173
- var scrollTop = container.scrollTop,
174
- clientHeight = container.clientHeight,
175
- scrollHeight = container.scrollHeight;
176
- var nearBottom = scrollTop + clientHeight >= scrollHeight - 40;
177
- if (nearBottom) {
178
- handleLoadMore();
179
- }
180
- };
181
- container.addEventListener('scroll', onScroll);
182
- return function () {
183
- container.removeEventListener('scroll', onScroll);
184
- };
185
- }, [hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
186
- useEffect(function () {
187
- var container = document.getElementById('my-agents-scroll-container');
188
- if (!container || !hasMoreAgents || loadingMoreAgents) {
189
- return undefined;
190
- }
191
- if (container.scrollHeight <= container.clientHeight + 1) {
192
- handleLoadMore();
193
- }
194
- return undefined;
195
- }, [customAgents.length, hasMoreAgents, loadingMoreAgents, onLoadMoreAgents]);
196
- return /*#__PURE__*/_jsxs(SCMAMyAgentsContainer, {
197
- id: "my-agents-scroll-container",
198
- $hasAgents: !!customAgents.length,
199
- children: [/*#__PURE__*/_jsx(MAIAIsologo, {}), /*#__PURE__*/_jsxs(SCMABody, {
200
- children: [customAgents.length ? /*#__PURE__*/_jsx(SCMATitleWrap, {
201
- children: /*#__PURE__*/_jsx(SCMATitleInner, {
202
- children: /*#__PURE__*/_jsx(SCMATitle, {
203
- children: t('marketplace.myAgentsReadyTitle')
204
- })
205
- })
206
- }) : null, customAgents.length ? /*#__PURE__*/_jsx(SCMACardsOuter, {
207
- children: /*#__PURE__*/_jsx(SCMACardsRow, {
208
- children: customAgents.map(function (agent) {
209
- var _agent$emoji;
210
- return /*#__PURE__*/_jsxs(SCMACardButton, {
211
- type: "button",
212
- onClick: function onClick() {
213
- return handleUseAgent(agent);
214
- },
215
- children: [/*#__PURE__*/_jsxs(SCMACardHeader, {
216
- children: [/*#__PURE__*/_jsxs(SCMACardTopRow, {
217
- children: [/*#__PURE__*/_jsx(SCMACardTitleEmoji, {
218
- "aria-hidden": true,
219
- children: (_agent$emoji = agent.emoji) !== null && _agent$emoji !== void 0 && _agent$emoji.trim() ? agent.emoji : "\xA0"
220
- }), canShowMenu ? /*#__PURE__*/_jsx(SCMAKebabButton, {
221
- type: "button",
222
- "aria-label": t('marketplace.cardMenuAriaLabel'),
223
- onClick: function onClick(event) {
224
- event.preventDefault();
225
- event.stopPropagation();
226
- setMenuOpenForAgentId(function (prev) {
227
- return prev === agent.id ? null : agent.id;
228
- });
229
- },
230
- children: /*#__PURE__*/_jsx(MenuDots, {
231
- color: "#999",
232
- width: 15,
233
- height: 15
234
- })
235
- }) : null]
236
- }), /*#__PURE__*/_jsx(SCMACardTitleName, {
237
- children: agent.name
238
- })]
239
- }), /*#__PURE__*/_jsxs(SCMACardBody, {
240
- children: [/*#__PURE__*/_jsx(SCMACardIntroText, {
241
- children: normalizeText(agent.introduction)
242
- }), /*#__PURE__*/_jsxs(SCMACardFooter, {
243
- children: [/*#__PURE__*/_jsx(SCMACardText, {
244
- children: getCreatedAtLabel(agent) || t('marketplace.myAgentsFallbackDate')
245
- }), /*#__PURE__*/_jsx(Tooltip, {
246
- title: agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
247
- children: /*#__PURE__*/_jsx(SCMAFavoriteButton, {
248
- type: "button",
249
- "aria-label": agent.is_favorite ? t('agents.removeFavorite') : t('agents.addFavorite'),
250
- $alwaysVisible: !!agent.is_favorite,
251
- onClick: function onClick(event) {
252
- return handleToggleFavorite(event, agent, !!agent.is_favorite);
253
- },
254
- children: /*#__PURE__*/_jsx(Star, {
255
- width: 20,
256
- height: 20,
257
- color: agent.is_favorite ? '#FFC624' : '#a6a6a6',
258
- fill: agent.is_favorite ? '#FFC624' : 'none',
259
- variant: "solid",
260
- className: agent.is_favorite ? '' : 'star-favorite-icon'
261
- })
262
- })
263
- })]
264
- })]
265
- }), menuOpenForAgentId === agent.id && canShowMenu ? /*#__PURE__*/_jsx(SCMACardMenu, {
266
- onClick: function onClick(event) {
267
- event.preventDefault();
268
- event.stopPropagation();
269
- },
270
- children: /*#__PURE__*/_jsxs(SCMACardMenuItems, {
271
- children: [canDelete ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
272
- type: "button",
273
- onClick: function onClick() {
274
- setAgentToDelete(agent);
275
- },
276
- children: t('deleteAgent', {
277
- ns: SECTIONS.abmAgent
278
- })
279
- }) : null, canEdit ? /*#__PURE__*/_jsx(SCMACardMenuItem, {
280
- type: "button",
281
- onClick: function onClick() {
282
- handleOpenEditAgent(agent);
283
- },
284
- children: t('editAgent', {
285
- ns: SECTIONS.abmAgent
286
- })
287
- }) : null]
288
- })
289
- }) : null]
290
- }, agent.id);
291
- })
292
- })
293
- }) : /*#__PURE__*/_jsxs(SCMAEmptyStateRoot, {
294
- children: [/*#__PURE__*/_jsx(SCMAEmptyStateColumn, {
295
- children: /*#__PURE__*/_jsxs(SCMAEmptyStateTitleBlock, {
296
- children: [/*#__PURE__*/_jsx(SCMAEmptyStateTitle, {
297
- children: t('marketplace.myAgentsEmptyStateTitle')
298
- }), /*#__PURE__*/_jsx(SCMAEmptyStateSubtitle, {
299
- children: canCreateAgent ? t('marketplace.myAgentsEmptyStateDescription') : t('marketplace.myAgentsEmptyStateDescriptionNoPerm')
300
- })]
301
- })
302
- }), canCreateAgent && onGoToMaiaker ? /*#__PURE__*/_jsx(SCMAEmptyStateButton, {
303
- type: "button",
304
- onClick: function onClick() {
305
- return onGoToMaiaker();
306
- },
307
- children: t('marketplace.myAgentsEmptyStateButton')
308
- }) : null]
309
- }), loadingMoreAgents ? /*#__PURE__*/_jsx(SCMALoadMoreWrapper, {
310
- children: /*#__PURE__*/_jsx(Loader, {
311
- size: "small"
312
- })
313
- }) : null]
314
- }), deleteModalChat ? /*#__PURE__*/_jsx(DeleteQuestionModal, {
315
- onClose: function onClose() {
316
- return setAgentToDelete(null);
317
- },
318
- handlers: {
319
- handleConfirmAction: handleConfirmDelete
320
- },
321
- chat: deleteModalChat,
322
- action: "agent"
323
- }) : null]
324
- });
325
- };
326
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIk1lbnVEb3RzIiwiU3RhciIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VVc2VyIiwiZGVsZXRlQWdlbnQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiU0VDVElPTlMiLCJMb2FkZXIiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIlNDTUFCb2R5IiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEZvb3RlciIsIlNDTUFDYXJkSGVhZGVyIiwiU0NNQUNhcmRUb3BSb3ciLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFDYXJkTWVudSIsIlNDTUFDYXJkTWVudUl0ZW0iLCJTQ01BQ2FyZE1lbnVJdGVtcyIsIlNDTUFGYXZvcml0ZUJ1dHRvbiIsIlNDTUFDYXJkVGV4dCIsIlNDTUFDYXJkVGl0bGVFbW9qaSIsIlNDTUFDYXJkVGl0bGVOYW1lIiwiU0NNQUNhcmRzT3V0ZXIiLCJTQ01BQ2FyZHNSb3ciLCJTQ01BRW1wdHlTdGF0ZVJvb3QiLCJTQ01BRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayIsIlNDTUFFbXB0eVN0YXRlVGl0bGUiLCJTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIiwiU0NNQU15QWdlbnRzQ29udGFpbmVyIiwiU0NNQVRpdGxlIiwiU0NNQVRpdGxlSW5uZXIiLCJTQ01BVGl0bGVXcmFwIiwiTUFJQUlzb2xvZ28iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlBZ2VudHMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkJhY2siLCJhZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiX3JlZiRoYXNNb3JlQWdlbnRzIiwiaGFzTW9yZUFnZW50cyIsIl9yZWYkbG9hZGluZ01vcmVBZ2VudCIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImN1c3RvbUFnZW50cyIsImZpbHRlciIsImFnZW50IiwidHlwZSIsImlzX2RlbGV0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJtZW51T3BlbkZvckFnZW50SWQiLCJzZXRNZW51T3BlbkZvckFnZW50SWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFnZW50VG9EZWxldGUiLCJzZXRBZ2VudFRvRGVsZXRlIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudCIsImNyZWF0ZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5FZGl0IiwiZWRpdCIsImNhbkRlbGV0ZSIsImNhblNob3dNZW51IiwiX3VzZVRvZ2dsZUZhdm9yaXRlIiwidG9nZ2xlRmF2b3JpdGUiLCJoYW5kbGVMb2FkTW9yZSIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwibmFtZSIsImlkIiwiaGFuZGxlVXNlQWdlbnQiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRDcmVhdGVkQXRMYWJlbCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkQXREYXRlIiwiRGF0ZSIsIk51bWJlciIsImlzTmFOIiwiZ2V0VGltZSIsImRpZmZNcyIsIm5vdyIsImRheU1zIiwiZGF5cyIsIk1hdGgiLCJtYXgiLCJmbG9vciIsImhhbmRsZU9wZW5FZGl0QWdlbnQiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50VmFsdWVzIiwidmFsdWVzIiwiaXNFZGl0aW5nIiwia25vd2xlZGdlIiwiZ2VuZXJhbCIsImlzT3BlbiIsImhhbmRsZVRvZ2dsZUZhdm9yaXRlIiwiZXZlbnQiLCJpc0Zhdm9yaXRlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ1cGRhdGVkQWdlbnQiLCJ1bmRlZmluZWQiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImNoYXQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibnMiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJvblNjcm9sbCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsInNjcm9sbEhlaWdodCIsIm5lYXJCb3R0b20iLCJsZW5ndGgiLCIkaGFzQWdlbnRzIiwiY2hpbGRyZW4iLCJtYXAiLCJfYWdlbnQkZW1vamkiLCJvbkNsaWNrIiwiZW1vamkiLCJ0cmltIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsImludHJvZHVjdGlvbiIsImlzX2Zhdm9yaXRlIiwiJGFsd2F5c1Zpc2libGUiLCJmaWxsIiwidmFyaWFudCIsImNsYXNzTmFtZSIsInNpemUiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiYWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBkZWxldGVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2RlbGV0ZUFnZW50J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgdXNlVG9nZ2xlRmF2b3JpdGUgfSBmcm9tICcuLi8uLi8uLi9ob29rcydcbmltcG9ydCB7XG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkVG9wUm93LFxuICBTQ01BQ2FyZEludHJvVGV4dCxcbiAgU0NNQUNhcmRNZW51LFxuICBTQ01BQ2FyZE1lbnVJdGVtLFxuICBTQ01BQ2FyZE1lbnVJdGVtcyxcbiAgU0NNQUZhdm9yaXRlQnV0dG9uLFxuICBTQ01BQ2FyZFRleHQsXG4gIFNDTUFDYXJkVGl0bGVFbW9qaSxcbiAgU0NNQUNhcmRUaXRsZU5hbWUsXG4gIFNDTUFDYXJkc091dGVyLFxuICBTQ01BQ2FyZHNSb3csXG4gIFNDTUFFbXB0eVN0YXRlUm9vdCxcbiAgU0NNQUVtcHR5U3RhdGVDb2x1bW4sXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayxcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVCdXR0b24sXG4gIFNDTUFLZWJhYkJ1dHRvbixcbiAgU0NNQUxvYWRNb3JlV3JhcHBlcixcbiAgU0NNQU15QWdlbnRzQ29udGFpbmVyLFxuICBTQ01BVGl0bGUsXG4gIFNDTUFUaXRsZUlubmVyLFxuICBTQ01BVGl0bGVXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG5cbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgaWYgKCFvbkxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb25Mb2FkTW9yZUFnZW50cygpXG4gIH1cblxuICBjb25zdCBkZWxldGVNb2RhbENoYXQgPSB1c2VNZW1vKFxuICAgICgpID0+IChhZ2VudFRvRGVsZXRlID8geyB0aXRsZTogYWdlbnRUb0RlbGV0ZS5uYW1lLCBpZDogYWdlbnRUb0RlbGV0ZS5pZCB9IDogbnVsbCksXG4gICAgW2FnZW50VG9EZWxldGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZWxlY3RBZ2VudChhZ2VudClcbiAgICBvbkJhY2soKVxuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplVGV4dCA9ICh2YWx1ZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlWzBdIHx8ICcnXG4gICAgcmV0dXJuIHZhbHVlIHx8ICcnXG4gIH1cblxuICBjb25zdCBnZXRDcmVhdGVkQXRMYWJlbCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBjb25zdCBjcmVhdGVkQXQgPSAoYWdlbnQgYXMgQWdlbnQgJiB7IGNyZWF0ZWRfYXQ/OiBzdHJpbmcgfSkuY3JlYXRlZF9hdFxuICAgIGlmICghY3JlYXRlZEF0KSByZXR1cm4gJydcblxuICAgIGNvbnN0IGNyZWF0ZWRBdERhdGUgPSBuZXcgRGF0ZShjcmVhdGVkQXQpXG4gICAgaWYgKE51bWJlci5pc05hTihjcmVhdGVkQXREYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpXG4gICAgY29uc3QgZGF5TXMgPSAxMDAwICogNjAgKiA2MCAqIDI0XG4gICAgY29uc3QgZGF5cyA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoZGlmZk1zIC8gZGF5TXMpKVxuXG4gICAgaWYgKGRheXMgPT09IDApIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c1RvZGF5JylcbiAgICBpZiAoZGF5cyA9PT0gMSkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzT25lRGF5QWdvJylcbiAgICByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNEYXlzQWdvJywgeyBkYXlzIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuRWRpdEFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAga25vd2xlZGdlOiBhZ2VudD8ua25vd2xlZGdlIHx8IFtdLFxuICAgICAgICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYWdlbnQubmFtZSxcbiAgICAgICAgICAgICAgICBpZDogYWdlbnQuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZUZhdm9yaXRlID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PiwgYWdlbnQ6IEFnZW50LCBpc0Zhdm9yaXRlOiBib29sZWFuKSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0b2dnbGVGYXZvcml0ZShcbiAgICAgIGFnZW50LmlkLFxuICAgICAgdXBkYXRlZEFnZW50ID0+IHtcbiAgICAgICAgb25GYXZvcml0ZUFnZW50VXBkYXRlPy4odXBkYXRlZEFnZW50KVxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGlzRmF2b3JpdGVcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gYXN5bmMgKGNoYXQ6IHsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGRlbGV0ZUFnZW50KGNoYXQuaWQpXG4gICAgICBoYW5kbGVTbmFja2JhclN1Y2Nlc3ModCgnY29uZmlybUFnZW50RGVsZXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgICAgb25EZWxldGVBZ2VudD8uKGNoYXQuaWQpXG4gICAgICBzZXRBZ2VudFRvRGVsZXRlKG51bGwpXG4gICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdlcnJvckFnZW50Q3JlYXRlZCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgICAgaWYgKG1lbnVPcGVuRm9yQWdlbnRJZCkge1xuICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbbWVudU9wZW5Gb3JBZ2VudElkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykgcmV0dXJuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgY2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3QgbmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSA0MFxuICAgICAgaWYgKG5lYXJCb3R0b20pIHtcbiAgICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lcicpXG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyLnNjcm9sbEhlaWdodCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMSkge1xuICAgICAgaGFuZGxlTG9hZE1vcmUoKVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtjdXN0b21BZ2VudHMubGVuZ3RoLCBoYXNNb3JlQWdlbnRzLCBsb2FkaW5nTW9yZUFnZW50cywgb25Mb2FkTW9yZUFnZW50c10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNQU15QWdlbnRzQ29udGFpbmVyIGlkPVwibXktYWdlbnRzLXNjcm9sbC1jb250YWluZXJcIiAkaGFzQWdlbnRzPXshIWN1c3RvbUFnZW50cy5sZW5ndGh9PlxuICAgICAgPE1BSUFJc29sb2dvIC8+XG5cbiAgICAgIDxTQ01BQm9keT5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFUaXRsZVdyYXA+XG4gICAgICAgICAgICA8U0NNQVRpdGxlSW5uZXI+XG4gICAgICAgICAgICAgIDxTQ01BVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzUmVhZHlUaXRsZScpfTwvU0NNQVRpdGxlPlxuICAgICAgICAgICAgPC9TQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICA8L1NDTUFUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgICAgIDxTQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgICAgIHtjdXN0b21BZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICA8U0NNQUNhcmRCdXR0b24ga2V5PXthZ2VudC5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZVVzZUFnZW50KGFnZW50KX0+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZUVtb2ppIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50LmVtb2ppPy50cmltKCkgPyBhZ2VudC5lbW9qaSA6ICdcXHUwMGEwJ31cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVGl0bGVFbW9qaT5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUtlYmFiQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdtYXJrZXRwbGFjZS5jYXJkTWVudUFyaWFMYWJlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKHByZXYgPT4gKHByZXYgPT09IGFnZW50LmlkID8gbnVsbCA6IGFnZW50LmlkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVEb3RzIGNvbG9yPVwiIzk5OVwiIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUtlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUaXRsZU5hbWU+e2FnZW50Lm5hbWV9PC9TQ01BQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8U0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRJbnRyb1RleHQ+e25vcm1hbGl6ZVRleHQoYWdlbnQuaW50cm9kdWN0aW9uKX08L1NDTUFDYXJkSW50cm9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVGV4dD57Z2V0Q3JlYXRlZEF0TGFiZWwoYWdlbnQpIHx8IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRmFsbGJhY2tEYXRlJyl9PC9TQ01BQ2FyZFRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUZhdm9yaXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRhbHdheXNWaXNpYmxlPXshIWFnZW50LmlzX2Zhdm9yaXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBoYW5kbGVUb2dnbGVGYXZvcml0ZShldmVudCwgYWdlbnQsICEhYWdlbnQuaXNfZmF2b3JpdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3RhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICcjYTZhNmE2J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICdub25lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YWdlbnQuaXNfZmF2b3JpdGUgPyAnJyA6ICdzdGFyLWZhdm9yaXRlLWljb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICB7bWVudU9wZW5Gb3JBZ2VudElkID09PSBhZ2VudC5pZCAmJiBjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5EZWxldGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWdlbnRUb0RlbGV0ZShhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2RlbGV0ZUFnZW50JywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkVkaXQgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkVkaXRBZ2VudChhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2VkaXRBZ2VudCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVUaXRsZScpfTwvU0NNQUVtcHR5U3RhdGVUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudFxuICAgICAgICAgICAgICAgICAgICA/IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgOiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybScpfVxuICAgICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ICYmIG9uR29Ub01haWFrZXIgPyAoXG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gb25Hb1RvTWFpYWtlcigpfT5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgKX1cbiAgICAgICAge2xvYWRpbmdNb3JlQWdlbnRzID8gKFxuICAgICAgICAgIDxTQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgIDwvU0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDTUFCb2R5PlxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBZ2VudFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cImFnZW50XCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNQU15QWdlbnRzQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzNELFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBRW5ELFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLG1CQUFtQixRQUFRLHlEQUF5RDtBQUM3RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEsZ0JBQWdCO0FBQ2xELFNBQ0VDLFFBQVEsRUFDUkMsWUFBWSxFQUNaQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxj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
@@ -1,168 +0,0 @@
1
- import styled from 'styled-components';
2
- export var SCMAMyAgentsContainer = styled.div.withConfig({
3
- displayName: "ChatAIMyAgentsstyles__SCMAMyAgentsContainer",
4
- componentId: "sc-1vnskh9-0"
5
- })(["display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;padding:12px 0 24px;height:100%;overflow-y:auto;overscroll-behavior-y:contain;justify-content:", ";"], function (props) {
6
- return props.$hasAgents ? 'flex-start' : 'center';
7
- });
8
- export var SCMABackButton = styled.button.withConfig({
9
- displayName: "ChatAIMyAgentsstyles__SCMABackButton",
10
- componentId: "sc-1vnskh9-1"
11
- })(["align-self:flex-start;border:none;background:transparent;padding:0 16px;color:#666;font-size:14px;font-weight:500;cursor:pointer;"]);
12
- export var SCMAHeroGlow = styled.div.withConfig({
13
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlow",
14
- componentId: "sc-1vnskh9-2"
15
- })(["width:94px;height:94px;position:relative;filter:blur(9.4px);opacity:0.9;"]);
16
- export var SCMAHeroGlowVertical = styled.div.withConfig({
17
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowVertical",
18
- componentId: "sc-1vnskh9-3"
19
- })(["position:absolute;left:34.78px;top:0;width:24.44px;height:94px;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
20
- export var SCMAHeroGlowHorizontal = styled.div.withConfig({
21
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowHorizontal",
22
- componentId: "sc-1vnskh9-4"
23
- })(["position:absolute;left:0;top:34.78px;width:94px;height:24.44px;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
24
- export var SCMAHeroGlowDot = styled.div.withConfig({
25
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowDot",
26
- componentId: "sc-1vnskh9-5"
27
- })(["position:absolute;left:40.42px;top:40.42px;width:13.16px;height:13.16px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
28
- export var SCMAHeroGlowAccentDotTop = styled.div.withConfig({
29
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowAccentDotTop",
30
- componentId: "sc-1vnskh9-6"
31
- })(["position:absolute;left:67px;top:18px;width:7.52px;height:7.52px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
32
- export var SCMAHeroGlowAccentDotBottom = styled.div.withConfig({
33
- displayName: "ChatAIMyAgentsstyles__SCMAHeroGlowAccentDotBottom",
34
- componentId: "sc-1vnskh9-7"
35
- })(["position:absolute;left:20px;top:66px;width:7.52px;height:7.52px;border-radius:50%;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);"]);
36
-
37
- /** Ancho máximo ≈ 3 cards (216px) + gaps (8px) + padding horizontal del contenedor de cards */
38
- var MY_AGENTS_GRID_MAX_WIDTH_PX = 696;
39
- export var SCMABody = styled.div.withConfig({
40
- displayName: "ChatAIMyAgentsstyles__SCMABody",
41
- componentId: "sc-1vnskh9-8"
42
- })(["display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:min(100%,", "px);min-height:417px;"], MY_AGENTS_GRID_MAX_WIDTH_PX);
43
- export var SCMATitleWrap = styled.div.withConfig({
44
- displayName: "ChatAIMyAgentsstyles__SCMATitleWrap",
45
- componentId: "sc-1vnskh9-9"
46
- })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
47
- export var SCMAActionsRow = styled.div.withConfig({
48
- displayName: "ChatAIMyAgentsstyles__SCMAActionsRow",
49
- componentId: "sc-1vnskh9-10"
50
- })(["display:flex;align-items:center;align-self:flex-end;"]);
51
- export var SCMATitleInner = styled.div.withConfig({
52
- displayName: "ChatAIMyAgentsstyles__SCMATitleInner",
53
- componentId: "sc-1vnskh9-11"
54
- })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;align-self:stretch;"]);
55
- export var SCMATitle = styled.h2.withConfig({
56
- displayName: "ChatAIMyAgentsstyles__SCMATitle",
57
- componentId: "sc-1vnskh9-12"
58
- })(["width:100%;max-width:374px;margin:0;color:#20201f;text-align:center;font-family:'Work Sans',sans-serif;font-size:20px;font-weight:500;line-height:122%;letter-spacing:-0.2px;"]);
59
- export var SCMACreateManualButton = styled.button.withConfig({
60
- displayName: "ChatAIMyAgentsstyles__SCMACreateManualButton",
61
- componentId: "sc-1vnskh9-13"
62
- })(["display:flex;min-width:64px;padding:7px 12px;justify-content:flex-end;align-items:center;align-self:stretch;border-radius:4px;border:none;background:transparent;color:#666;cursor:pointer;&:hover span{background:var(--Gradiente-1,linear-gradient(0deg,#4d3569 0%,#2d77bd 100%));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;}"]);
63
- export var SCMACreateManualButtonText = styled.span.withConfig({
64
- displayName: "ChatAIMyAgentsstyles__SCMACreateManualButtonText",
65
- componentId: "sc-1vnskh9-14"
66
- })(["text-align:center;font-family:'Work Sans',sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:14px;color:#666;transition:color 160ms ease;"]);
67
- export var SCMACardsOuter = styled.div.withConfig({
68
- displayName: "ChatAIMyAgentsstyles__SCMACardsOuter",
69
- componentId: "sc-1vnskh9-15"
70
- })(["display:flex;width:100%;padding:0 9px;align-items:flex-start;gap:10px;align-self:stretch;box-sizing:border-box;"]);
71
- export var SCMACardsRow = styled.div.withConfig({
72
- displayName: "ChatAIMyAgentsstyles__SCMACardsRow",
73
- componentId: "sc-1vnskh9-16"
74
- })(["display:grid;width:100%;grid-template-columns:repeat(auto-fill,216px);gap:8px;padding-bottom:24px;align-items:stretch;justify-content:center;"]);
75
- export var SCMACardButton = styled.button.withConfig({
76
- displayName: "ChatAIMyAgentsstyles__SCMACardButton",
77
- componentId: "sc-1vnskh9-17"
78
- })(["position:relative;display:flex;width:216px;height:100%;box-sizing:border-box;padding:12px;flex-direction:column;justify-content:flex-start;align-items:flex-start;border-radius:8px;border:1px solid #d9d9d9;background:#fff;cursor:pointer;text-align:left;font:inherit;color:inherit;:hover{cursor:pointer;box-shadow:0 4px 16px 0 rgba(111,121,136,0.08);}"]);
79
- export var SCMACardHeader = styled.div.withConfig({
80
- displayName: "ChatAIMyAgentsstyles__SCMACardHeader",
81
- componentId: "sc-1vnskh9-18"
82
- })(["display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;"]);
83
- export var SCMACardTopRow = styled.div.withConfig({
84
- displayName: "ChatAIMyAgentsstyles__SCMACardTopRow",
85
- componentId: "sc-1vnskh9-19"
86
- })(["display:flex;justify-content:space-between;align-items:flex-start;align-self:stretch;gap:4px;min-height:1.4em;"]);
87
- export var SCMACardTitleEmoji = styled.span.withConfig({
88
- displayName: "ChatAIMyAgentsstyles__SCMACardTitleEmoji",
89
- componentId: "sc-1vnskh9-20"
90
- })(["flex-shrink:0;line-height:1.4;font-size:1em;min-width:1.4em;text-align:left;"]);
91
- export var SCMACardTitleName = styled.span.withConfig({
92
- displayName: "ChatAIMyAgentsstyles__SCMACardTitleName",
93
- componentId: "sc-1vnskh9-21"
94
- })(["align-self:stretch;width:100%;color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:140%;letter-spacing:-0.21px;min-height:calc(2 * 1.4em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
95
- export var SCMAKebabButton = styled.button.withConfig({
96
- displayName: "ChatAIMyAgentsstyles__SCMAKebabButton",
97
- componentId: "sc-1vnskh9-22"
98
- })(["width:15px;height:15px;border:none;background:transparent;padding:0;border-radius:4px;transform:rotate(-90deg);cursor:pointer;display:flex;align-items:center;justify-content:center;&:hover{background:#f0f0f0;}"]);
99
- export var SCMAFavoriteButton = styled.button.withConfig({
100
- displayName: "ChatAIMyAgentsstyles__SCMAFavoriteButton",
101
- componentId: "sc-1vnskh9-23"
102
- })(["display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;border:none;background:transparent;padding:0;cursor:pointer;opacity:", ";visibility:", ";pointer-events:", ";transition:opacity 160ms ease;&:hover .star-favorite-icon path[fill]{fill:#666666 !important;}&:hover .star-favorite-icon g[fill]{fill:#666666 !important;}&:hover .star-favorite-icon *{fill:#666666 !important;}", ":hover &{opacity:1;visibility:visible;pointer-events:auto;}"], function (_ref) {
103
- var $alwaysVisible = _ref.$alwaysVisible;
104
- return $alwaysVisible ? 1 : 0;
105
- }, function (_ref2) {
106
- var $alwaysVisible = _ref2.$alwaysVisible;
107
- return $alwaysVisible ? 'visible' : 'hidden';
108
- }, function (_ref3) {
109
- var $alwaysVisible = _ref3.$alwaysVisible;
110
- return $alwaysVisible ? 'auto' : 'none';
111
- }, SCMACardButton);
112
- export var SCMACardMenu = styled.div.withConfig({
113
- displayName: "ChatAIMyAgentsstyles__SCMACardMenu",
114
- componentId: "sc-1vnskh9-24"
115
- })(["display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:16px;position:absolute;right:12px;bottom:9px;border-radius:8px;background:#fff;box-shadow:0 4px 9px 0 rgba(141,141,141,0.25);z-index:2;"]);
116
- export var SCMACardMenuItems = styled.div.withConfig({
117
- displayName: "ChatAIMyAgentsstyles__SCMACardMenuItems",
118
- componentId: "sc-1vnskh9-25"
119
- })(["display:flex;flex-direction:column;align-items:flex-start;"]);
120
- export var SCMACardMenuItem = styled.button.withConfig({
121
- displayName: "ChatAIMyAgentsstyles__SCMACardMenuItem",
122
- componentId: "sc-1vnskh9-26"
123
- })(["display:flex;padding:6px 8px;align-items:center;gap:8px;border-radius:4px;border:none;background:transparent;color:#20201f;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;line-height:130%;cursor:pointer;width:100%;&:hover{background:#f0f0f0;}"]);
124
- export var SCMACardBody = styled.div.withConfig({
125
- displayName: "ChatAIMyAgentsstyles__SCMACardBody",
126
- componentId: "sc-1vnskh9-27"
127
- })(["display:flex;flex-direction:column;flex:1;min-height:0;justify-content:flex-start;align-items:flex-start;gap:4px;align-self:stretch;"]);
128
- export var SCMACardFooter = styled.div.withConfig({
129
- displayName: "ChatAIMyAgentsstyles__SCMACardFooter",
130
- componentId: "sc-1vnskh9-28"
131
- })(["display:flex;align-items:flex-end;justify-content:space-between;width:100%;"]);
132
- export var SCMACardText = styled.span.withConfig({
133
- displayName: "ChatAIMyAgentsstyles__SCMACardText",
134
- componentId: "sc-1vnskh9-29"
135
- })(["align-self:center;color:#666;font-family:'Work Sans',sans-serif;font-size:12px;font-weight:400;line-height:130%;"]);
136
- export var SCMACardIntroText = styled(SCMACardText).withConfig({
137
- displayName: "ChatAIMyAgentsstyles__SCMACardIntroText",
138
- componentId: "sc-1vnskh9-30"
139
- })(["align-self:stretch;text-align:left;min-height:calc(2 * 1.3em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;"]);
140
- export var SCMAEmptyStateRoot = styled.div.withConfig({
141
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateRoot",
142
- componentId: "sc-1vnskh9-31"
143
- })(["display:flex;height:417px;flex-direction:column;align-items:center;gap:24px;align-self:stretch;"]);
144
- export var SCMAEmptyStateColumn = styled.div.withConfig({
145
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateColumn",
146
- componentId: "sc-1vnskh9-32"
147
- })(["display:flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;"]);
148
- export var SCMAEmptyStateTitleBlock = styled.div.withConfig({
149
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitleBlock",
150
- componentId: "sc-1vnskh9-33"
151
- })(["display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;align-self:stretch;"]);
152
- export var SCMAEmptyStateTitle = styled.h2.withConfig({
153
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateTitle",
154
- componentId: "sc-1vnskh9-34"
155
- })(["width:100%;max-width:374px;margin:0;color:#20201f;text-align:center;font-family:'Work Sans',sans-serif;font-size:20px;font-style:normal;font-weight:500;line-height:122%;letter-spacing:-0.2px;"]);
156
- export var SCMAEmptyStateSubtitle = styled.p.withConfig({
157
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateSubtitle",
158
- componentId: "sc-1vnskh9-35"
159
- })(["align-self:stretch;margin:0;color:#666;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;"]);
160
- export var SCMAEmptyStateButton = styled.button.withConfig({
161
- displayName: "ChatAIMyAgentsstyles__SCMAEmptyStateButton",
162
- componentId: "sc-1vnskh9-36"
163
- })(["display:flex;min-width:80px;padding:10px 12px;justify-content:center;align-items:center;gap:8px;border-radius:4px;border:none;cursor:pointer;box-sizing:border-box;background:linear-gradient(0deg,#4d3569 0%,#2d77bd 100%);color:#fff;text-align:center;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:16px;&:hover{opacity:0.92;}"]);
164
- export var SCMALoadMoreWrapper = styled.div.withConfig({
165
- displayName: "ChatAIMyAgentsstyles__SCMALoadMoreWrapper",
166
- componentId: "sc-1vnskh9-37"
167
- })(["display:flex;justify-content:center;align-items:center;width:100%;padding-bottom:24px;"]);
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ01BTXlBZ2VudHNDb250YWluZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInByb3BzIiwiJGhhc0FnZW50cyIsIlNDTUFCYWNrQnV0dG9uIiwiYnV0dG9uIiwiU0NNQUhlcm9HbG93IiwiU0NNQUhlcm9HbG93VmVydGljYWwiLCJTQ01BSGVyb0dsb3dIb3Jpem9udGFsIiwiU0NNQUhlcm9HbG93RG90IiwiU0NNQUhlcm9HbG93QWNjZW50RG90VG9wIiwiU0NNQUhlcm9HbG93QWNjZW50RG90Qm90dG9tIiwiTVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYIiwiU0NNQUJvZHkiLCJTQ01BVGl0bGVXcmFwIiwiU0NNQUFjdGlvbnNSb3ciLCJTQ01BVGl0bGVJbm5lciIsIlNDTUFUaXRsZSIsImgyIiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0Iiwic3BhbiIsIlNDTUFDYXJkc091dGVyIiwiU0NNQUNhcmRzUm93IiwiU0NNQUNhcmRCdXR0b24iLCJTQ01BQ2FyZEhlYWRlciIsIlNDTUFDYXJkVG9wUm93IiwiU0NNQUNhcmRUaXRsZUVtb2ppIiwiU0NNQUNhcmRUaXRsZU5hbWUiLCJTQ01BS2ViYWJCdXR0b24iLCJTQ01BRmF2b3JpdGVCdXR0b24iLCJfcmVmIiwiJGFsd2F5c1Zpc2libGUiLCJfcmVmMiIsIl9yZWYzIiwiU0NNQUNhcmRNZW51IiwiU0NNQUNhcmRNZW51SXRlbXMiLCJTQ01BQ2FyZE1lbnVJdGVtIiwiU0NNQUNhcmRCb2R5IiwiU0NNQUNhcmRGb290ZXIiLCJTQ01BQ2FyZFRleHQiLCJTQ01BQ2FyZEludHJvVGV4dCIsIlNDTUFFbXB0eVN0YXRlUm9vdCIsIlNDTUFFbXB0eVN0YXRlQ29sdW1uIiwiU0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrIiwiU0NNQUVtcHR5U3RhdGVUaXRsZSIsIlNDTUFFbXB0eVN0YXRlU3VidGl0bGUiLCJwIiwiU0NNQUVtcHR5U3RhdGVCdXR0b24iLCJTQ01BTG9hZE1vcmVXcmFwcGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NNQU15QWdlbnRzQ29udGFpbmVyID0gc3R5bGVkLmRpdjx7ICRoYXNBZ2VudHM6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMThweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMCAyNHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjtcbiAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+IChwcm9wcy4kaGFzQWdlbnRzID8gJ2ZsZXgtc3RhcnQnIDogJ2NlbnRlcicpfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFCYWNrQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BSGVyb0dsb3cgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiA5NHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZpbHRlcjogYmx1cig5LjRweCk7XG4gIG9wYWNpdHk6IDAuOTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFIZXJvR2xvd1ZlcnRpY2FsID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAzNC43OHB4O1xuICB0b3A6IDA7XG4gIHdpZHRoOiAyNC40NHB4O1xuICBoZWlnaHQ6IDk0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93SG9yaXpvbnRhbCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAzNC43OHB4O1xuICB3aWR0aDogOTRweDtcbiAgaGVpZ2h0OiAyNC40NHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzRkMzU2OSAwJSwgIzJkNzdiZCAxMDAlKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFIZXJvR2xvd0RvdCA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNDAuNDJweDtcbiAgdG9wOiA0MC40MnB4O1xuICB3aWR0aDogMTMuMTZweDtcbiAgaGVpZ2h0OiAxMy4xNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93QWNjZW50RG90VG9wID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA2N3B4O1xuICB0b3A6IDE4cHg7XG4gIHdpZHRoOiA3LjUycHg7XG4gIGhlaWdodDogNy41MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUhlcm9HbG93QWNjZW50RG90Qm90dG9tID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAyMHB4O1xuICB0b3A6IDY2cHg7XG4gIHdpZHRoOiA3LjUycHg7XG4gIGhlaWdodDogNy41MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuYFxuXG4vKiogQW5jaG8gbcOheGltbyDiiYggMyBjYXJkcyAoMjE2cHgpICsgZ2FwcyAoOHB4KSArIHBhZGRpbmcgaG9yaXpvbnRhbCBkZWwgY29udGVuZWRvciBkZSBjYXJkcyAqL1xuY29uc3QgTVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYID0gNjk2XG5cbmV4cG9ydCBjb25zdCBTQ01BQm9keSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMjRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbWluKDEwMCUsICR7TVlfQUdFTlRTX0dSSURfTUFYX1dJRFRIX1BYfXB4KTtcbiAgbWluLWhlaWdodDogNDE3cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BVGl0bGVXcmFwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUFjdGlvbnNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFUaXRsZUlubmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQVRpdGxlID0gc3R5bGVkLmgyYFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzNzRweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMiU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4ycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiA2NHB4O1xuICBwYWRkaW5nOiA3cHggMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzY2NjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tR3JhZGllbnRlLTEsIGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dCA9IHN0eWxlZC5zcGFuYFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogIzY2NjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMTYwbXMgZWFzZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkc091dGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgOXB4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRzUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMjE2cHgpO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMjE2cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IDAgcmdiYSgxMTEsIDEyMSwgMTM2LCAwLjA4KTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgZ2FwOiA0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZFRvcFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGdhcDogNHB4O1xuICBtaW4taGVpZ2h0OiAxLjRlbTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVGl0bGVFbW9qaSA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1pbi13aWR0aDogMS40ZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZFRpdGxlTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMiAqIDEuNGVtKTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BS2ViYWJCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFGYXZvcml0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkYWx3YXlzVmlzaWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAkeyh7ICRhbHdheXNWaXNpYmxlIH0pID0+ICgkYWx3YXlzVmlzaWJsZSA/IDEgOiAwKX07XG4gIHZpc2liaWxpdHk6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbicpfTtcbiAgcG9pbnRlci1ldmVudHM6ICR7KHsgJGFsd2F5c1Zpc2libGUgfSkgPT4gKCRhbHdheXNWaXNpYmxlID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZTtcblxuICAmOmhvdmVyIC5zdGFyLWZhdm9yaXRlLWljb24gcGF0aFtmaWxsXSB7XG4gICAgZmlsbDogIzY2NjY2NiAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjpob3ZlciAuc3Rhci1mYXZvcml0ZS1pY29uIGdbZmlsbF0ge1xuICAgIGZpbGw6ICM2NjY2NjYgIWltcG9ydGFudDtcbiAgfVxuXG4gICY6aG92ZXIgLnN0YXItZmF2b3JpdGUtaWNvbiAqIHtcbiAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAke1NDTUFDYXJkQnV0dG9ufTpob3ZlciAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTJweDtcbiAgYm90dG9tOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggOXB4IDAgcmdiYSgxNDEsIDE0MSwgMTQxLCAwLjI1KTtcbiAgei1pbmRleDogMjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkTWVudUl0ZW1zID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZE1lbnVJdGVtID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUNhcmRCb2R5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFDYXJkVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGNvbG9yOiAjNjY2O1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BQ2FyZEludHJvVGV4dCA9IHN0eWxlZChTQ01BQ2FyZFRleHQpYFxuICAvKiBSZXNlcnZhIGZpamEgMiBsw61uZWFzIChtaXNtYSBsw7NnaWNhIHF1ZSBlbCB0w610dWxvKSAqL1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4taGVpZ2h0OiBjYWxjKDIgKiAxLjNlbSk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVSb290ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiA0MTdweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAyNHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuYFxuXG5leHBvcnQgY29uc3QgU0NNQUVtcHR5U3RhdGVDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2sgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZVRpdGxlID0gc3R5bGVkLmgyYFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzNzRweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIyJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUFFbXB0eVN0YXRlU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01BRW1wdHlTdGF0ZUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjNGQzNTY5IDAlLCAjMmQ3N2JkIDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNQUxvYWRNb3JlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxxQkFBcUIsR0FBR0QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0xBVTFCLFVBQUFDLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLFVBQVUsR0FBRyxZQUFZLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FDekU7QUFFRCxPQUFPLElBQU1DLGNBQWMsR0FBR1IsTUFBTSxDQUFDUyxNQUFNLENBQUFOLFVBQUE7RUFB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