@projectcor/maia-components 2.11.63-3 → 2.11.63

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 (115) hide show
  1. package/lib/App.js +2 -6
  2. package/lib/components/atoms/Chip/Chip.js +15 -49
  3. package/lib/components/atoms/Chip/styles.js +3 -7
  4. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
  5. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +2 -4
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  8. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +11 -76
  9. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +14 -22
  10. package/lib/components/atoms/MAIAInput/MAIAInput.js +5 -8
  11. package/lib/components/atoms/icons/index.js +1 -4
  12. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +2 -2
  13. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +3 -3
  14. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +2 -2
  15. package/lib/components/molecules/AbmSection/index.js +1 -2
  16. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +2 -21
  17. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +4 -6
  18. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +5 -10
  19. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +24 -74
  20. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +13 -14
  21. package/lib/components/molecules/ChatAIModal/constants.js +2 -10
  22. package/lib/components/molecules/ChatFooter/ChatFooter.js +21 -105
  23. package/lib/components/molecules/ChatFooter/styles.js +2 -11
  24. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  25. package/lib/components/molecules/Sidebar/Sidebar.js +32 -69
  26. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +11 -15
  27. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +56 -269
  28. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +4 -4
  29. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -17
  30. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
  31. package/lib/constants/config.js +1 -4
  32. package/lib/constants/maiaTaskPanelAccess.js +2 -2
  33. package/lib/context/global-context.js +1 -8
  34. package/lib/hooks/useAgentModel/useCreateAgent.js +10 -11
  35. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -12
  36. package/lib/hooks/useChatManager/useChatManager.js +19 -142
  37. package/lib/hooks/useChatMessages/useChatMessages.js +1 -1
  38. package/lib/hooks/useContextMentions.js +13 -61
  39. package/lib/hooks/useEntitySearch.js +142 -273
  40. package/lib/hooks/useMentionAllowedTypes.js +11 -55
  41. package/lib/hooks/useMentionPopover.js +30 -64
  42. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  43. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -16
  44. package/lib/hooks/useProjectSearch.js +28 -4
  45. package/lib/hooks/useProjectSummaryConfig.js +3 -47
  46. package/lib/hooks/useRecentClientsSearch.js +34 -4
  47. package/lib/lang/br/index.js +3 -578
  48. package/lib/lang/en/index.js +3 -578
  49. package/lib/lang/es/index.js +3 -578
  50. package/lib/lang/fr/index.js +4 -310
  51. package/lib/services/maia/Agents/createAgent.js +1 -1
  52. package/lib/services/maia/Agents/getAgentById.js +2 -3
  53. package/lib/services/maia/Agents/getAgents.js +91 -68
  54. package/lib/services/maia/Agents/updateAgent.js +1 -1
  55. package/lib/services/maia/Chats/getChatsByUserId.js +9 -13
  56. package/lib/services/maia/Orchestrator/orchestrator.js +6 -15
  57. package/lib/services/utils/validateIsMaia.js +2 -2
  58. package/lib/types/Chat.js +1 -1
  59. package/lib/types/agent.js +1 -1
  60. package/lib/types/agentModal.js +1 -1
  61. package/lib/types/contextMention.js +1 -1
  62. package/lib/types/global.d.js +1 -1
  63. package/lib/utils/contextMentionIcons.js +1 -29
  64. package/lib/utils/hitlAnalytics.js +3 -3
  65. package/lib/utils/renderContextMentions.js +4 -9
  66. package/package.json +1 -1
  67. package/lib/components/atoms/icons/RocketIcon.js +0 -31
  68. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  69. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
  70. package/lib/components/atoms/icons/WrenchIcon.js +0 -42
  71. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +0 -522
  72. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +0 -234
  73. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/catalog.js +0 -437
  74. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/index.js +0 -3
  75. package/lib/components/molecules/AbmSection/AbmSkillsSection.styles.js +0 -80
  76. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.interface.js +0 -2
  77. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +0 -722
  78. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +0 -165
  79. package/lib/components/molecules/AbmSection/AbmTriggersSection/index.js +0 -2
  80. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.js +0 -486
  81. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.styles.js +0 -184
  82. package/lib/components/molecules/ChatAIMyRoutines/index.js +0 -2
  83. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
  84. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
  85. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  86. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +0 -610
  87. package/lib/components/molecules/SchedulesPage/index.js +0 -2
  88. package/lib/components/molecules/SkillsPage/SkillsPage.js +0 -708
  89. package/lib/components/molecules/SkillsPage/index.js +0 -2
  90. package/lib/components/molecules/maiaSectionModalStyles.js +0 -91
  91. package/lib/components/molecules/maiaSectionUiTokens.js +0 -31
  92. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
  93. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  94. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  95. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
  96. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
  97. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  98. package/lib/dev/DevAbmAgentModal.js +0 -114
  99. package/lib/dev/mocks/abmModalMocks.js +0 -193
  100. package/lib/hooks/useContextPinPopover.js +0 -228
  101. package/lib/services/maia/Agents/connectors.js +0 -110
  102. package/lib/services/maia/Agents/skills.js +0 -164
  103. package/lib/services/maia/Schedules/createSchedule.js +0 -39
  104. package/lib/services/maia/Schedules/deleteSchedule.js +0 -36
  105. package/lib/services/maia/Schedules/getMySchedules.js +0 -55
  106. package/lib/services/maia/Schedules/getSchedules.js +0 -58
  107. package/lib/services/maia/Schedules/index.js +0 -5
  108. package/lib/services/maia/Skills/createSkill.js +0 -39
  109. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  110. package/lib/services/maia/Skills/generateSkill.js +0 -41
  111. package/lib/services/maia/Skills/getSkills.js +0 -90
  112. package/lib/services/maia/Skills/updateSkill.js +0 -39
  113. package/lib/types/agentSkill.js +0 -2
  114. package/lib/types/attachment.js +0 -2
  115. package/lib/types/skill.js +0 -2
@@ -6,6 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  import { useLazyQuery } from '@apollo/client';
8
8
  import { useEffect, useState, useCallback } from 'react';
9
+ import maia from '../services/maia';
9
10
  import { SEARCH_QUERY_DEBOUNCE_MS } from '../constants/config';
10
11
  import { useDebounce } from './useDebounce';
11
12
  import { SEARCH_CLIENTS } from '../services/query';
@@ -93,16 +94,45 @@ export var useRecentClientsSearch = function useRecentClientsSearch() {
93
94
  });
94
95
  };
95
96
  var fetchRecentClientsWithLoading = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
97
+ var data, mapped, _t;
96
98
  return _regeneratorRuntime.wrap(function (_context) {
97
99
  while (1) switch (_context.prev = _context.next) {
98
100
  case 0:
99
- setRecentClientsData([]);
101
+ setLoading(true);
102
+ setError(false);
103
+ setRecentError(false);
104
+ setIsQueryInProgress(true);
105
+ setLoadingRecentClients(true);
106
+ _context.prev = 1;
107
+ _context.next = 2;
108
+ return maia.RecentClients.getRecentClients();
109
+ case 2:
110
+ data = _context.sent;
111
+ mapped = (Array.isArray(data) ? data : []).map(function (c) {
112
+ return _objectSpread({
113
+ id: c.id,
114
+ name: c.name
115
+ }, c.totalProyectos != null && {
116
+ totalProyectos: c.totalProyectos
117
+ });
118
+ });
119
+ setRecentClientsData(mapped);
120
+ _context.next = 4;
121
+ break;
122
+ case 3:
123
+ _context.prev = 3;
124
+ _t = _context["catch"](1);
125
+ setRecentError(true);
126
+ setRecentClientsData(null);
127
+ case 4:
128
+ _context.prev = 4;
100
129
  setLoadingRecentClients(false);
101
- case 1:
130
+ return _context.finish(4);
131
+ case 5:
102
132
  case "end":
103
133
  return _context.stop();
104
134
  }
105
- }, _callee);
135
+ }, _callee, null, [[1, 3, 4, 5]]);
106
136
  })), []);
107
137
  useEffect(function () {
108
138
  if (loadingRecentClients || loadingSearchClients) {
@@ -148,4 +178,4 @@ export var useRecentClientsSearch = function useRecentClientsSearch() {
148
178
  updateSearchValue: updateSearchValue
149
179
  };
150
180
  };
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIiwidXNlRGVib3VuY2UiLCJTRUFSQ0hfQ0xJRU5UUyIsIkNMSUVOVF9TVEFUVVNfQUNUSVZFIiwibWFwcGVyQ2xpZW50c1NlYXJjaCIsInZhbHVlcyIsInNlYXJjaFZhbHVlIiwiX3ZhbHVlcyRtYXAiLCJtYXAiLCJ2YWx1ZSIsImNsaWVudE5hbWUiLCJuYW1lIiwibmFtZUhpZ2hsaWdodCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJ0ZXh0SW5kZXgiLCJpbmRleE9mIiwic3RhcnQiLCJsZW5ndGgiLCJfb2JqZWN0U3ByZWFkIiwiaWQiLCJ0b3RhbFByb3llY3RvcyIsInVzZVJlY2VudENsaWVudHNTZWFyY2giLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjbGllbnRzIiwic2V0Q2xpZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJpc1F1ZXJ5SW5Qcm9ncmVzcyIsInNldElzUXVlcnlJblByb2dyZXNzIiwiZGVib3VuY2VkU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJyZWNlbnRDbGllbnRzRGF0YSIsInNldFJlY2VudENsaWVudHNEYXRhIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImxvYWRpbmdSZWNlbnRDbGllbnRzIiwic2V0TG9hZGluZ1JlY2VudENsaWVudHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwicmVjZW50RXJyb3IiLCJzZXRSZWNlbnRFcnJvciIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJwYWdlIiwicGVyUGFnZSIsImZpbHRlciIsIl91c2VMYXp5UXVlcnkyIiwiZmV0Y2hTZWFyY2hDbGllbnRzIiwiX3VzZUxhenlRdWVyeTIkIiwic2VhcmNoRGF0YSIsImRhdGEiLCJsb2FkaW5nU2VhcmNoQ2xpZW50cyIsInNlYXJjaEVycm9yIiwiaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzIiwiY2xpZW50U3RhdHVzSWQiLCJmZXRjaFJlY2VudENsaWVudHNXaXRoTG9hZGluZyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzdG9wIiwiX3NlYXJjaERhdGEkY2xpZW50cyIsInRyaW0iLCJtYXBwZWQiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsIm5ld1NlYXJjaFZhbHVlIiwiZmV0Y2hSZWNlbnRDbGllbnRzIiwicmVjZW50Q2xpZW50c0xvYWRpbmciLCJyZWNlbnRDbGllbnRzRXJyb3IiLCJyZWNlbnRDbGllbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVJlY2VudENsaWVudHNTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlRGVib3VuY2UnXG5pbXBvcnQgeyBTRUFSQ0hfQ0xJRU5UUyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5J1xuXG5jb25zdCBDTElFTlRfU1RBVFVTX0FDVElWRSA9IDFcblxuZXhwb3J0IHR5cGUgUmVjZW50Q2xpZW50U2V0dGVyID0ge1xuICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICAvKiogUmFuZ28gZGVsIHTDqXJtaW5vIGJ1c2NhZG8gZGVudHJvIGRlIGBuYW1lYCAoc29sbyByZXN1bHRhZG9zIGRlIGLDunNxdWVkYSkgKi9cbiAgbmFtZUhpZ2hsaWdodD86IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfVxuICB0b3RhbFByb3llY3Rvcz86IG51bWJlclxufVxuXG50eXBlIFF1ZXJ5Q2xpZW50RGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwZXJQYWdlOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U6IG51bWJlclxuICAgIGRhdGE6IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9PlxuICB9XG59XG5cbmNvbnN0IG1hcHBlckNsaWVudHNTZWFyY2ggPSAoXG4gIHZhbHVlczogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHRvdGFsUHJveWVjdG9zPzogbnVtYmVyIH0+LFxuICBzZWFyY2hWYWx1ZT86IHN0cmluZ1xuKTogUmVjZW50Q2xpZW50U2V0dGVyW10gPT4ge1xuICByZXR1cm4gKFxuICAgIHZhbHVlcz8ubWFwKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudE5hbWUgPSB2YWx1ZS5uYW1lIHx8ICcnXG4gICAgICBsZXQgbmFtZUhpZ2hsaWdodDogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9IHwgdW5kZWZpbmVkXG4gICAgICBpZiAoc2VhcmNoVmFsdWUgJiYgY2xpZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgIGNvbnN0IHRleHRJbmRleCA9IGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIG5hbWVIaWdobGlnaHQgPSB7IHN0YXJ0OiB0ZXh0SW5kZXgsIGxlbmd0aDogc2VhcmNoVmFsdWUubGVuZ3RoIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB2YWx1ZS5pZCxcbiAgICAgICAgbmFtZTogY2xpZW50TmFtZSxcbiAgICAgICAgLi4uKG5hbWVIaWdobGlnaHQgJiYgeyBuYW1lSGlnaGxpZ2h0IH0pLFxuICAgICAgICB0b3RhbFByb3llY3RvczogdmFsdWUudG90YWxQcm95ZWN0b3MsXG4gICAgICB9XG4gICAgfSkgPz8gW11cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgdXNlUmVjZW50Q2xpZW50c1NlYXJjaCA9ICgpID0+IHtcbiAgY29uc3QgW2NsaWVudHMsIHNldENsaWVudHNdID0gdXNlU3RhdGU8UmVjZW50Q2xpZW50U2V0dGVyW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNRdWVyeUluUHJvZ3Jlc3MsIHNldElzUXVlcnlJblByb2dyZXNzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUylcblxuICBjb25zdCBbcmVjZW50Q2xpZW50c0RhdGEsIHNldFJlY2VudENsaWVudHNEYXRhXSA9IHVzZVN0YXRlPFJlY2VudENsaWVudFNldHRlcltdIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xvYWRpbmdSZWNlbnRDbGllbnRzLCBzZXRMb2FkaW5nUmVjZW50Q2xpZW50c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3JlY2VudEVycm9yLCBzZXRSZWNlbnRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBbZmV0Y2hTZWFyY2hDbGllbnRzLCB7IGRhdGE6IHNlYXJjaERhdGEsIGxvYWRpbmc6IGxvYWRpbmdTZWFyY2hDbGllbnRzLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxRdWVyeUNsaWVudERhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcjoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgY29uc3QgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB2YWx1ZSA/IHsgbmFtZTogdmFsdWUsIGNsaWVudFN0YXR1c0lkOiBbQ0xJRU5UX1NUQVRVU19BQ1RJVkVdIH0gOiB7fVxuICAgIGZldGNoU2VhcmNoQ2xpZW50cyh7XG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIGZpbHRlcixcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZldGNoUmVjZW50Q2xpZW50c1dpdGhMb2FkaW5nID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldFJlY2VudENsaWVudHNEYXRhKFtdKVxuICAgIHNldExvYWRpbmdSZWNlbnRDbGllbnRzKGZhbHNlKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nUmVjZW50Q2xpZW50cyB8fCBsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRFcnJvciB8fCBzZWFyY2hFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtsb2FkaW5nUmVjZW50Q2xpZW50cywgbG9hZGluZ1NlYXJjaENsaWVudHMsIHJlY2VudEVycm9yLCBzZWFyY2hFcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cyAmJiBpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuXG4gICAgaWYgKHNlYXJjaERhdGE/LmNsaWVudHM/LmRhdGEgJiYgZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgY29uc3QgbWFwcGVkID0gbWFwcGVyQ2xpZW50c1NlYXJjaChzZWFyY2hEYXRhLmNsaWVudHMuZGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRDbGllbnRzKG1hcHBlZClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gICAgaWYgKHJlY2VudENsaWVudHNEYXRhICE9PSBudWxsICYmICFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkgJiYgIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0Q2xpZW50cyhyZWNlbnRDbGllbnRzRGF0YSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIHJlY2VudENsaWVudHNEYXRhLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGxvYWRpbmdSZWNlbnRDbGllbnRzLFxuICAgIGxvYWRpbmdTZWFyY2hDbGllbnRzLFxuICAgIGlzUXVlcnlJblByb2dyZXNzLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICBjb25zdCB1cGRhdGVTZWFyY2hWYWx1ZSA9IChuZXdTZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUobmV3U2VhcmNoVmFsdWUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoUmVjZW50Q2xpZW50czogZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0xvYWRpbmc6IGxvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0Vycm9yOiBlcnJvcixcbiAgICByZWNlbnRDbGllbnRzOiBjbGllbnRzLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBRXhELFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBRWxELElBQU1DLG9CQUFvQixHQUFHLENBQUM7QUFvQjlCLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQ3ZCQyxNQUFvRSxFQUNwRUMsV0FBb0IsRUFDSztFQUFBLElBQUFDLFdBQUE7RUFDekIsUUFBQUEsV0FBQSxHQUNFRixNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRUcsR0FBRyxDQUFDLFVBQUFD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
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwibWFpYSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwiU0VBUkNIX0NMSUVOVFMiLCJDTElFTlRfU1RBVFVTX0FDVElWRSIsIm1hcHBlckNsaWVudHNTZWFyY2giLCJ2YWx1ZXMiLCJzZWFyY2hWYWx1ZSIsIl92YWx1ZXMkbWFwIiwibWFwIiwidmFsdWUiLCJjbGllbnROYW1lIiwibmFtZSIsIm5hbWVIaWdobGlnaHQiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwidGV4dEluZGV4IiwiaW5kZXhPZiIsInN0YXJ0IiwibGVuZ3RoIiwiX29iamVjdFNwcmVhZCIsImlkIiwidG90YWxQcm95ZWN0b3MiLCJ1c2VSZWNlbnRDbGllbnRzU2VhcmNoIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiY2xpZW50cyIsInNldENsaWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaXNRdWVyeUluUHJvZ3Jlc3MiLCJzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwicmVjZW50Q2xpZW50c0RhdGEiLCJzZXRSZWNlbnRDbGllbnRzRGF0YSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJsb2FkaW5nUmVjZW50Q2xpZW50cyIsInNldExvYWRpbmdSZWNlbnRDbGllbnRzIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInJlY2VudEVycm9yIiwic2V0UmVjZW50RXJyb3IiLCJfdXNlTGF6eVF1ZXJ5IiwidmFyaWFibGVzIiwicGFnZSIsInBlclBhZ2UiLCJmaWx0ZXIiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoQ2xpZW50cyIsIl91c2VMYXp5UXVlcnkyJCIsInNlYXJjaERhdGEiLCJkYXRhIiwibG9hZGluZ1NlYXJjaENsaWVudHMiLCJzZWFyY2hFcnJvciIsImhhbmRsZUZldGNoU2VhcmNoQ2xpZW50cyIsImNsaWVudFN0YXR1c0lkIiwiZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmciLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIm1hcHBlZCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJSZWNlbnRDbGllbnRzIiwiZ2V0UmVjZW50Q2xpZW50cyIsInNlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJjIiwiZmluaXNoIiwic3RvcCIsIl9zZWFyY2hEYXRhJGNsaWVudHMiLCJ0cmltIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJuZXdTZWFyY2hWYWx1ZSIsImZldGNoUmVjZW50Q2xpZW50cyIsInJlY2VudENsaWVudHNMb2FkaW5nIiwicmVjZW50Q2xpZW50c0Vycm9yIiwicmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZWNlbnRDbGllbnRzU2VhcmNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxhenlRdWVyeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeSdcblxuY29uc3QgQ0xJRU5UX1NUQVRVU19BQ1RJVkUgPSAxXG5cbmV4cG9ydCB0eXBlIFJlY2VudENsaWVudFNldHRlciA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgLyoqIFJhbmdvIGRlbCB0w6lybWlubyBidXNjYWRvIGRlbnRybyBkZSBgbmFtZWAgKHNvbG8gcmVzdWx0YWRvcyBkZSBiw7pzcXVlZGEpICovXG4gIG5hbWVIaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH1cbiAgdG90YWxQcm95ZWN0b3M/OiBudW1iZXJcbn1cblxudHlwZSBRdWVyeUNsaWVudERhdGEgPSB7XG4gIGNsaWVudHM6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgcGVyUGFnZTogbnVtYmVyXG4gICAgcGFnZTogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlOiBudW1iZXJcbiAgICBkYXRhOiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfT5cbiAgfVxufVxuXG5jb25zdCBtYXBwZXJDbGllbnRzU2VhcmNoID0gKFxuICB2YWx1ZXM6IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9PixcbiAgc2VhcmNoVmFsdWU/OiBzdHJpbmdcbik6IFJlY2VudENsaWVudFNldHRlcltdID0+IHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBjbGllbnROYW1lID0gdmFsdWUubmFtZSB8fCAnJ1xuICAgICAgbGV0IG5hbWVIaWdobGlnaHQ6IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfSB8IHVuZGVmaW5lZFxuICAgICAgaWYgKHNlYXJjaFZhbHVlICYmIGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICBjb25zdCB0ZXh0SW5kZXggPSBjbGllbnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICBuYW1lSGlnaGxpZ2h0ID0geyBzdGFydDogdGV4dEluZGV4LCBsZW5ndGg6IHNlYXJjaFZhbHVlLmxlbmd0aCB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdmFsdWUuaWQsXG4gICAgICAgIG5hbWU6IGNsaWVudE5hbWUsXG4gICAgICAgIC4uLihuYW1lSGlnaGxpZ2h0ICYmIHsgbmFtZUhpZ2hsaWdodCB9KSxcbiAgICAgICAgdG90YWxQcm95ZWN0b3M6IHZhbHVlLnRvdGFsUHJveWVjdG9zLFxuICAgICAgfVxuICAgIH0pID8/IFtdXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVJlY2VudENsaWVudHNTZWFyY2ggPSAoKSA9PiB7XG4gIGNvbnN0IFtjbGllbnRzLCBzZXRDbGllbnRzXSA9IHVzZVN0YXRlPFJlY2VudENsaWVudFNldHRlcltdPihbXSlcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2lzUXVlcnlJblByb2dyZXNzLCBzZXRJc1F1ZXJ5SW5Qcm9ncmVzc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW3JlY2VudENsaWVudHNEYXRhLCBzZXRSZWNlbnRDbGllbnRzRGF0YV0gPSB1c2VTdGF0ZTxSZWNlbnRDbGllbnRTZXR0ZXJbXSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsb2FkaW5nUmVjZW50Q2xpZW50cywgc2V0TG9hZGluZ1JlY2VudENsaWVudHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtyZWNlbnRFcnJvciwgc2V0UmVjZW50RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgW2ZldGNoU2VhcmNoQ2xpZW50cywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBsb2FkaW5nU2VhcmNoQ2xpZW50cywgZXJyb3I6IHNlYXJjaEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8UXVlcnlDbGllbnREYXRhPihTRUFSQ0hfQ0xJRU5UUywge1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXI6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGhhbmRsZUZldGNoU2VhcmNoQ2xpZW50cyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyID0gdmFsdWUgPyB7IG5hbWU6IHZhbHVlLCBjbGllbnRTdGF0dXNJZDogW0NMSUVOVF9TVEFUVVNfQUNUSVZFXSB9IDoge31cbiAgICBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICBmaWx0ZXIsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBmZXRjaFJlY2VudENsaWVudHNXaXRoTG9hZGluZyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgc2V0UmVjZW50RXJyb3IoZmFsc2UpXG4gICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3ModHJ1ZSlcbiAgICBzZXRMb2FkaW5nUmVjZW50Q2xpZW50cyh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgbWFpYS5SZWNlbnRDbGllbnRzLmdldFJlY2VudENsaWVudHMoKVxuICAgICAgY29uc3QgbWFwcGVkID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pLm1hcChcbiAgICAgICAgKGM6IHsgaWQ6IG51bWJlcjsgbmFtZTogc3RyaW5nOyB0b3RhbFByb3llY3Rvcz86IG51bWJlciB9KSA9PiAoe1xuICAgICAgICAgIGlkOiBjLmlkLFxuICAgICAgICAgIG5hbWU6IGMubmFtZSxcbiAgICAgICAgICAuLi4oYy50b3RhbFByb3llY3RvcyAhPSBudWxsICYmIHsgdG90YWxQcm95ZWN0b3M6IGMudG90YWxQcm95ZWN0b3MgfSksXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBzZXRSZWNlbnRDbGllbnRzRGF0YShtYXBwZWQpXG4gICAgfSBjYXRjaCB7XG4gICAgICBzZXRSZWNlbnRFcnJvcih0cnVlKVxuICAgICAgc2V0UmVjZW50Q2xpZW50c0RhdGEobnVsbClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ1JlY2VudENsaWVudHMoZmFsc2UpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nUmVjZW50Q2xpZW50cyB8fCBsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgfVxuICAgIGlmIChyZWNlbnRFcnJvciB8fCBzZWFyY2hFcnJvcikge1xuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRJc1F1ZXJ5SW5Qcm9ncmVzcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtsb2FkaW5nUmVjZW50Q2xpZW50cywgbG9hZGluZ1NlYXJjaENsaWVudHMsIHJlY2VudEVycm9yLCBzZWFyY2hFcnJvcl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cyAmJiBpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0SXNRdWVyeUluUHJvZ3Jlc3MoZmFsc2UpXG4gICAgfVxuXG4gICAgaWYgKHNlYXJjaERhdGE/LmNsaWVudHM/LmRhdGEgJiYgZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpICYmICFsb2FkaW5nU2VhcmNoQ2xpZW50cykge1xuICAgICAgY29uc3QgbWFwcGVkID0gbWFwcGVyQ2xpZW50c1NlYXJjaChzZWFyY2hEYXRhLmNsaWVudHMuZGF0YSwgZGVib3VuY2VkU2VhcmNoVmFsdWUpXG4gICAgICBzZXRDbGllbnRzKG1hcHBlZClcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gICAgaWYgKHJlY2VudENsaWVudHNEYXRhICE9PSBudWxsICYmICFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkgJiYgIWxvYWRpbmdSZWNlbnRDbGllbnRzICYmICFpc1F1ZXJ5SW5Qcm9ncmVzcykge1xuICAgICAgc2V0Q2xpZW50cyhyZWNlbnRDbGllbnRzRGF0YSlcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIHJlY2VudENsaWVudHNEYXRhLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGxvYWRpbmdSZWNlbnRDbGllbnRzLFxuICAgIGxvYWRpbmdTZWFyY2hDbGllbnRzLFxuICAgIGlzUXVlcnlJblByb2dyZXNzLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgaGFuZGxlRmV0Y2hTZWFyY2hDbGllbnRzKGRlYm91bmNlZFNlYXJjaFZhbHVlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICBjb25zdCB1cGRhdGVTZWFyY2hWYWx1ZSA9IChuZXdTZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUobmV3U2VhcmNoVmFsdWUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZldGNoUmVjZW50Q2xpZW50czogZmV0Y2hSZWNlbnRDbGllbnRzV2l0aExvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0xvYWRpbmc6IGxvYWRpbmcsXG4gICAgcmVjZW50Q2xpZW50c0Vycm9yOiBlcnJvcixcbiAgICByZWNlbnRDbGllbnRzOiBjbGllbnRzLFxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQ3hELE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFDbkMsU0FBU0Msd0JBQXdCLFFBQVEscUJBQXFCO0FBQzlELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFFbEQsSUFBTUMsb0JBQW9CLEdBQUcsQ0FBQztBQW9COUIsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FDdkJDLE1BQW9FLEVBQ3BFQyxXQUFvQixFQUNLO0VBQUEsSUFBQUMsV0FBQTtFQUN6QixRQUFBQSxXQUFBLEdBQ0VGLE1BQU0sYUFBTkEsTUFBTSx1QkFBTkEsTUFBTSxDQUFFRyxHQUFHLENBQUMsVUFBQUMsS0FBSyxFQUFJO0lBQ25CLElBQU1DLFVBQVUsR0FBR0QsS0FBSyxDQUFDRSxJQUFJLElBQUksRUFBRTtJQUNuQyxJQUFJQyxhQUE0RDtJQUNoRSxJQUFJTixXQUFXLElBQUlJLFVBQVUsQ0FBQ0csV0FBVyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDUixXQUFXLENBQUNPLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtN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