@projectcor/maia-components 2.11.59-8 → 2.11.59

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 (30) hide show
  1. package/lib/components/atoms/Chip/Chip.js +4 -10
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +1 -1
  3. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +3 -1
  4. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +28 -40
  5. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +14 -9
  6. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +15 -14
  7. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +4 -2
  8. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +3 -1
  9. package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -17
  10. package/lib/components/molecules/Sidebar/Sidebar.js +8 -10
  11. package/lib/components/organisms/ChatAI/ChatAI.js +6 -5
  12. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
  13. package/lib/hooks/useChatManager/useChatManager.js +22 -139
  14. package/lib/hooks/useChatMessages/useChatMessages.js +1 -1
  15. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  16. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +5 -21
  17. package/lib/lang/br/index.js +1 -3
  18. package/lib/lang/en/index.js +1 -3
  19. package/lib/lang/es/index.js +1 -3
  20. package/lib/lang/fr/index.js +1 -3
  21. package/lib/services/maia/Agents/getAgents.js +91 -68
  22. package/lib/services/maia/Chats/getChatsByUserId.js +9 -13
  23. package/lib/services/utils/validateIsMaia.js +2 -2
  24. package/lib/store/chatsStoreLifecycle.js +8 -0
  25. package/lib/store/index.js +2 -1
  26. package/lib/store/useChatsStore.js +28 -3
  27. package/lib/types/Chat.js +1 -1
  28. package/lib/types/agent.js +1 -1
  29. package/lib/utils/hitlAnalytics.js +3 -3
  30. package/package.json +1 -1
@@ -69,6 +69,7 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
69
69
  selectAgent = _useGlobalContext.selectAgent,
70
70
  setProject = _useGlobalContext.setProject,
71
71
  setClient = _useGlobalContext.setClient,
72
+ setTask = _useGlobalContext.setTask,
72
73
  section = _useGlobalContext.section;
73
74
  // En section 'task' el modal de Maia se eleva por encima del task panel (z-index 9800001).
74
75
  // Los tooltips se montan en portal con z-index 1500 por defecto, así que quedarían detrás.
@@ -88,14 +89,11 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
88
89
  var _useResizeListener = useResizeListener(textRefAgent, [selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.name]),
89
90
  showTooltipAgent = _useResizeListener.showTooltip;
90
91
  var agentsRef = useRef(null);
91
- var isMaiaAgent = useCallback(function (agentItem) {
92
- return agentItem.type === 'orchestrator';
93
- }, []);
94
92
  var agentsForSelector = useMemo(function () {
95
93
  return agents.filter(function (agentItem) {
96
- return isMaiaAgent(agentItem) || agentItem.entity !== 'global';
94
+ return agentItem.entity !== 'global';
97
95
  });
98
- }, [agents, isMaiaAgent]);
96
+ }, [agents]);
99
97
 
100
98
  // Manejar scroll infinito para cargar más agents
101
99
  useEffect(function () {
@@ -153,6 +151,7 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
153
151
  setIsExpanded(false);
154
152
  setProject(null);
155
153
  setClient === null || setClient === void 0 || setClient(null);
154
+ setTask(null);
156
155
  setTimeout(function () {
157
156
  handleResetChat();
158
157
  // Si el agente no depende de una entity (custom o clone+global) ya podemos
@@ -163,7 +162,7 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
163
162
  onAgentSelected === null || onAgentSelected === void 0 || onAgentSelected(agent);
164
163
  }
165
164
  }, 100);
166
- }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient, onAgentSelected]);
165
+ }, [selectAgent, amplitudEvent, handleResetChat, setProject, setClient, setTask, onAgentSelected]);
167
166
  var handleExpandModal = function handleExpandModal() {
168
167
  if (!isExpanded) {
169
168
  amplitudEvent(EVENTS.aiChatOpenAgentSelect);
@@ -248,23 +247,25 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
248
247
  children: /*#__PURE__*/_jsxs(SCCAIMHWrapperModalContent, {
249
248
  children: [window.MAIA_CHAT_AI_FEATURE_ACCESS && !cloneAgentsRoleBlocked && /*#__PURE__*/_jsx(_Fragment, {
250
249
  children: function () {
251
- var maiaAgents = agentsForSelector.filter(isMaiaAgent);
252
- if (!maiaAgents.length) return null;
250
+ var cloneAgents = agentsForSelector.filter(function (ag) {
251
+ return ag.type === 'clone';
252
+ });
253
+ if (!cloneAgents.length) return null;
253
254
  return /*#__PURE__*/_jsxs(_Fragment, {
254
255
  children: [/*#__PURE__*/_jsxs(SCCAIWrapper, {
255
256
  children: [/*#__PURE__*/_jsx(MAIAIcon, {}), /*#__PURE__*/_jsx(SCCAIMHWrapperModalContentTitle, {
256
257
  isClone: true,
257
258
  children: "MAIA by COR"
258
259
  })]
259
- }), /*#__PURE__*/_jsx(SCCAIMHDivider, {}), maiaAgents.map(function (maiaAgent, index) {
260
+ }), /*#__PURE__*/_jsx(SCCAIMHDivider, {}), cloneAgents.map(function (cloneAgent, index) {
260
261
  return /*#__PURE__*/_jsx(ChatAIAgentOption, {
261
- agent: maiaAgent,
262
+ agent: cloneAgent,
262
263
  index: index,
263
264
  handleSelectAgent: handleSelectAgent,
264
- isSelected: (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) === maiaAgent.id,
265
+ isSelected: (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) === cloneAgent.id,
265
266
  isMaia: true,
266
267
  onFavoriteToggle: onAgentUpdate
267
- }, "agent-".concat(maiaAgent.id));
268
+ }, "agent-".concat(cloneAgent.id));
268
269
  })]
269
270
  });
270
271
  }()
@@ -279,7 +280,7 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
279
280
  agentsCount: agentsForSelector.length,
280
281
  ref: agentsRef,
281
282
  children: [agentsForSelector === null || agentsForSelector === void 0 ? void 0 : agentsForSelector.map(function (agent, index) {
282
- if (agent !== null && agent !== void 0 && agent.is_deleted || agent !== null && agent !== void 0 && agent.has_not_permissions || agent !== null && agent !== void 0 && agent.has_not_access || (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' || isMaiaAgent(agent) || (agent === null || agent === void 0 ? void 0 : agent.type) === 'custom' && !window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS) return null;
283
+ if (agent !== null && agent !== void 0 && agent.is_deleted || agent !== null && agent !== void 0 && agent.has_not_permissions || agent !== null && agent !== void 0 && agent.has_not_access || (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone' || (agent === null || agent === void 0 ? void 0 : agent.type) === 'custom' && !window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS) return null;
283
284
  return /*#__PURE__*/_jsx(ChatAIAgentOption, {
284
285
  agent: agent,
285
286
  index: index,
@@ -381,4 +382,4 @@ export var ChatAIModalHeader = function ChatAIModalHeader(_ref) {
381
382
  })]
382
383
  });
383
384
  };
384
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiQ2hldnJvbkxlZnQiLCJ1c2VUcmFuc2xhdGlvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwiSWNvbkJ1dHRvbiIsIk1BSUFJY29uIiwiTWFpYUNoYXRMYXlvdXRNZW51SWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIlNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIiwiU0NDQUlNSExheW91dE1lbnVQYW5lbCIsIlNDQ0FJTUhMYXlvdXRNZW51Um93IiwiU0NDQUlNSEJhY2tCdXR0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVVzZXIiLCJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwiQ2hpcExsbSIsIkxvYWRlciIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIl9yZWYiLCJsYXlvdXRNb2RlIiwib25MYXlvdXRNb2RlQ2hhbmdlIiwiZXhwYW5kZWQiLCJfcmVmJGRyYWdnYWJsZSIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3JlZiRoYXNFcnJvciIsImhhc0Vycm9yIiwiX3JlZiRsb2FkaW5nIiwibG9hZGluZyIsIl9yZWYkbG9hZGluZ01vcmUiLCJsb2FkaW5nTW9yZSIsIl9yZWYkaGFzTW9yZSIsImhhc01vcmUiLCJoYW5kbGVSZXNldENoYXQiLCJvbkFnZW50VXBkYXRlIiwibG9hZE1vcmVBZ2VudHMiLCJzb3J0QWdlbnRzTGlzdCIsIl9yZWYkaGlkZUFnZW50U2VsZWN0byIsImhpZGVBZ2VudFNlbGVjdG9yIiwib25BZ2VudFNlbGVjdGVkIiwiX3JlZiRzaG93QmFja0J1dHRvbiIsInNob3dCYWNrQnV0dG9uIiwiX3JlZiRvbkJhY2siLCJvbkJhY2siLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiYW1wbGl0dWRFdmVudCIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsImFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2VjdGlvbiIsInRvb2x0aXBaSW5kZXgiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc0V4cGFuZGVkIiwic2V0SXNFeHBhbmRlZCIsInRleHRSZWZBZ2VudCIsImRyb3Bkb3duUmVmIiwibGF5b3V0TWVudVJlZiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibGF5b3V0TWVudU9wZW4iLCJzZXRMYXlvdXRNZW51T3BlbiIsIl91c2VSZXNpemVMaXN0ZW5lciIsIm5hbWUiLCJzaG93VG9vbHRpcEFnZW50Iiwic2hvd1Rvb2x0aXAiLCJhZ2VudHNSZWYiLCJpc01haWFBZ2VudCIsImFnZW50SXRlbSIsInR5cGUiLCJhZ2VudHNGb3JTZWxlY3RvciIsImZpbHRlciIsImVudGl0eSIsInVuZGVmaW5lZCIsImhhbmRsZVNjcm9sbCIsImN1cnJlbnQiLCJfYWdlbnRzUmVmJGN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJkaXN0YW5jZUZyb21Cb3R0b20iLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0Iiwic2Nyb2xsRWxlbWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbGVhclRpbWVvdXQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibG9jYWxBZ2VudHMiLCJfcmVmMiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCJpc19mcm9tX2NvbnZlcnNhdGlvbiIsImZyb21MaXN0IiwiZmluZCIsImlkIiwiaGFuZGxlU2VsZWN0QWdlbnQiLCJhaUNoYXRBZ2VudFNlbGVjdCIsImFnZW50X3R5cGUiLCJuZWVkc0VudGl0eSIsImhhbmRsZUV4cGFuZE1vZGFsIiwiYWlDaGF0T3BlbkFnZW50U2VsZWN0IiwicHJldiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImV2ZW50IiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImhhbmRsZVBpY2tMYXlvdXQiLCJtb2RlIiwicHJvamVjdFJlc3VtZUV4cGFuZCIsImFpQ2hhdFNlbGVjdFZpZXdPcHRpb25zIiwib3B0aW9uIiwiY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCIsInJlbmRlck1vZGFsIiwicmVmIiwib25DbGljayIsImxlbmd0aCIsImNoaWxkcmVuIiwiX29iamVjdFNwcmVhZCIsInRpdGxlIiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImdhcCIsImVtb2ppIiwicGxhY2VtZW50IiwiekluZGV4IiwiaXNBZ2VudERlbGV0ZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTIiwibWFpYUFnZW50cyIsImlzQ2xvbmUiLCJtYXAiLCJtYWlhQWdlbnQiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJpc01haWEiLCJvbkZhdm9yaXRlVG9nZ2xlIiwiY29uY2F0Iiwic29tZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjb21wYW55IiwiYWdlbnRzQ291bnQiLCJzaXplIiwic2VsZWN0ZWRNb2RlbExsbSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNlbGVjdGVkQWdlbnRUeXBlIiwic2hvdWxkUmVuZGVyU2VsZWN0b3IiLCIkaGFzRXJyb3IiLCIkbG9hZGluZyIsIiRoYXNBZ2VudHMiLCJvblBvaW50ZXJEb3duIiwib25Qb2ludGVyTW92ZSIsIm9uUG9pbnRlclVwIiwib25Qb2ludGVyQ2FuY2VsIiwib25Mb3N0UG9pbnRlckNhcHR1cmUiLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsImFpQ2hhdEJhY2siLCJtb2RlbCIsImJ1dHRvbklkIiwiaGFuZGxlQ2xpY2siLCJhaUNoYXRPcGVuVmlld09wdGlvbnMiLCJ0b29sdGlwIiwiZGlzYWJsZVRvb2x0aXAiLCJyb2xlIiwiJGFjdGl2ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IENoZXZyb25MZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkxlZnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0ljb25CdXR0b24nXG5pbXBvcnQgeyBNQUlBSWNvbiwgTWFpYUNoYXRMYXlvdXRNZW51SWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgQ2hhdEFJQWdlbnRPcHRpb24gfSBmcm9tICcuLi9DaGF0QWlBZ2VudE9wdGlvbnMvQ2hhdEFpQWdlbnRPcHRpb25zJ1xuaW1wb3J0IHtcbiAgU0NDQUlNSE1vZGFsLFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0LFxuICBTQ0NBSU1IV3JhcHBlcixcbiAgU0NDQUlNSFdyYXBwZXJCdXR0b24sXG4gIFNDQ0FJTUhXcmFwcGVySWNvbixcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbCxcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbiAgU0NDQUlNSExheW91dE1lbnVBbmNob3IsXG4gIFNDQ0FJTUhMYXlvdXRNZW51UGFuZWwsXG4gIFNDQ0FJTUhMYXlvdXRNZW51Um93LFxuICBTQ0NBSU1IQmFja0J1dHRvbixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgdHlwZSB7IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlIH0gZnJvbSAnLi4vLi4vbGF5b3V0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcblxuZXhwb3J0IGNvbnN0IENoYXRBSU1vZGFsSGVhZGVyID0gKHtcbiAgbGF5b3V0TW9kZSxcbiAgb25MYXlvdXRNb2RlQ2hhbmdlLFxuICBleHBhbmRlZCxcbiAgZHJhZ2dhYmxlID0gZmFsc2UsXG4gIG9uRHJhZ1N0YXJ0LFxuICBvbkRyYWdNb3ZlLFxuICBvbkRyYWdFbmQsXG4gIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgYWdlbnRzID0gW10sXG4gIGhhc0Vycm9yID0gZmFsc2UsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmUgPSBmYWxzZSxcbiAgaGFzTW9yZSA9IGZhbHNlLFxuICBoYW5kbGVSZXNldENoYXQsXG4gIG9uQWdlbnRVcGRhdGUsXG4gIGxvYWRNb3JlQWdlbnRzLFxuICBzb3J0QWdlbnRzTGlzdCxcbiAgaGlkZUFnZW50U2VsZWN0b3IgPSBmYWxzZSxcbiAgb25BZ2VudFNlbGVjdGVkLFxuICBzaG93QmFja0J1dHRvbiA9IGZhbHNlLFxuICBvbkJhY2sgPSAoKSA9PiBudWxsLFxufToge1xuICBsYXlvdXRNb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZVxuICBvbkxheW91dE1vZGVDaGFuZ2U6IChtb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSkgPT4gdm9pZFxuICBleHBhbmRlZDogYm9vbGVhblxuICBkcmFnZ2FibGU/OiBib29sZWFuXG4gIG9uRHJhZ1N0YXJ0PzogKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25EcmFnTW92ZT86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRHJhZ0VuZD86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBsb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaGFuZGxlUmVzZXRDaGF0OiAoKSA9PiB2b2lkXG4gIG9uQWdlbnRVcGRhdGU/OiAodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBsb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgc29ydEFnZW50c0xpc3Q/OiAoKSA9PiB2b2lkXG4gIGhpZGVBZ2VudFNlbGVjdG9yPzogYm9vbGVhblxuICAvKipcbiAgICogU2UgaW52b2NhIGRlc3B1w6lzIGRlbCByZXNldCBjdWFuZG8gZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBOTyByZXF1aWVyZSBzZWxlY2Npw7NuXG4gICAqIGRlIGVudGl0eSAoY3VzdG9tIG8gY2xvbmUrZ2xvYmFsKS4gUGVybWl0ZSByZXNvbHZlciBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97aWR9YFxuICAgKiB5IG5hdmVnYXIgYSB1bmEgY29udmVyc2FjacOzbiBleGlzdGVudGUgc2kgbGEgaGF5LlxuICAgKi9cbiAgb25BZ2VudFNlbGVjdGVkPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZCB8IFByb21pc2U8dW5rbm93bj5cbiAgc2hvd0JhY2tCdXR0b24/OiBib29sZWFuXG4gIG9uQmFjaz86ICgpID0+IHZvaWRcbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICAvLyBFbiBzZWN0aW9uICd0YXNrJyBlbCBtb2RhbCBkZSBNYWlhIHNlIGVsZXZhIHBvciBlbmNpbWEgZGVsIHRhc2sgcGFuZWwgKHotaW5kZXggOTgwMDAwMSkuXG4gIC8vIExvcyB0b29sdGlwcyBzZSBtb250YW4gZW4gcG9ydGFsIGNvbiB6LWluZGV4IDE1MDAgcG9yIGRlZmVjdG8sIGFzw60gcXVlIHF1ZWRhcsOtYW4gZGV0csOhcy5cbiAgLy8gU3ViaW1vcyBzdSB6LWluZGV4IHPDs2xvIGVuIGVzdGUgY2FzbyBwYXJhIHF1ZSBzZSB2ZWFuIHBvciBlbmNpbWEgZGVsIG1vZGFsLlxuICBjb25zdCB0b29sdGlwWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0ZXh0UmVmQWdlbnQgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbGF5b3V0TWVudVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW2xheW91dE1lbnVPcGVuLCBzZXRMYXlvdXRNZW51T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZkFnZW50LCBbc2VsZWN0ZWRBZ2VudD8ubmFtZV0pXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBpc01haWFBZ2VudCA9IHVzZUNhbGxiYWNrKChhZ2VudEl0ZW06IEFnZW50KSA9PiBhZ2VudEl0ZW0udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicsIFtdKVxuICBjb25zdCBhZ2VudHNGb3JTZWxlY3RvciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gYWdlbnRzLmZpbHRlcihhZ2VudEl0ZW0gPT4gaXNNYWlhQWdlbnQoYWdlbnRJdGVtKSB8fCBhZ2VudEl0ZW0uZW50aXR5ICE9PSAnZ2xvYmFsJyksXG4gICAgW2FnZW50cywgaXNNYWlhQWdlbnRdXG4gIClcblxuICAvLyBNYW5lamFyIHNjcm9sbCBpbmZpbml0byBwYXJhIGNhcmdhciBtw6FzIGFnZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNvbG8gY3VhbmRvIGVsIGRyb3Bkb3duIGVzdMOpIGFiaWVydG9cbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWFnZW50c1JlZi5jdXJyZW50IHx8ICFsb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZSB8fCBsb2FkaW5nTW9yZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG5cbiAgICAgIC8vIENhcmdhciBtw6FzICg1MHB4IGFudGVzKVxuICAgICAgaWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgcmVuZGVyaXphZG9cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfSwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxvYWRNb3JlQWdlbnRzLCBoYXNNb3JlLCBsb2FkaW5nTW9yZV0pXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEFnZW50XG4gICAgfVxuICAgIGNvbnN0IGZyb21MaXN0ID0gYWdlbnRzLmZpbmQoXG4gICAgICBhZ2VudCA9PlxuICAgICAgICAhYWdlbnQuaXNfZGVsZXRlZCAmJiAhYWdlbnQuaGFzX25vdF9wZXJtaXNzaW9ucyAmJiAhYWdlbnQuaGFzX25vdF9hY2Nlc3MgJiYgYWdlbnQuaWQgPT09IHNlbGVjdGVkQWdlbnQ/LmlkXG4gICAgKVxuICAgIC8vIEFnZW50ZSBoaWRyYXRhZG8gcG9yIEdFVCAocC4gZWouIG51ZXZvIGNoYXQgdHJhcyBjcmVhdGVfYWdlbnQpIHB1ZWRlIG5vIGVzdGFyIGHDum4gZW4gbGEgbGlzdGEgcGFnaW5hZGFcbiAgICByZXR1cm4gZnJvbUxpc3QgPz8gc2VsZWN0ZWRBZ2VudCA/PyBudWxsXG4gIH0sIFthZ2VudHMsIHNlbGVjdGVkQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRBZ2VudFNlbGVjdCwge1xuICAgICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZGVwZW5kZSBkZSB1bmEgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpIHlhIHBvZGVtb3NcbiAgICAgICAgLy8gcmVzb2x2ZXIgc2kgZXhpc3RlIHVuYSBzZXNpw7NuIHByZXZpYSB5LCBlbiBlc2UgY2FzbywgbmF2ZWdhciBhIGVsbGEuXG4gICAgICAgIC8vIFBhcmEgY2xvbmUrcHJvamVjdHxjbGllbnQsIGxhIHJlc29sdWNpw7NuIG9jdXJyZSBlbiBsb3Mgc2VsZWN0b3JzIGRlIGVudGl0eS5cbiAgICAgICAgY29uc3QgbmVlZHNFbnRpdHkgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuICAgICAgICBpZiAoIW5lZWRzRW50aXR5KSB7XG4gICAgICAgICAgb25BZ2VudFNlbGVjdGVkPy4oYWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH0sIDEwMClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgYW1wbGl0dWRFdmVudCwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIG9uQWdlbnRTZWxlY3RlZF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuZE1vZGFsID0gKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlbkFnZW50U2VsZWN0KVxuICAgICAgLy8gQ3VhbmRvIHNlIGFicmUgZWwgc2VsZWN0b3IsIG9yZGVuYXIgbG9zIGFnZW50ZXNcbiAgICAgIGlmIChzb3J0QWdlbnRzTGlzdCkge1xuICAgICAgICBzb3J0QWdlbnRzTGlzdCgpXG4gICAgICB9XG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0V4cGFuZGVkICYmICFsYXlvdXRNZW51T3Blbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIE5vZGVcbiAgICAgIGlmIChpc0V4cGFuZGVkICYmIGRyb3Bkb3duUmVmLmN1cnJlbnQgJiYgIWRyb3Bkb3duUmVmLmN1cnJlbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgfVxuICAgICAgaWYgKGxheW91dE1lbnVPcGVuICYmIGxheW91dE1lbnVSZWYuY3VycmVudCAmJiAhbGF5b3V0TWVudVJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgbGF5b3V0TWVudU9wZW5dKVxuXG4gIGNvbnN0IGhhbmRsZVBpY2tMYXlvdXQgPSB1c2VDYWxsYmFjayhcbiAgICAobW9kZTogTWFpYUNoYXRNb2RhbExheW91dE1vZGUpID0+IHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLnByb2plY3RSZXN1bWVFeHBhbmQsIHtcbiAgICAgICAgZXhwYW5kZWQ6IG1vZGUgPT09ICdmdWxsc2NyZWVuJyxcbiAgICAgIH0pXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRTZWxlY3RWaWV3T3B0aW9ucywgeyBvcHRpb246IG1vZGUgfSlcbiAgICAgIG9uTGF5b3V0TW9kZUNoYW5nZShtb2RlKVxuICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgfSxcbiAgICBbYW1wbGl0dWRFdmVudCwgb25MYXlvdXRNb2RlQ2hhbmdlXVxuICApXG5cbiAgY29uc3QgY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCA9IGlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQodXNlciwgc2VjdGlvbilcblxuICBjb25zdCByZW5kZXJNb2RhbCA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJTUhXcmFwcGVyXG4gICAgICAgIHJlZj17ZHJvcGRvd25SZWZ9XG4gICAgICAgIGRhdGEtbm8tZHJhZz1cInRydWVcIlxuICAgICAgICBvbkNsaWNrPXthZ2VudHMubGVuZ3RoID8gaGFuZGxlRXhwYW5kTW9kYWwgOiB1bmRlZmluZWR9XG4gICAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICA+XG4gICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcEFnZW50ID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD17aXNFeHBhbmRlZCA/ICdsZWZ0JyA6ICd0b3AnfVxuICAgICAgICAgICAgey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHRcbiAgICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICAgIGlzQWdlbnREZWxldGVkPXtcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHwgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8udHlwZSA9PT0gJ2N1c3RvbScgPyBsb2NhbEFnZW50cz8uZW1vamkgOiA8TUFJQUljb24gLz59IHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD17MTR9IGhlaWdodD17MTR9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgIDwvU0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1haWFBZ2VudHMgPSBhZ2VudHNGb3JTZWxlY3Rvci5maWx0ZXIoaXNNYWlhQWdlbnQpXG4gICAgICAgICAgICAgICAgICAgIGlmICghbWFpYUFnZW50cy5sZW5ndGgpIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNQUlBSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSBpc0Nsb25lPk1BSUEgYnkgQ09SPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0NBSVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSERpdmlkZXIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAge21haWFBZ2VudHMubWFwKChtYWlhQWdlbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7bWFpYUFnZW50LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlbnQ9e21haWFBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBtYWlhQWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNYWlhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7YWdlbnRzRm9yU2VsZWN0b3Iuc29tZShhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJykgJiZcbiAgICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnYWdlbnRzJyl9IGJ5IHt1c2VyLmNvbXBhbnl9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8U0NDQUlNSEFnZW50c0xpc3QgaGFzTW9yZT17aGFzTW9yZX0gYWdlbnRzQ291bnQ9e2FnZW50c0ZvclNlbGVjdG9yLmxlbmd0aH0gcmVmPXthZ2VudHNSZWZ9PlxuICAgICAgICAgICAgICAgIHthZ2VudHNGb3JTZWxlY3Rvcj8ubWFwKChhZ2VudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8XG4gICAgICAgICAgICAgICAgICAgIGlzTWFpYUFnZW50KGFnZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nICYmICF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUylcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7YWdlbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICBhZ2VudD17YWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEFnZW50PXtoYW5kbGVTZWxlY3RBZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gYWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc0V4cGFuZGVkPXtzZXRJc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIHtsb2FkaW5nTW9yZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSExvYWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1IQWdlbnRzTGlzdD5cbiAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsPlxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSU1IV3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBjb25zdCBzZWxlY3RlZE1vZGVsTGxtID0gc2VsZWN0ZWRBZ2VudD8ubW9kZWxfZGlzcGxheV9uYW1lXG4gIGNvbnN0IHNlbGVjdGVkQWdlbnRUeXBlID0gc2VsZWN0ZWRBZ2VudD8udHlwZSA9PT0gJ2N1c3RvbSdcbiAgY29uc3Qgc2hvdWxkUmVuZGVyU2VsZWN0b3IgPVxuICAgICFoYXNFcnJvciAmJlxuICAgICFsb2FkaW5nICYmXG4gICAgIWhpZGVBZ2VudFNlbGVjdG9yICYmXG4gICAgISFzZWxlY3RlZEFnZW50ICYmXG4gICAgKCEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMgfHwgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJTUhNb2RhbFxuICAgICAgJGhhc0Vycm9yPXtoYXNFcnJvcn1cbiAgICAgICRsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgJGhhc0FnZW50cz17ISFhZ2VudHMubGVuZ3RofVxuICAgICAgb25Qb2ludGVyRG93bj17ZHJhZ2dhYmxlID8gb25EcmFnU3RhcnQgOiB1bmRlZmluZWR9XG4gICAgICBvblBvaW50ZXJNb3ZlPXtkcmFnZ2FibGUgPyBvbkRyYWdNb3ZlIDogdW5kZWZpbmVkfVxuICAgICAgb25Qb2ludGVyVXA9e2RyYWdnYWJsZSA/IG9uRHJhZ0VuZCA6IHVuZGVmaW5lZH1cbiAgICAgIG9uUG9pbnRlckNhbmNlbD17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgb25Mb3N0UG9pbnRlckNhcHR1cmU9e2RyYWdnYWJsZSA/IG9uRHJhZ0VuZCA6IHVuZGVmaW5lZH1cbiAgICAgIHN0eWxlPXt7IGN1cnNvcjogZHJhZ2dhYmxlID8gJ2dyYWInIDogdW5kZWZpbmVkLCB0b3VjaEFjdGlvbjogZHJhZ2dhYmxlID8gJ21hbmlwdWxhdGlvbicgOiB1bmRlZmluZWQgfX1cbiAgICA+XG4gICAgICB7c2hvdWxkUmVuZGVyU2VsZWN0b3IgPyByZW5kZXJNb2RhbCgpIDogPGRpdiAvPn1cbiAgICAgIDxTQ0NBSU1IV3JhcHBlckJ1dHRvbiBkYXRhLW5vLWRyYWc9XCJ0cnVlXCI+XG4gICAgICAgIHtzaG93QmFja0J1dHRvbiAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhCYWNrQnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0QmFjaylcbiAgICAgICAgICAgICAgb25CYWNrKClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoZXZyb25MZWZ0IHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjMzQzNDMzXCIgLz5cbiAgICAgICAgICAgIHt0KCdiYWNrJyl9XG4gICAgICAgICAgPC9TQ0NBSU1IQmFja0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAge3NlbGVjdGVkQWdlbnRUeXBlICYmIHNlbGVjdGVkTW9kZWxMbG0gJiYgPENoaXBMbG0gbW9kZWw9e3NlbGVjdGVkTW9kZWxMbG19IGV4cGFuZGVkPXtleHBhbmRlZH0gLz59XG4gICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudUFuY2hvciByZWY9e2xheW91dE1lbnVSZWZ9IGRhdGEtbm8tZHJhZz1cInRydWVcIj5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgYnV0dG9uSWQ9XCJidG4tbWFpYS1sYXlvdXQtbWVudVwiXG4gICAgICAgICAgICBoYW5kbGVDbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWxheW91dE1lbnVPcGVuKSB7XG4gICAgICAgICAgICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlblZpZXdPcHRpb25zKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNldExheW91dE1lbnVPcGVuKHByZXYgPT4gIXByZXYpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdG9vbHRpcD17dCgnbGF5b3V0TWVudVRvb2x0aXAnKX1cbiAgICAgICAgICAgIGRpc2FibGVUb29sdGlwPXtsYXlvdXRNZW51T3Blbn1cbiAgICAgICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1haWFDaGF0TGF5b3V0TWVudUljb24gLz5cbiAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAge2xheW91dE1lbnVPcGVuID8gKFxuICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51UGFuZWwgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51Um93XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJGFjdGl2ZT17bGF5b3V0TW9kZSA9PT0gJ3NpZGViYXInfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ3NpZGViYXInKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRTaWRlYmFyJyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVSb3c+XG4gICAgICAgICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudVJvd1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICRhY3RpdmU9e2xheW91dE1vZGUgPT09ICdmdWxsc2NyZWVuJ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVQaWNrTGF5b3V0KCdmdWxsc2NyZWVuJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnbGF5b3V0RnVsbHNjcmVlbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51Um93PlxuICAgICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVSb3dcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkYWN0aXZlPXtsYXlvdXRNb2RlID09PSAnZmxvYXRpbmcnfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ2Zsb2F0aW5nJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnbGF5b3V0RmxvYXRpbmcnKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVJvdz5cbiAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVQYW5lbD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudUFuY2hvcj5cbiAgICAgICAgPEljb25CdXR0b24gaGFuZGxlQ2xpY2s9e2hhbmRsZUNsb3NlfSB0b29sdGlwPXt0KCdnbG9iYWxzLmNsb3NlJyl9IHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgIDxDcm9zcyAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyQnV0dG9uPlxuICAgIDwvU0NDQUlNSE1vZGFsPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQTJDLE9BQU87QUFDNUcsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxRQUFRLFFBQVEsaUNBQWlDO0FBQzFELFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUN4RSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFDbEUsU0FBU0MsVUFBVSxRQUFRLDhCQUE4QjtBQUN6RCxTQUFTQyxRQUFRLEVBQUVDLHNCQUFzQixRQUFRLHlCQUF5QjtBQUMxRSxTQUFTQyxpQkFBaUIsUUFBUSwwQ0FBMEM7QUFDNUUsU0FDRUMsWUFBWSxFQUNaQyxvQkFBb0IsRUFDcEJDLHdCQUF3QixFQUN4QkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsbUJBQW1CLEVBQ25CQywwQkFBMEIsRUFDMUJDLCtCQUErQixFQUMvQkMsY0FBYyxFQUNkQyxpQkFBaUIsRUFDakJDLG9CQUFvQixFQUNwQkMsWUFBWSxFQUNaQyx1QkFBdUIsRUFDdkJDLHNCQUFzQixFQUN0QkMsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsUUFDWiw0QkFBNEI7QUFFbkMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsK0JBQStCO0FBQ2hFLFNBQVNDLE9BQU8sUUFBUSxp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
385
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRvb2x0aXAiLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiQ2hldnJvbkxlZnQiLCJ1c2VUcmFuc2xhdGlvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwiSWNvbkJ1dHRvbiIsIk1BSUFJY29uIiwiTWFpYUNoYXRMYXlvdXRNZW51SWNvbiIsIkNoYXRBSUFnZW50T3B0aW9uIiwiU0NDQUlNSE1vZGFsIiwiU0NDQUlNSFNlbGVjdGVkQWdlbnQiLCJTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQiLCJTQ0NBSU1IV3JhcHBlciIsIlNDQ0FJTUhXcmFwcGVyQnV0dG9uIiwiU0NDQUlNSFdyYXBwZXJJY29uIiwiU0NDQUlNSFdyYXBwZXJNb2RhbCIsIlNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50IiwiU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZSIsIlNDQ0FJTUhEaXZpZGVyIiwiU0NDQUlNSEFnZW50c0xpc3QiLCJTQ0NBSU1ITG9hZGVyV3JhcHBlciIsIlNDQ0FJV3JhcHBlciIsIlNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIiwiU0NDQUlNSExheW91dE1lbnVQYW5lbCIsIlNDQ0FJTUhMYXlvdXRNZW51Um93IiwiU0NDQUlNSEJhY2tCdXR0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVVzZXIiLCJpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwiQ2hpcExsbSIsIkxvYWRlciIsInVzZU1haWFUYXNrUGFuZWxaSW5kZXgiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDaGF0QUlNb2RhbEhlYWRlciIsIl9yZWYiLCJsYXlvdXRNb2RlIiwib25MYXlvdXRNb2RlQ2hhbmdlIiwiZXhwYW5kZWQiLCJfcmVmJGRyYWdnYWJsZSIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkYWdlbnRzIiwiYWdlbnRzIiwiX3JlZiRoYXNFcnJvciIsImhhc0Vycm9yIiwiX3JlZiRsb2FkaW5nIiwibG9hZGluZyIsIl9yZWYkbG9hZGluZ01vcmUiLCJsb2FkaW5nTW9yZSIsIl9yZWYkaGFzTW9yZSIsImhhc01vcmUiLCJoYW5kbGVSZXNldENoYXQiLCJvbkFnZW50VXBkYXRlIiwibG9hZE1vcmVBZ2VudHMiLCJzb3J0QWdlbnRzTGlzdCIsIl9yZWYkaGlkZUFnZW50U2VsZWN0byIsImhpZGVBZ2VudFNlbGVjdG9yIiwib25BZ2VudFNlbGVjdGVkIiwiX3JlZiRzaG93QmFja0J1dHRvbiIsInNob3dCYWNrQnV0dG9uIiwiX3JlZiRvbkJhY2siLCJvbkJhY2siLCJfdXNlVHJhbnNsYXRpb24iLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiYW1wbGl0dWRFdmVudCIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsImFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInNlY3Rpb24iLCJ0b29sdGlwWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ0ZXh0UmVmQWdlbnQiLCJkcm9wZG93blJlZiIsImxheW91dE1lbnVSZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxheW91dE1lbnVPcGVuIiwic2V0TGF5b3V0TWVudU9wZW4iLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJuYW1lIiwic2hvd1Rvb2x0aXBBZ2VudCIsInNob3dUb29sdGlwIiwiYWdlbnRzUmVmIiwiYWdlbnRzRm9yU2VsZWN0b3IiLCJmaWx0ZXIiLCJhZ2VudEl0ZW0iLCJlbnRpdHkiLCJ1bmRlZmluZWQiLCJoYW5kbGVTY3JvbGwiLCJjdXJyZW50IiwiX2FnZW50c1JlZiRjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInNjcm9sbEVsZW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvY2FsQWdlbnRzIiwiX3JlZjIiLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJmcm9tTGlzdCIsImZpbmQiLCJpZCIsImhhbmRsZVNlbGVjdEFnZW50IiwiYWlDaGF0QWdlbnRTZWxlY3QiLCJhZ2VudF90eXBlIiwidHlwZSIsIm5lZWRzRW50aXR5IiwiaGFuZGxlRXhwYW5kTW9kYWwiLCJhaUNoYXRPcGVuQWdlbnRTZWxlY3QiLCJwcmV2IiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiZXZlbnQiLCJ0YXJnZXQiLCJjb250YWlucyIsImRvY3VtZW50IiwiaGFuZGxlUGlja0xheW91dCIsIm1vZGUiLCJwcm9qZWN0UmVzdW1lRXhwYW5kIiwiYWlDaGF0U2VsZWN0Vmlld09wdGlvbnMiLCJvcHRpb24iLCJjbG9uZUFnZW50c1JvbGVCbG9ja2VkIiwicmVuZGVyTW9kYWwiLCJyZWYiLCJvbkNsaWNrIiwibGVuZ3RoIiwiY2hpbGRyZW4iLCJfb2JqZWN0U3ByZWFkIiwidGl0bGUiLCJzdHlsZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiZ2FwIiwiZW1vamkiLCJwbGFjZW1lbnQiLCJ6SW5kZXgiLCJpc0FnZW50RGVsZXRlZCIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MiLCJjbG9uZUFnZW50cyIsImFnIiwiaXNDbG9uZSIsIm1hcCIsImNsb25lQWdlbnQiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJpc01haWEiLCJvbkZhdm9yaXRlVG9nZ2xlIiwiY29uY2F0Iiwic29tZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjb21wYW55IiwiYWdlbnRzQ291bnQiLCJzaXplIiwic2VsZWN0ZWRNb2RlbExsbSIsIm1vZGVsX2Rpc3BsYXlfbmFtZSIsInNlbGVjdGVkQWdlbnRUeXBlIiwic2hvdWxkUmVuZGVyU2VsZWN0b3IiLCIkaGFzRXJyb3IiLCIkbG9hZGluZyIsIiRoYXNBZ2VudHMiLCJvblBvaW50ZXJEb3duIiwib25Qb2ludGVyTW92ZSIsIm9uUG9pbnRlclVwIiwib25Qb2ludGVyQ2FuY2VsIiwib25Mb3N0UG9pbnRlckNhcHR1cmUiLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsImFpQ2hhdEJhY2siLCJtb2RlbCIsImJ1dHRvbklkIiwiaGFuZGxlQ2xpY2siLCJhaUNoYXRPcGVuVmlld09wdGlvbnMiLCJ0b29sdGlwIiwiZGlzYWJsZVRvb2x0aXAiLCJyb2xlIiwiJGFjdGl2ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNb2RhbC9jb21wb25lbnRzL0NoYXRBaU1vZGFsSGVhZGVyL0NoYXRBaU1vZGFsSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgUG9pbnRlckV2ZW50IGFzIFJlYWN0UG9pbnRlckV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IENoZXZyb25MZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkxlZnQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0ljb25CdXR0b24nXG5pbXBvcnQgeyBNQUlBSWNvbiwgTWFpYUNoYXRMYXlvdXRNZW51SWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgQ2hhdEFJQWdlbnRPcHRpb24gfSBmcm9tICcuLi9DaGF0QWlBZ2VudE9wdGlvbnMvQ2hhdEFpQWdlbnRPcHRpb25zJ1xuaW1wb3J0IHtcbiAgU0NDQUlNSE1vZGFsLFxuICBTQ0NBSU1IU2VsZWN0ZWRBZ2VudCxcbiAgU0NDQUlNSFNlbGVjdGVkQWdlbnRUZXh0LFxuICBTQ0NBSU1IV3JhcHBlcixcbiAgU0NDQUlNSFdyYXBwZXJCdXR0b24sXG4gIFNDQ0FJTUhXcmFwcGVySWNvbixcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbCxcbiAgU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQsXG4gIFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUsXG4gIFNDQ0FJTUhEaXZpZGVyLFxuICBTQ0NBSU1IQWdlbnRzTGlzdCxcbiAgU0NDQUlNSExvYWRlcldyYXBwZXIsXG4gIFNDQ0FJV3JhcHBlcixcbiAgU0NDQUlNSExheW91dE1lbnVBbmNob3IsXG4gIFNDQ0FJTUhMYXlvdXRNZW51UGFuZWwsXG4gIFNDQ0FJTUhMYXlvdXRNZW51Um93LFxuICBTQ0NBSU1IQmFja0J1dHRvbixcbn0gZnJvbSAnLi9DaGF0QWlNb2RhbEhlYWRlci5zdHlsZXMnXG5pbXBvcnQgdHlwZSB7IE1haWFDaGF0TW9kYWxMYXlvdXRNb2RlIH0gZnJvbSAnLi4vLi4vbGF5b3V0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBpc01haWFDbG9uZUFnZW50c1JvbGVCbG9ja2VkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFUYXNrUGFuZWxBY2Nlc3MnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hpcExsbSB9IGZyb20gJy4uLy4uLy4uLy4uL2F0b21zL0NoaXBMbG0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcblxuZXhwb3J0IGNvbnN0IENoYXRBSU1vZGFsSGVhZGVyID0gKHtcbiAgbGF5b3V0TW9kZSxcbiAgb25MYXlvdXRNb2RlQ2hhbmdlLFxuICBleHBhbmRlZCxcbiAgZHJhZ2dhYmxlID0gZmFsc2UsXG4gIG9uRHJhZ1N0YXJ0LFxuICBvbkRyYWdNb3ZlLFxuICBvbkRyYWdFbmQsXG4gIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgYWdlbnRzID0gW10sXG4gIGhhc0Vycm9yID0gZmFsc2UsXG4gIGxvYWRpbmcgPSBmYWxzZSxcbiAgbG9hZGluZ01vcmUgPSBmYWxzZSxcbiAgaGFzTW9yZSA9IGZhbHNlLFxuICBoYW5kbGVSZXNldENoYXQsXG4gIG9uQWdlbnRVcGRhdGUsXG4gIGxvYWRNb3JlQWdlbnRzLFxuICBzb3J0QWdlbnRzTGlzdCxcbiAgaGlkZUFnZW50U2VsZWN0b3IgPSBmYWxzZSxcbiAgb25BZ2VudFNlbGVjdGVkLFxuICBzaG93QmFja0J1dHRvbiA9IGZhbHNlLFxuICBvbkJhY2sgPSAoKSA9PiBudWxsLFxufToge1xuICBsYXlvdXRNb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZVxuICBvbkxheW91dE1vZGVDaGFuZ2U6IChtb2RlOiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSkgPT4gdm9pZFxuICBleHBhbmRlZDogYm9vbGVhblxuICBkcmFnZ2FibGU/OiBib29sZWFuXG4gIG9uRHJhZ1N0YXJ0PzogKGV2ZW50OiBSZWFjdFBvaW50ZXJFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWRcbiAgb25EcmFnTW92ZT86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRHJhZ0VuZD86IChldmVudDogUmVhY3RQb2ludGVyRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBhZ2VudHM6IEFnZW50W11cbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgbG9hZGluZzogYm9vbGVhblxuICBsb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaGFuZGxlUmVzZXRDaGF0OiAoKSA9PiB2b2lkXG4gIG9uQWdlbnRVcGRhdGU/OiAodXBkYXRlZEFnZW50OiBBZ2VudCkgPT4gdm9pZFxuICBsb2FkTW9yZUFnZW50cz86ICgpID0+IHZvaWRcbiAgc29ydEFnZW50c0xpc3Q/OiAoKSA9PiB2b2lkXG4gIGhpZGVBZ2VudFNlbGVjdG9yPzogYm9vbGVhblxuICAvKipcbiAgICogU2UgaW52b2NhIGRlc3B1w6lzIGRlbCByZXNldCBjdWFuZG8gZWwgYWdlbnRlIHNlbGVjY2lvbmFkbyBOTyByZXF1aWVyZSBzZWxlY2Npw7NuXG4gICAqIGRlIGVudGl0eSAoY3VzdG9tIG8gY2xvbmUrZ2xvYmFsKS4gUGVybWl0ZSByZXNvbHZlciBgR0VUIC92Mi9zZXNzaW9ucy9hZ2VudC97aWR9YFxuICAgKiB5IG5hdmVnYXIgYSB1bmEgY29udmVyc2FjacOzbiBleGlzdGVudGUgc2kgbGEgaGF5LlxuICAgKi9cbiAgb25BZ2VudFNlbGVjdGVkPzogKGFnZW50OiBBZ2VudCkgPT4gdm9pZCB8IFByb21pc2U8dW5rbm93bj5cbiAgc2hvd0JhY2tCdXR0b24/OiBib29sZWFuXG4gIG9uQmFjaz86ICgpID0+IHZvaWRcbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGFtcGxpdHVkRXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICAvLyBFbiBzZWN0aW9uICd0YXNrJyBlbCBtb2RhbCBkZSBNYWlhIHNlIGVsZXZhIHBvciBlbmNpbWEgZGVsIHRhc2sgcGFuZWwgKHotaW5kZXggOTgwMDAwMSkuXG4gIC8vIExvcyB0b29sdGlwcyBzZSBtb250YW4gZW4gcG9ydGFsIGNvbiB6LWluZGV4IDE1MDAgcG9yIGRlZmVjdG8sIGFzw60gcXVlIHF1ZWRhcsOtYW4gZGV0csOhcy5cbiAgLy8gU3ViaW1vcyBzdSB6LWluZGV4IHPDs2xvIGVuIGVzdGUgY2FzbyBwYXJhIHF1ZSBzZSB2ZWFuIHBvciBlbmNpbWEgZGVsIG1vZGFsLlxuICBjb25zdCB0b29sdGlwWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB0ZXh0UmVmQWdlbnQgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgbGF5b3V0TWVudVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW2xheW91dE1lbnVPcGVuLCBzZXRMYXlvdXRNZW51T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZkFnZW50LCBbc2VsZWN0ZWRBZ2VudD8ubmFtZV0pXG4gIGNvbnN0IGFnZW50c1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBhZ2VudHNGb3JTZWxlY3RvciA9IHVzZU1lbW8oKCkgPT4gYWdlbnRzLmZpbHRlcihhZ2VudEl0ZW0gPT4gYWdlbnRJdGVtLmVudGl0eSAhPT0gJ2dsb2JhbCcpLCBbYWdlbnRzXSlcblxuICAvLyBNYW5lamFyIHNjcm9sbCBpbmZpbml0byBwYXJhIGNhcmdhciBtw6FzIGFnZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNvbG8gY3VhbmRvIGVsIGRyb3Bkb3duIGVzdMOpIGFiaWVydG9cbiAgICBpZiAoIWlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWFnZW50c1JlZi5jdXJyZW50IHx8ICFsb2FkTW9yZUFnZW50cyB8fCAhaGFzTW9yZSB8fCBsb2FkaW5nTW9yZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG5cbiAgICAgIC8vIENhcmdhciBtw6FzICg1MHB4IGFudGVzKVxuICAgICAgaWYgKGRpc3RhbmNlRnJvbUJvdHRvbSA8IDUwKSB7XG4gICAgICAgIGxvYWRNb3JlQWdlbnRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBET00gZXN0w6kgcmVuZGVyaXphZG9cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBhZ2VudHNSZWYuY3VycmVudFxuICAgICAgaWYgKHNjcm9sbEVsZW1lbnQpIHtcbiAgICAgICAgc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfSwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gYWdlbnRzUmVmLmN1cnJlbnRcbiAgICAgIGlmIChzY3JvbGxFbGVtZW50KSB7XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzRXhwYW5kZWQsIGxvYWRNb3JlQWdlbnRzLCBoYXNNb3JlLCBsb2FkaW5nTW9yZV0pXG5cbiAgY29uc3QgbG9jYWxBZ2VudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8XG4gICAgICBzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcyB8fFxuICAgICAgc2VsZWN0ZWRBZ2VudD8uaXNfZnJvbV9jb252ZXJzYXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZEFnZW50XG4gICAgfVxuICAgIGNvbnN0IGZyb21MaXN0ID0gYWdlbnRzLmZpbmQoXG4gICAgICBhZ2VudCA9PlxuICAgICAgICAhYWdlbnQuaXNfZGVsZXRlZCAmJiAhYWdlbnQuaGFzX25vdF9wZXJtaXNzaW9ucyAmJiAhYWdlbnQuaGFzX25vdF9hY2Nlc3MgJiYgYWdlbnQuaWQgPT09IHNlbGVjdGVkQWdlbnQ/LmlkXG4gICAgKVxuICAgIC8vIEFnZW50ZSBoaWRyYXRhZG8gcG9yIEdFVCAocC4gZWouIG51ZXZvIGNoYXQgdHJhcyBjcmVhdGVfYWdlbnQpIHB1ZWRlIG5vIGVzdGFyIGHDum4gZW4gbGEgbGlzdGEgcGFnaW5hZGFcbiAgICByZXR1cm4gZnJvbUxpc3QgPz8gc2VsZWN0ZWRBZ2VudCA/PyBudWxsXG4gIH0sIFthZ2VudHMsIHNlbGVjdGVkQWdlbnRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEFnZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRBZ2VudFNlbGVjdCwge1xuICAgICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBoYW5kbGVSZXNldENoYXQoKVxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZGVwZW5kZSBkZSB1bmEgZW50aXR5IChjdXN0b20gbyBjbG9uZStnbG9iYWwpIHlhIHBvZGVtb3NcbiAgICAgICAgLy8gcmVzb2x2ZXIgc2kgZXhpc3RlIHVuYSBzZXNpw7NuIHByZXZpYSB5LCBlbiBlc2UgY2FzbywgbmF2ZWdhciBhIGVsbGEuXG4gICAgICAgIC8vIFBhcmEgY2xvbmUrcHJvamVjdHxjbGllbnQsIGxhIHJlc29sdWNpw7NuIG9jdXJyZSBlbiBsb3Mgc2VsZWN0b3JzIGRlIGVudGl0eS5cbiAgICAgICAgY29uc3QgbmVlZHNFbnRpdHkgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiAoYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnIHx8IGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnKVxuICAgICAgICBpZiAoIW5lZWRzRW50aXR5KSB7XG4gICAgICAgICAgb25BZ2VudFNlbGVjdGVkPy4oYWdlbnQpXG4gICAgICAgIH1cbiAgICAgIH0sIDEwMClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgYW1wbGl0dWRFdmVudCwgaGFuZGxlUmVzZXRDaGF0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIG9uQWdlbnRTZWxlY3RlZF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUV4cGFuZE1vZGFsID0gKCkgPT4ge1xuICAgIGlmICghaXNFeHBhbmRlZCkge1xuICAgICAgYW1wbGl0dWRFdmVudChFVkVOVFMuYWlDaGF0T3BlbkFnZW50U2VsZWN0KVxuICAgICAgLy8gQ3VhbmRvIHNlIGFicmUgZWwgc2VsZWN0b3IsIG9yZGVuYXIgbG9zIGFnZW50ZXNcbiAgICAgIGlmIChzb3J0QWdlbnRzTGlzdCkge1xuICAgICAgICBzb3J0QWdlbnRzTGlzdCgpXG4gICAgICB9XG4gICAgfVxuICAgIHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0V4cGFuZGVkICYmICFsYXlvdXRNZW51T3Blbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIE5vZGVcbiAgICAgIGlmIChpc0V4cGFuZGVkICYmIGRyb3Bkb3duUmVmLmN1cnJlbnQgJiYgIWRyb3Bkb3duUmVmLmN1cnJlbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICBzZXRJc0V4cGFuZGVkKGZhbHNlKVxuICAgICAgfVxuICAgICAgaWYgKGxheW91dE1lbnVPcGVuICYmIGxheW91dE1lbnVSZWYuY3VycmVudCAmJiAhbGF5b3V0TWVudVJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNFeHBhbmRlZCwgbGF5b3V0TWVudU9wZW5dKVxuXG4gIGNvbnN0IGhhbmRsZVBpY2tMYXlvdXQgPSB1c2VDYWxsYmFjayhcbiAgICAobW9kZTogTWFpYUNoYXRNb2RhbExheW91dE1vZGUpID0+IHtcbiAgICAgIGFtcGxpdHVkRXZlbnQoRVZFTlRTLnByb2plY3RSZXN1bWVFeHBhbmQsIHtcbiAgICAgICAgZXhwYW5kZWQ6IG1vZGUgPT09ICdmdWxsc2NyZWVuJyxcbiAgICAgIH0pXG4gICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRTZWxlY3RWaWV3T3B0aW9ucywgeyBvcHRpb246IG1vZGUgfSlcbiAgICAgIG9uTGF5b3V0TW9kZUNoYW5nZShtb2RlKVxuICAgICAgc2V0TGF5b3V0TWVudU9wZW4oZmFsc2UpXG4gICAgfSxcbiAgICBbYW1wbGl0dWRFdmVudCwgb25MYXlvdXRNb2RlQ2hhbmdlXVxuICApXG5cbiAgY29uc3QgY2xvbmVBZ2VudHNSb2xlQmxvY2tlZCA9IGlzTWFpYUNsb25lQWdlbnRzUm9sZUJsb2NrZWQodXNlciwgc2VjdGlvbilcblxuICBjb25zdCByZW5kZXJNb2RhbCA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJTUhXcmFwcGVyXG4gICAgICAgIHJlZj17ZHJvcGRvd25SZWZ9XG4gICAgICAgIGRhdGEtbm8tZHJhZz1cInRydWVcIlxuICAgICAgICBvbkNsaWNrPXthZ2VudHMubGVuZ3RoID8gaGFuZGxlRXhwYW5kTW9kYWwgOiB1bmRlZmluZWR9XG4gICAgICAgIGlkPVwiY2hhdC1haS1tb2RhbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICA+XG4gICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudD5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcEFnZW50ID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzRweCcgfX0+XG4gICAgICAgICAgICAgICAgICB7bG9jYWxBZ2VudHM/LnR5cGUgPT09ICdjdXN0b20nID8gbG9jYWxBZ2VudHM/LmVtb2ppIDogPE1BSUFJY29uIC8+fSB7bG9jYWxBZ2VudHM/Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD17aXNFeHBhbmRlZCA/ICdsZWZ0JyA6ICd0b3AnfVxuICAgICAgICAgICAgey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHRcbiAgICAgICAgICAgICAgcmVmPXt0ZXh0UmVmQWdlbnR9XG4gICAgICAgICAgICAgIGlzQWdlbnREZWxldGVkPXtcbiAgICAgICAgICAgICAgICAhIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgfHwgISFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zIHx8ICEhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3NcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6ICc0cHgnIH19PlxuICAgICAgICAgICAgICAgIHtsb2NhbEFnZW50cz8udHlwZSA9PT0gJ2N1c3RvbScgPyBsb2NhbEFnZW50cz8uZW1vamkgOiA8TUFJQUljb24gLz59IHtsb2NhbEFnZW50cz8ubmFtZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9TQ0NBSU1IU2VsZWN0ZWRBZ2VudFRleHQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDQ0FJTUhTZWxlY3RlZEFnZW50PlxuICAgICAgICA8U0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD17MTR9IGhlaWdodD17MTR9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgIDwvU0NDQUlNSFdyYXBwZXJJY29uPlxuICAgICAgICB7aXNFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTICYmICFjbG9uZUFnZW50c1JvbGVCbG9ja2VkICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lQWdlbnRzID0gYWdlbnRzRm9yU2VsZWN0b3IuZmlsdGVyKChhZzogQWdlbnQpID0+IGFnLnR5cGUgPT09ICdjbG9uZScpXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2xvbmVBZ2VudHMubGVuZ3RoKSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDQUlXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TUFJQUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhXcmFwcGVyTW9kYWxDb250ZW50VGl0bGUgaXNDbG9uZT5NQUlBIGJ5IENPUjwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NDQUlXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbG9uZUFnZW50cy5tYXAoKGNsb25lQWdlbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGF0QUlBZ2VudE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGFnZW50LSR7Y2xvbmVBZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXtjbG9uZUFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RBZ2VudD17aGFuZGxlU2VsZWN0QWdlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRBZ2VudD8uaWQgPT09IGNsb25lQWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNYWlhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GYXZvcml0ZVRvZ2dsZT17b25BZ2VudFVwZGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7YWdlbnRzRm9yU2VsZWN0b3Iuc29tZShhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJykgJiZcbiAgICAgICAgICAgICAgICB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8U0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnYWdlbnRzJyl9IGJ5IHt1c2VyLmNvbXBhbnl9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NDQUlNSFdyYXBwZXJNb2RhbENvbnRlbnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPFNDQ0FJTUhEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8U0NDQUlNSEFnZW50c0xpc3QgaGFzTW9yZT17aGFzTW9yZX0gYWdlbnRzQ291bnQ9e2FnZW50c0ZvclNlbGVjdG9yLmxlbmd0aH0gcmVmPXthZ2VudHNSZWZ9PlxuICAgICAgICAgICAgICAgIHthZ2VudHNGb3JTZWxlY3Rvcj8ubWFwKChhZ2VudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/LmlzX2RlbGV0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgfHxcbiAgICAgICAgICAgICAgICAgICAgYWdlbnQ/Lmhhc19ub3RfYWNjZXNzIHx8XG4gICAgICAgICAgICAgICAgICAgIGFnZW50Py50eXBlID09PSAnY2xvbmUnIHx8XG4gICAgICAgICAgICAgICAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScgJiYgIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPENoYXRBSUFnZW50T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWdlbnQtJHthZ2VudC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIGFnZW50PXthZ2VudH1cbiAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0QWdlbnQ9e2hhbmRsZVNlbGVjdEFnZW50fVxuICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID09PSBhZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkZhdm9yaXRlVG9nZ2xlPXtvbkFnZW50VXBkYXRlfVxuICAgICAgICAgICAgICAgICAgICAgIHNldElzRXhwYW5kZWQ9e3NldElzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAge2xvYWRpbmdNb3JlICYmIChcbiAgICAgICAgICAgICAgICAgIDxTQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0NBSU1ITG9hZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhBZ2VudHNMaXN0PlxuICAgICAgICAgICAgPC9TQ0NBSU1IV3JhcHBlck1vZGFsQ29udGVudD5cbiAgICAgICAgICA8L1NDQ0FJTUhXcmFwcGVyTW9kYWw+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJTUhXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTW9kZWxMbG0gPSBzZWxlY3RlZEFnZW50Py5tb2RlbF9kaXNwbGF5X25hbWVcbiAgY29uc3Qgc2VsZWN0ZWRBZ2VudFR5cGUgPSBzZWxlY3RlZEFnZW50Py50eXBlID09PSAnY3VzdG9tJ1xuICBjb25zdCBzaG91bGRSZW5kZXJTZWxlY3RvciA9XG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmcgJiZcbiAgICAhaGlkZUFnZW50U2VsZWN0b3IgJiZcbiAgICAhIXNlbGVjdGVkQWdlbnQgJiZcbiAgICAoISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyB8fCAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1MpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlNSE1vZGFsXG4gICAgICAkaGFzRXJyb3I9e2hhc0Vycm9yfVxuICAgICAgJGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAkaGFzQWdlbnRzPXshIWFnZW50cy5sZW5ndGh9XG4gICAgICBvblBvaW50ZXJEb3duPXtkcmFnZ2FibGUgPyBvbkRyYWdTdGFydCA6IHVuZGVmaW5lZH1cbiAgICAgIG9uUG9pbnRlck1vdmU9e2RyYWdnYWJsZSA/IG9uRHJhZ01vdmUgOiB1bmRlZmluZWR9XG4gICAgICBvblBvaW50ZXJVcD17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgb25Qb2ludGVyQ2FuY2VsPXtkcmFnZ2FibGUgPyBvbkRyYWdFbmQgOiB1bmRlZmluZWR9XG4gICAgICBvbkxvc3RQb2ludGVyQ2FwdHVyZT17ZHJhZ2dhYmxlID8gb25EcmFnRW5kIDogdW5kZWZpbmVkfVxuICAgICAgc3R5bGU9e3sgY3Vyc29yOiBkcmFnZ2FibGUgPyAnZ3JhYicgOiB1bmRlZmluZWQsIHRvdWNoQWN0aW9uOiBkcmFnZ2FibGUgPyAnbWFuaXB1bGF0aW9uJyA6IHVuZGVmaW5lZCB9fVxuICAgID5cbiAgICAgIHtzaG91bGRSZW5kZXJTZWxlY3RvciA/IHJlbmRlck1vZGFsKCkgOiA8ZGl2IC8+fVxuICAgICAgPFNDQ0FJTUhXcmFwcGVyQnV0dG9uIGRhdGEtbm8tZHJhZz1cInRydWVcIj5cbiAgICAgICAge3Nob3dCYWNrQnV0dG9uICYmIChcbiAgICAgICAgICA8U0NDQUlNSEJhY2tCdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRCYWNrKVxuICAgICAgICAgICAgICBvbkJhY2soKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hldnJvbkxlZnQgd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiMzNDM0MzNcIiAvPlxuICAgICAgICAgICAge3QoJ2JhY2snKX1cbiAgICAgICAgICA8L1NDQ0FJTUhCYWNrQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICB7c2VsZWN0ZWRBZ2VudFR5cGUgJiYgc2VsZWN0ZWRNb2RlbExsbSAmJiA8Q2hpcExsbSBtb2RlbD17c2VsZWN0ZWRNb2RlbExsbX0gZXhwYW5kZWQ9e2V4cGFuZGVkfSAvPn1cbiAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51QW5jaG9yIHJlZj17bGF5b3V0TWVudVJlZn0gZGF0YS1uby1kcmFnPVwidHJ1ZVwiPlxuICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICBidXR0b25JZD1cImJ0bi1tYWlhLWxheW91dC1tZW51XCJcbiAgICAgICAgICAgIGhhbmRsZUNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghbGF5b3V0TWVudU9wZW4pIHtcbiAgICAgICAgICAgICAgICBhbXBsaXR1ZEV2ZW50KEVWRU5UUy5haUNoYXRPcGVuVmlld09wdGlvbnMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2V0TGF5b3V0TWVudU9wZW4ocHJldiA9PiAhcHJldilcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0b29sdGlwPXt0KCdsYXlvdXRNZW51VG9vbHRpcCcpfVxuICAgICAgICAgICAgZGlzYWJsZVRvb2x0aXA9e2xheW91dE1lbnVPcGVufVxuICAgICAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWFpYUNoYXRMYXlvdXRNZW51SWNvbiAvPlxuICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICB7bGF5b3V0TWVudU9wZW4gPyAoXG4gICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVQYW5lbCByb2xlPVwibWVudVwiPlxuICAgICAgICAgICAgICA8U0NDQUlNSExheW91dE1lbnVSb3dcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkYWN0aXZlPXtsYXlvdXRNb2RlID09PSAnc2lkZWJhcid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUGlja0xheW91dCgnc2lkZWJhcicpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2xheW91dFNpZGViYXInKX1cbiAgICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVJvdz5cbiAgICAgICAgICAgICAgPFNDQ0FJTUhMYXlvdXRNZW51Um93XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgJGFjdGl2ZT17bGF5b3V0TW9kZSA9PT0gJ2Z1bGxzY3JlZW4nfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVBpY2tMYXlvdXQoJ2Z1bGxzY3JlZW4nKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRGdWxsc2NyZWVuJyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlNSExheW91dE1lbnVSb3c+XG4gICAgICAgICAgICAgIDxTQ0NBSU1ITGF5b3V0TWVudVJvd1xuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICRhY3RpdmU9e2xheW91dE1vZGUgPT09ICdmbG9hdGluZyd9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUGlja0xheW91dCgnZmxvYXRpbmcnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdsYXlvdXRGbG9hdGluZycpfVxuICAgICAgICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51Um93PlxuICAgICAgICAgICAgPC9TQ0NBSU1ITGF5b3V0TWVudVBhbmVsPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1NDQ0FJTUhMYXlvdXRNZW51QW5jaG9yPlxuICAgICAgICA8SWNvbkJ1dHRvbiBoYW5kbGVDbGljaz17aGFuZGxlQ2xvc2V9IHRvb2x0aXA9e3QoJ2dsb2JhbHMuY2xvc2UnKX0gdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgPENyb3NzIC8+XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDwvU0NDQUlNSFdyYXBwZXJCdXR0b24+XG4gICAgPC9TQ0NBSU1ITW9kYWw+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBMkMsT0FBTztBQUM1RyxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxTQUFTQyxVQUFVLFFBQVEsOEJBQThCO0FBQ3pELFNBQVNDLFFBQVEsRUFBRUMsc0JBQXNCLFFBQVEseUJBQXlCO0FBQzFFLFNBQVNDLGlCQUFpQixRQUFRLDBDQUEwQztBQUM1RSxTQUNFQyxZQUFZLEVBQ1pDLG9CQUFvQixFQUNwQkMsd0JBQXdCLEVBQ3hCQyxjQUFjLEVBQ2RDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLDBCQUEwQixFQUMxQkMsK0JBQStCLEVBQy9CQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsb0JBQW9CLEVBQ3BCQyxZQUFZLEVBQ1pDLHVCQUF1QixFQUN2QkMsc0JBQXNCLEVBQ3RCQyxvQkFBb0IsRUFDcEJDLGlCQUFpQixRQUNaLDRCQUE0QjtBQUVuQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSwrQkFBK0I7QUFDaEUsU0FBU0MsT0FBTyxRQUFRLGlDQUFpQztBQUN6RCxTQUFTQyw0QkFBNEIsUUFBUSw4Q0FBOEM7QUFFM0YsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUNuRCxTQUFTQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pELFNBQVNDLHNCQUFzQixRQUFRLDZDQUE2QztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBRXBGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQUMsSUFBQSxFQWlEeEI7RUFBQSxJQWhESkMsVUFBVSxHQUFBRCxJQUFBLENBQVZDLFVBQVU7SUFDVkMsa0JBQWtCLEdBQUFGLElBQUEsQ0FBbEJFLGtCQUFrQjtJQUNsQkMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7SUFBQUMsY0FBQSxHQUFBSixJQUFBLENBQ1JLLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0lBQ2pCRSxXQUFXLEdBQUFOLElBQUEsQ0FBWE0sV0FBVztJQUNYQyxVQUFVLEdBQUFQLElBQUEsQ0FBVk8sVUFBVTtJQUNWQyxTQUFTLEdBQUFSLElBQUEsQ0FBVFEsU0FBUztJQUFBQyxnQkFBQSxHQUFBVCxJQUFBLENBQ1RVLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxnQkFBQSxjQUFHO01BQUEsT0FBTSxJQUFJO0lBQUEsSUFBQUEsZ0JBQUE7SUFBQUUsV0FBQSxHQUFBWCxJQUFBLENBQ3hCWSxNQUFNO0lBQU5BLE1BQU0sR0FBQUQsV0FBQSxjQUFHLEVBQUUsR0FBQUEsV0FBQTtJQUFBRSxhQUFBLEdBQUFiLElBQUEsQ0FDWGMsUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7SUFBQUUsWUFBQSxHQUFBZixJQUFBLENBQ2hCZ0IsT0FBTztJQUFQQSxPQUFPLEdBQUFELFlBQUEsY0FBRyxLQUFLLEdBQUFBLFlBQUE7SUFBQUUsZ0JBQUEsR0FBQWpCLElBQUEsQ0FDZmtCLFdBQVc7SUFBWEEsV0FBVyxHQUFBRCxnQkFBQSxjQUFHLEtBQUssR0FBQUEsZ0JBQUE7SUFBQUUsWUFBQSxHQUFBbkIsSUFBQSxDQUNuQm9CLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxZQUFBLGNBQUcsS0FBSyxHQUFBQSxZQUFBO0lBQ2ZFLGVBQWUsR0FBQXJCLElBQUEsQ0FBZnFCLGVBQWU7SUFDZkMsYUFBYSxHQUFBdEIsSUFBQSxDQUFic0IsYUFBYTtJQUNiQyxjQUFjLEdBQUF2QixJQUFBLENBQWR1QixjQUFjO0lBQ2RDLGNBQWMsR0FBQXhCLElBQUEsQ0FBZHdCLGNBQWM7SUFBQUMscUJBQUEsR0FBQXpCLElBQUEsQ0FDZDBCLGlCQUFpQjtJQUFqQkEsaUJBQWlCLEdBQUFELHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtJQUN6QkUsZUFBZSxHQUFBM0IsSUFBQSxDQUFmMkIsZUFBZTtJQUFBQyxtQkFBQSxHQUFBNUIsSUFBQSxDQUNmNkIsY0FBYztJQUFkQSxjQUFjLEdBQUFELG1CQUFBLGNBQUcsS0FBSyxHQUFBQSxtQkFBQTtJQUFBRSxXQUFBLEdBQUE5QixJQUFBLENBQ3RCK0IsTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBRztNQUFBLE9BQU0sSUFBSTtJQUFBLElBQUFBLFdBQUE7RUE2Qm5CLElBQUFFLGVBQUEsR0FBY3ZFLGNBQWMsQ0FBQyxDQUFDQyxRQUFRLENBQUN1RSxRQUFRLENBQUMsQ0FBQztJQUF6Q0MsQ0FBQyxHQUFBRixlQUFBLENBQURFLENBQUM7RUFDVCxJQUFNQyxJQUFJLEdBQUcvQyxPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFNZ0QsYUFBYSxHQUFHakQsUUFBUSxDQUFDLENBQUM7RUFDaEMsSUFBQWtELGlCQUFBLEdBQXVGMUUsZ0JBQWdCLENBQUMsQ0FBQztJQUExRjJFLGFBQWEsR0FBQUQsaUJBQUEsQ0FBcEJFLEtBQUs7SUFBaUJDLFdBQVcsR0FBQUgsaUJBQUEsQ0FBWEcsV0FBVztJQUFFQyxVQUFVLEdBQUFKLGlCQUFBLENBQVZJLFVBQVU7SUFBRUMsU0FBUyxHQUFBTCxpQkFBQSxDQUFUSyxTQUFTO0lBQUVDLE9BQU8sR0FBQU4saUJBQUEsQ0FBUE0sT0FBTztJQUFFQyxPQUFPLEdBQUFQLGlCQUFBLENBQVBPLE9BQU87RUFDbEY7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsYUFBYSxHQUFHckQsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztFQUM3RCxJQUFBc0QsU0FBQSxHQUFvQzVGLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZGLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQTVDRyxVQUFVLEdBQUFGLFVBQUE7SUFBRUcsYUFBYSxHQUFBSCxVQUFBO0VBQ2hDLElBQU1JLFlBQVksR0FBR2xHLE1BQU0sQ0FBa0IsSUFBSSxDQUFDO0VBQ2xELElBQU1tRyxXQUFXLEdBQUduRyxNQUFNLENBQWlCLElBQUksQ0FBQztFQUNoRCxJQUFNb0csYUFBYSxHQUFHcEcsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDbEQsSUFBQXFHLFVBQUEsR0FBNENwRyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFxRyxVQUFBLEdBQUFQLGNBQUEsQ0FBQU0sVUFBQTtJQUFwREUsY0FBYyxHQUFBRCxVQUFBO0lBQUVFLGlCQUFpQixHQUFBRixVQUFBO0VBQ3hDLElBQUFHLGtCQUFBLEdBQTBDOUYsaUJBQWlCLENBQUN1RixZQUFZLEVBQUUsQ0FBQ2IsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVxQixJQUFJLENBQUMsQ0FBQztJQUEzRUMsZ0JBQWdCLEdBQUFGLGtCQUFBLENBQTdCRyxXQUFXO0VBQ25CLElBQU1DLFNBQVMsR0FBRzdHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBRTlDLElBQU04RyxpQkFBaUIsR0FBRzNHLE9BQU8sQ0FBQztJQUFBLE9BQU13RCxNQUFNLENBQUNvRCxNQUFNLENBQUMsVUFBQUMsU0FBUztNQUFBLE9BQUlBLFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLFFBQVE7SUFBQSxFQUFDO0VBQUEsR0FBRSxDQUFDdEQsTUFBTSxDQUFDLENBQUM7O0VBRTVHO0VBQ0E1RCxTQUFTLENBQUMsWUFBTTtJQUNkO0lBQ0EsSUFBSSxDQUFDaUcsVUFBVSxFQUFFO01BQ2YsT0FBT2tCLFNBQVM7SUFDbEI7SUFFQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO01BQ3pCLElBQUksQ0FBQ04sU0FBUyxDQUFDTyxPQUFPLElBQUksQ0FBQzlDLGNBQWMsSUFBSSxDQUFDSCxPQUFPLElBQUlGLFdBQVcsRUFBRTtRQUNwRTtNQUNGO01BRUEsSUFBQW9ELGtCQUFBLEdBQWtEUixTQUFTLENBQUNPLE9BQU87UUFBM0RFLFNBQVMsR0FBQUQsa0JBQUEsQ0FBVEMsU0FBUztRQUFFQyxZQUFZLEdBQUFGLGtCQUFBLENBQVpFLFlBQVk7UUFBRUMsWUFBWSxHQUFBSCxrQkFBQSxDQUFaRyxZQUFZO01BQzdDLElBQU1DLGtCQUFrQixHQUFHRixZQUFZLEdBQUdELFNBQVMsR0FBR0UsWUFBWTs7TUFFbEU7TUFDQSxJQUFJQyxrQkFBa0IsR0FBRyxFQUFFLEVBQUU7UUFDM0JuRCxjQUFjLENBQUMsQ0FBQztNQUNsQjtJQUNGLENBQUM7O0lBRUQ7SUFDQSxJQUFNb0QsU0FBUyxHQUFHQyxVQUFVLENBQUMsWUFBTTtNQUNqQyxJQUFNQyxhQUFhLEdBQUdmLFNBQVMsQ0FBQ08sT0FBTztNQUN2QyxJQUFJUSxhQUFhLEVBQUU7UUFDakJBLGFBQWEsQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFFVixZQUFZLENBQUM7TUFDeEQ7SUFDRixDQUFDLEVBQUUsR0FBRyxDQUFDO0lBRVAsT0FBTyxZQUFNO01BQ1hXLFlBQVksQ0FBQ0osU0FBUyxDQUFDO01BQ3ZCLElBQU1FLGFBQWEsR0FBR2YsU0FBUyxDQUFDTyxPQUFPO01BQ3ZDLElBQUlRLGFBQWEsRUFBRTtRQUNqQkEsYUFBYSxDQUFDRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUVaLFlBQVksQ0FBQztNQUMzRDtJQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ25CLFVBQVUsRUFBRTFCLGNBQWMsRUFBRUgsT0FBTyxFQUFFRixXQUFXLENBQUMsQ0FBQztFQUV0RCxJQUFNK0QsV0FBVyxHQUFHN0gsT0FBTyxDQUFDLFlBQU07SUFBQSxJQUFBOEgsS0FBQTtJQUNoQyxJQUNFNUMsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRTZDLFVBQVUsSUFDekI3QyxhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFOEMsbUJBQW1CLElBQ2xDOUMsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRStDLGNBQWMsSUFDN0IvQyxhQUFhLGFBQWJBLGFBQWEsZUFBYkEsYUFBYSxDQUFFZ0Qsb0JBQW9CLEVBQ25DO01BQ0EsT0FBT2hELGFBQWE7SUFDdEI7SUFDQSxJQUFNaUQsUUFBUSxHQUFHM0UsTUFBTSxDQUFDNEUsSUFBSSxDQUMxQixVQUFBakQsS0FBSztNQUFBLE9BQ0gsQ0FBQ0EsS0FBSyxDQUFDNEMsVUFBVSxJQUFJLENBQUM1QyxLQUFLLENBQUM2QyxtQkFBbUIsSUFBSSxDQUFDN0MsS0FBSyxDQUFDOEMsY0FBYyxJQUFJOUMsS0FBSyxDQUFDa0QsRUFBRSxNQUFLbkQsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVtRCxFQUFFO0lBQUEsQ0FDOUcsQ0FBQztJQUNEO0lBQ0EsUUFBQVAsS0FBQSxHQUFPSyxRQUFRLGFBQVJBLFFBQVEsY0FBUkEsUUFBUSxHQUFJakQsYUFBYSxjQUFBNEMsS0FBQSxjQUFBQSxLQUFBLEdBQUksSUFBSTtFQUMxQyxDQUFDLEVBQUUsQ0FBQ3RFLE1BQU0sRUFBRTBCLGFBQWEsQ0FBQyxDQUFDO0VBRTNCLElBQU1vRCxpQkFBaUIsR0FBR3ZJLFdBQVcsQ0FDbkMsVUFBQ29GLEtBQVksRUFBSztJQUNoQkMsV0FBVyxDQUFDRCxLQUFLLENBQUM7SUFDbEJILGFBQWEsQ0FBQ2xELE1BQU0sQ0FBQ3lHLGlCQUFpQixFQUFFO01BQ3RDQyxVQUFVLEVBQUVyRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXNEO0lBQ3JCLENBQUMsQ0FBQztJQUNGM0MsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNwQlQsVUFBVSxDQUFDLElBQUksQ0FBQztJQUNoQkMsU0FBUyxhQUFUQSxTQUFTLGVBQVRBLFNBQVMsQ0FBRyxJQUFJLENBQUM7SUFDakJDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDYmlDLFVBQVUsQ0FBQyxZQUFNO01BQ2Z2RCxlQUFlLENBQUMsQ0FBQztNQUNqQjtNQUNBO01BQ0E7TUFDQSxJQUFNeUUsV0FBVyxHQUFHLENBQUF2RCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXNELElBQUksTUFBSyxPQUFPLEtBQUssQ0FBQXRELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFMkIsTUFBTSxNQUFLLFNBQVMsSUFBSSxDQUFBM0IsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUyQixNQUFNLE1BQUssUUFBUSxDQUFDO01BQzFHLElBQUksQ0FBQzRCLFdBQVcsRUFBRTtRQUNoQm5FLGVBQWUsYUFBZkEsZUFBZSxlQUFmQSxlQUFlLENBQUdZLEtBQUssQ0FBQztNQUMxQjtJQUNGLENBQUMsRUFBRSxHQUFHLENBQUM7RUFDVCxDQUFDLEVBQ0QsQ0FBQ0MsV0FBVyxFQUFFSixhQUFhLEVBQUVmLGVBQWUsRUFBRW9CLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVoQixlQUFlLENBQy9GLENBQUM7RUFFRCxJQUFNb0UsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQSxFQUFTO0lBQzlCLElBQUksQ0FBQzlDLFVBQVUsRUFBRTtNQUNmYixhQUFhLENBQUNsRCxNQUFNLENBQUM4RyxxQkFBcUIsQ0FBQztNQUMzQztNQUNBLElBQUl4RSxjQUFjLEVBQUU7UUFDbEJBLGNBQWMsQ0FBQyxDQUFDO01BQ2xCO0lBQ0Y7SUFDQTBCLGFBQWEsQ0FBQyxVQUFBK0MsSUFBSTtNQUFBLE9BQUksQ0FBQ0EsSUFBSTtJQUFBLEVBQUM7RUFDOUIsQ0FBQztFQUVEakosU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNpRyxVQUFVLElBQUksQ0FBQ08sY0FBYyxFQUFFO01BQ2xDLE9BQU9XLFNBQVM7SUFDbEI7SUFFQSxJQUFNK0Isa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBSUMsS0FBaUIsRUFBSztNQUNoRCxJQUFNQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0MsTUFBYztNQUNuQyxJQUFJbkQsVUFBVSxJQUFJRyxXQUFXLENBQUNpQixPQUFPLElBQUksQ0FBQ2pCLFdBQVcsQ0FBQ2lCLE9BQU8sQ0FBQ2dDLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDLEVBQUU7UUFDOUVsRCxhQUFhLENBQUMsS0FBSyxDQUFDO01BQ3RCO01BQ0EsSUFBSU0sY0FBYyxJQUFJSCxhQUFhLENBQUNnQixPQUFPLElBQUksQ0FBQ2hCLGFBQWEsQ0FBQ2dCLE9BQU8sQ0FBQ2dDLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDLEVBQUU7UUFDdEYzQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7TUFDMUI7SUFDRixDQUFDO0lBRUQ2QyxRQUFRLENBQUN4QixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVvQixrQkFBa0IsQ0FBQztJQUMxRCxPQUFPLFlBQU07TUFDWEksUUFBUSxDQUFDdEIsbUJBQW1CLENBQUMsV0FBVyxFQUFFa0Isa0JBQWtCLENBQUM7SUFDL0QsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDakQsVUFBVSxFQUFFTyxjQUFjLENBQUMsQ0FBQztFQUVoQyxJQUFNK0MsZ0JBQWdCLEdBQUdwSixXQUFXLENBQ2xDLFVBQUNxSixJQUE2QixFQUFLO0lBQ2pDcEUsYUFBYSxDQUFDbEQsTUFBTSxDQUFDdUgsbUJBQW1CLEVBQUU7TUFDeEN0RyxRQUFRLEVBQUVxRyxJQUFJLEtBQUs7SUFDckIsQ0FBQyxDQUFDO0lBQ0ZwRSxhQUFhLENBQUNsRCxNQUFNLENBQUN3SCx1QkFBdUIsRUFBRTtNQUFFQyxNQUFNLEVBQUVIO0lBQUssQ0FBQyxDQUFDO0lBQy9EdEcsa0JBQWtCLENBQUNzRyxJQUFJLENBQUM7SUFDeEIvQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7RUFDMUIsQ0FBQyxFQUNELENBQUNyQixhQUFhLEVBQUVsQyxrQkFBa0IsQ0FDcEMsQ0FBQztFQUVELElBQU0wRyxzQkFBc0IsR0FBR3ZILDRCQUE0QixDQUFDOEMsSUFBSSxFQUFFUyxPQUFPLENBQUM7RUFFMUUsSUFBTWlFLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVM7SUFDeEIsb0JBQ0VqSCxLQUFBLENBQUN4QixjQUFjO01BQ2IwSSxHQUFHLEVBQUUxRCxXQUFZO01BQ2pCLGdCQUFhLE1BQU07TUFDbkIyRCxPQUFPLEVBQUVuRyxNQUFNLENBQUNvRyxNQUFNLEdBQUdqQixpQkFBaUIsR0FBRzVCLFNBQVU7TUFDdkRzQixFQUFFLEVBQUMsOEJBQThCO01BQUF3QixRQUFBLGdCQUVqQ3ZILElBQUEsQ0FBQ3hCLG9CQUFvQjtRQUFBK0ksUUFBQSxlQUNuQnZILElBQUEsQ0FBQ3JDLE9BQU8sRUFBQTZKLGFBQUEsQ0FBQUEsYUFBQTtVQUNOQyxLQUFLLEVBQ0h2RCxnQkFBZ0IsZ0JBQ2RoRSxLQUFBO1lBQU13SCxLQUFLLEVBQUU7Y0FBRUMsT0FBTyxFQUFFLE1BQU07Y0FBRUMsVUFBVSxFQUFFLFFBQVE7Y0FBRUMsR0FBRyxFQUFFO1lBQU0sQ0FBRTtZQUFBTixRQUFBLEdBQ2hFLENBQUFoQyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRVksSUFBSSxNQUFLLFFBQVEsR0FBR1osV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUV1QyxLQUFLLGdCQUFHOUgsSUFBQSxDQUFDNUIsUUFBUSxJQUFFLENBQUMsRUFBQyxHQUFDLEVBQUNtSCxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXRCLElBQUk7VUFBQSxDQUNuRixDQUFDLEdBRVAsRUFFSDtVQUNEOEQsU0FBUyxFQUFFeEUsVUFBVSxHQUFHLE1BQU0sR0FBRztRQUFNLEdBQ2xDSixhQUFhLElBQUksSUFBSSxHQUFHO1VBQUU2RSxNQUFNLEVBQUU3RTtRQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7VUFBQW9FLFFBQUEsZUFFM0R2SCxJQUFBLENBQUN2Qix3QkFBd0I7WUFDdkIySSxHQUFHLEVBQUUzRCxZQUFhO1lBQ2xCd0UsY0FBYyxFQUNaLENBQUMsRUFBQ3JGLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUU2QyxVQUFVLEtBQUksQ0FBQyxFQUFDN0MsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRThDLG1CQUFtQixLQUFJLENBQUMsRUFBQzlDLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUUrQyxjQUFjLENBQ3ZHO1lBQUE0QixRQUFBLGVBRURySCxLQUFBO2NBQU13SCxLQUFLLEVBQUU7Z0JBQUVDLE9BQU8sRUFBRSxNQUFNO2dCQUFFQyxVQUFVLEVBQUUsUUFBUTtnQkFBRUMsR0FBRyxFQUFFO2NBQU0sQ0FBRTtjQUFBTixRQUFBLEdBQ2hFLENBQUFoQyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRVksSUFBSSxNQUFLLFFBQVEsR0FBR1osV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUV1QyxLQUFLLGdCQUFHOUgsSUFBQSxDQUFDNUIsUUFBUSxJQUFFLENBQUMsRUFBQyxHQUFDLEVBQUNtSCxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXRCLElBQUk7WUFBQSxDQUNuRjtVQUFDLENBQ2lCO1FBQUMsRUFDcEI7TUFBQyxDQUNVLENBQUMsZUFDdkJqRSxJQUFBLENBQUNwQixrQkFBa0I7UUFBQTJJLFFBQUEsZUFDakJ2SCxJQUFBLENBQUNuQyxXQUFXO1VBQUNxSyxLQUFLLEVBQUUsRUFBRztVQUFDQyxNQUFNLEVBQUUsRUFBRztVQUFDQyxLQUFLLEVBQUM7UUFBUyxDQUFFO01BQUMsQ0FDcEMsQ0FBQyxFQUNwQjdFLFVBQVUsaUJBQ1R2RCxJQUFBLENBQUNuQixtQkFBbUI7UUFBQTBJLFFBQUEsZUFDbEJySCxLQUFBLENBQUNwQiwwQkFBMEI7VUFBQXlJLFFBQUEsR0FDeEJjLE1BQU0sQ0FBQ0MsMkJBQTJCLElBQUksQ0FBQ3BCLHNCQUFzQixpQkFDNURsSCxJQUFBLENBQUFJLFNBQUE7WUFBQW1ILFFBQUEsRUFDSSxZQUFNO2NBQ04sSUFBTWdCLFdBQVcsR0FBR2xFLGlCQUFpQixDQUFDQyxNQUFNLENBQUMsVUFBQ2tFLEVBQVM7Z0JBQUEsT0FBS0EsRUFBRSxDQUFDckMsSUFBSSxLQUFLLE9BQU87Y0FBQSxFQUFDO2NBQ2hGLElBQUksQ0FBQ29DLFdBQVcsQ0FBQ2pCLE1BQU0sRUFBRSxPQUFPLElBQUk7Y0FDcEMsb0JBQ0VwSCxLQUFBLENBQUFFLFNBQUE7Z0JBQUFtSCxRQUFBLGdCQUNFckgsS0FBQSxDQUFDZixZQUFZO2tCQUFBb0ksUUFBQSxnQkFDWHZILElBQUEsQ0FBQzVCLFFBQVEsSUFBRSxDQUFDLGVBQ1o0QixJQUFBLENBQUNqQiwrQkFBK0I7b0JBQUMwSixPQUFPO29CQUFBbEIsUUFBQSxFQUFDO2tCQUFXLENBQWlDLENBQUM7Z0JBQUEsQ0FDMUUsQ0FBQyxlQUNmdkgsSUFBQSxDQUFDaEIsY0FBYyxJQUFFLENBQUMsRUFFakJ1SixXQUFXLENBQUNHLEdBQUcsQ0FBQyxVQUFDQyxVQUFVLEVBQUVDLEtBQUs7a0JBQUEsb0JBQ2pDNUksSUFBQSxDQUFDMUIsaUJBQWlCO29CQUVoQnVFLEtBQUssRUFBRThGLFVBQVc7b0JBQ2xCQyxLQUFLLEVBQUVBLEtBQU07b0JBQ2I1QyxpQkFBaUIsRUFBRUEsaUJBQWtCO29CQUNyQzZDLFVBQVUsRUFBRSxDQUFBakcsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVtRCxFQUFFLE1BQUs0QyxVQUFVLENBQUM1QyxFQUFHO29CQUNoRCtDLE1BQU07b0JBQ05DLGdCQUFnQixFQUFFbkg7a0JBQWMsWUFBQW9ILE1BQUEsQ0FObEJMLFVBQVUsQ0FBQzVDLEVBQUUsQ0FPNUIsQ0FBQztnQkFBQSxDQUNILENBQUM7Y0FBQSxDQUNGLENBQUM7WUFFUCxDQUFDLENBQUU7VUFBQyxDQUNKLENBQ0gsRUFDQTFCLGlCQUFpQixDQUFDNEUsSUFBSSxDQUFDLFVBQUFwRyxLQUFLO1lBQUEsT0FBSUEsS0FBSyxDQUFDc0QsSUFBSSxLQUFLLFFBQVE7VUFBQSxFQUFDLElBQ3ZEa0MsTUFBTSxDQUFDYSx3Q0FBd0MsaUJBQzdDaEosS0FBQSxDQUFBRSxTQUFBO1lBQUFtSCxRQUFBLGdCQUNFckgsS0FBQSxDQUFDbkIsK0JBQStCO2NBQUF3SSxRQUFBLEdBQzdCL0UsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE1BQUksRUFBQ0MsSUFBSSxDQUFDMEcsT0FBTztZQUFBLENBQ0MsQ0FBQyxlQUNsQ25KLElBQUEsQ0FBQ2hCLGNBQWMsSUFBRSxDQUFDO1VBQUEsQ0FDbEIsQ0FDSCxlQUNIa0IsS0FBQSxDQUFDakIsaUJBQWlCO1lBQUN5QyxPQUFPLEVBQUVBLE9BQVE7WUFBQzBILFdBQVcsRUFBRS9FLGlCQUFpQixDQUFDaUQsTUFBTztZQUFDRixHQUFHLEVBQUVoRCxTQUFVO1lBQUFtRCxRQUFBLEdBQ3hGbEQsaUJBQWlCLGFBQWpCQSxpQkFBaUIsdUJBQWpCQSxpQkFBaUIsQ0FBRXFFLEdBQUcsQ0FBQyxVQUFDN0YsS0FBSyxFQUFFK0YsS0FBSyxFQUFLO2NBQ3hDLElBQ0UvRixLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFNEMsVUFBVSxJQUNqQjVDLEtBQUssYUFBTEEsS0FBSyxlQUFMQSxLQUFLLENBQUU2QyxtQkFBbUIsSUFDMUI3QyxLQUFLLGFBQUxBLEtBQUssZUFBTEEsS0FBSyxDQUFFOEMsY0FBYyxJQUNyQixDQUFBOUMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVzRCxJQUFJLE1BQUssT0FBTyxJQUN0QixDQUFBdEQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVzRCxJQUFJLE1BQUssUUFBUSxJQUFJLENBQUNrQyxNQUFNLENBQUNhLHdDQUF5QyxFQUU5RSxPQUFPLElBQUk7Y0FDYixvQkFDRWxKLElBQUEsQ0FBQzFCLGlCQUFpQjtnQkFFaEJ1RSxLQUFLLEVBQUVBLEtBQU07Z0JBQ2IrRixLQUFLLEVBQUVBLEtBQU07Z0JBQ2I1QyxpQkFBaUIsRUFBRUEsaUJBQWtCO2dCQUNyQzZDLFVBQVUsRUFBRSxDQUFBakcsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVtRCxFQUFFLE1BQUtsRCxLQUFLLENBQUNrRCxFQUFHO2dCQUMzQ2dELGdCQUFnQixFQUFFbkgsYUFBYztnQkFDaEM0QixhQUFhLEVBQUVBO2NBQWMsWUFBQXdGLE1BQUEsQ0FOZm5HLEtBQUssQ0FBQ2tELEVBQUUsQ0FPdkIsQ0FBQztZQUVOLENBQUMsQ0FBQyxFQUNEdkUsV0FBVyxpQkFDVnhCLElBQUEsQ0FBQ2Qsb0JBQW9CO2NBQUFxSSxRQUFBLGVBQ25CdkgsSUFBQSxDQUFDSCxNQUFNO2dCQUFDd0osSUFBSSxFQUFDO2NBQU8sQ0FBRTtZQUFDLENBQ0gsQ0FDdkI7VUFBQSxDQUNnQixDQUFDO1FBQUEsQ0FDTTtNQUFDLENBQ1YsQ0FDdEI7SUFBQSxDQUNhLENBQUM7RUFFckIsQ0FBQztFQUVELElBQU1DLGdCQUFnQixHQUFHMUcsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUUyRyxrQkFBa0I7RUFDMUQsSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQTVHLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFdUQsSUFBSSxNQUFLLFFBQVE7RUFDMUQsSUFBTXNELG9CQUFvQixHQUN4QixDQUFDckksUUFBUSxJQUNULENBQUNFLE9BQU8sSUFDUixDQUFDVSxpQkFBaUIsSUFDbEIsQ0FBQyxDQUFDWSxhQUFhLEtBQ2QsQ0FBQyxDQUFDeUYsTUFBTSxDQUFDYSx3Q0FBd0MsSUFBSSxDQUFDLENBQUNiLE1BQU0sQ0FBQ0MsMkJBQTJCLENBQUM7RUFFN0Ysb0JBQ0VwSSxLQUFBLENBQUMzQixZQUFZO0lBQ1htTCxTQUFTLEVBQUV0SSxRQUFTO0lBQ3BCdUksUUFBUSxFQUFFckksT0FBUTtJQUNsQnNJLFVBQVUsRUFBRSxDQUFDLENBQUMxSSxNQUFNLENBQUNvRyxNQUFPO0lBQzVCdUMsYUFBYSxFQUFFbEosU0FBUyxHQUFHQyxXQUFXLEdBQUc2RCxTQUFVO0lBQ25EcUYsYUFBYSxFQUFFbkosU0FBUyxHQUFHRSxVQUFVLEdBQUc0RCxTQUFVO0lBQ2xEc0YsV0FBVyxFQUFFcEosU0FBUyxHQUFHRyxTQUFTLEdBQUcyRCxTQUFVO0lBQy9DdUYsZUFBZSxFQUFFckosU0FBUyxHQUFHRyxTQUFTLEdBQUcyRCxTQUFVO0lBQ25Ed0Ysb0JBQW9CLEVBQUV0SixTQUFTLEdBQUdHLFNBQVMsR0FBRzJELFNBQVU7SUFDeERpRCxLQUFLLEVBQUU7TUFBRXdDLE1BQU0sRUFBRXZKLFNBQVMsR0FBRyxNQUFNLEdBQUc4RCxTQUFTO01BQUUwRixXQUFXLEVBQUV4SixTQUFTLEdBQUcsY0FBYyxHQUFHOEQ7SUFBVSxDQUFFO0lBQUE4QyxRQUFBLEdBRXRHa0Msb0JBQW9CLEdBQUd0QyxXQUFXLENBQUMsQ0FBQyxnQkFBR25ILElBQUEsVUFBTSxDQUFDLGVBQy9DRSxLQUFBLENBQUN2QixvQkFBb0I7TUFBQyxnQkFBYSxNQUFNO01BQUE0SSxRQUFBLEdBQ3RDcEYsY0FBYyxpQkFDYmpDLEtBQUEsQ0FBQ1gsaUJBQWlCO1FBQ2hCNEcsSUFBSSxFQUFDLFFBQVE7UUFDYmtCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7VUFDYjNFLGFBQWEsQ0FBQ2xELE1BQU0sQ0FBQzRLLFVBQVUsQ0FBQztVQUNoQy9ILE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBRTtRQUFBa0YsUUFBQSxnQkFFRnZILElBQUEsQ0FBQ2xDLFdBQVc7VUFBQ29LLEtBQUssRUFBRSxFQUFHO1VBQUNDLE1BQU0sRUFBRSxFQUFHO1VBQUNDLEtBQUssRUFBQztRQUFTLENBQUUsQ0FBQyxFQUNyRDVGLENBQUMsQ0FBQyxNQUFNLENBQUM7TUFBQSxDQUNPLENBQ3BCLEVBQ0FnSCxpQkFBaUIsSUFBSUYsZ0JBQWdCLGlCQUFJdEosSUFBQSxDQUFDSixPQUFPO1FBQUN5SyxLQUFLLEVBQUVmLGdCQUFpQjtRQUFDN0ksUUFBUSxFQUFFQTtNQUFTLENBQUUsQ0FBQyxlQUNsR1AsS0FBQSxDQUFDZCx1QkFBdUI7UUFBQ2dJLEdBQUcsRUFBRXpELGFBQWM7UUFBQyxnQkFBYSxNQUFNO1FBQUE0RCxRQUFBLGdCQUM5RHZILElBQUEsQ0FBQzdCLFVBQVU7VUFDVG1NLFFBQVEsRUFBQyxzQkFBc0I7VUFDL0JDLFdBQVcsRUFBRSxTQUFiQSxXQUFXQSxDQUFBLEVBQVE7WUFDakIsSUFBSSxDQUFDekcsY0FBYyxFQUFFO2NBQ25CcEIsYUFBYSxDQUFDbEQsTUFBTSxDQUFDZ0wscUJBQXFCLENBQUM7WUFDN0M7WUFDQXpHLGlCQUFpQixDQUFDLFVBQUF3QyxJQUFJO2NBQUEsT0FBSSxDQUFDQSxJQUFJO1lBQUEsRUFBQztVQUNsQyxDQUFFO1VBQ0ZrRSxPQUFPLEVBQUVqSSxDQUFDLENBQUMsbUJBQW1CLENBQUU7VUFDaENrSSxjQUFjLEVBQUU1RyxjQUFlO1VBQy9CWCxhQUFhLEVBQUVBLGFBQWM7VUFBQW9FLFFBQUEsZUFFN0J2SCxJQUFBLENBQUMzQixzQkFBc0IsSUFBRTtRQUFDLENBQ2hCLENBQUMsRUFDWnlGLGNBQWMsZ0JBQ2I1RCxLQUFBLENBQUNiLHNCQUFzQjtVQUFDc0wsSUFBSSxFQUFDLE1BQU07VUFBQXBELFFBQUEsZ0JBQ2pDdkgsSUFBQSxDQUFDVixvQkFBb0I7WUFDbkI2RyxJQUFJLEVBQUMsUUFBUTtZQUNieUUsT0FBTyxFQUFFckssVUFBVSxLQUFLLFNBQVU7WUFDbEM4RyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtjQUFBLE9BQVFSLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUFBLENBQUM7WUFBQVUsUUFBQSxFQUUxQy9FLENBQUMsQ0FBQyxlQUFlO1VBQUMsQ0FDQyxDQUFDLGVBQ3ZCeEMsSUFBQSxDQUFDVixvQkFBb0I7WUFDbkI2RyxJQUFJLEVBQUMsUUFBUTtZQUNieUUsT0FBTyxFQUFFckssVUFBVSxLQUFLLFlBQWE7WUFDckM4RyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtjQUFBLE9BQVFSLGdCQUFnQixDQUFDLFlBQVksQ0FBQztZQUFBLENBQUM7WUFBQVUsUUFBQSxFQUU3Qy9FLENBQUMsQ0FBQyxrQkFBa0I7VUFBQyxDQUNGLENBQUMsZUFDdkJ4QyxJQUFBLENBQUNWLG9CQUFvQjtZQUNuQjZHLElBQUksRUFBQyxRQUFRO1lBQ2J5RSxPQUFPLEVBQUVySyxVQUFVLEtBQUssVUFBVztZQUNuQzhHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2NBQUEsT0FBUVIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1lBQUEsQ0FBQztZQUFBVSxRQUFBLEVBRTNDL0UsQ0FBQyxDQUFDLGdCQUFnQjtVQUFDLENBQ0EsQ0FBQztRQUFBLENBQ0QsQ0FBQyxHQUN2QixJQUFJO01BQUEsQ0FDZSxDQUFDLGVBQzFCeEMsSUFBQSxDQUFDN0IsVUFBVTtRQUFDb00sV0FBVyxFQUFFdkosV0FBWTtRQUFDeUosT0FBTyxFQUFFakksQ0FBQyxDQUFDLGVBQWUsQ0FBRTtRQUFDVyxhQUFhLEVBQUVBLGFBQWM7UUFBQW9FLFFBQUEsZUFDOUZ2SCxJQUFBLENBQUNwQyxLQUFLLElBQUU7TUFBQyxDQUNDLENBQUM7SUFBQSxDQUNPLENBQUM7RUFBQSxDQUNYLENBQUM7QUFFbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -37,7 +37,8 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
37
37
  var _useGlobalContext = useGlobalContext(),
38
38
  selectAgent = _useGlobalContext.selectAgent,
39
39
  setProject = _useGlobalContext.setProject,
40
- setClient = _useGlobalContext.setClient;
40
+ setClient = _useGlobalContext.setClient,
41
+ setTask = _useGlobalContext.setTask;
41
42
  var _useSnackBarManager = useSnackBarManager(),
42
43
  handleSnackbarSuccess = _useSnackBarManager.handleSnackbarSuccess,
43
44
  handleSnackbarError = _useSnackBarManager.handleSnackbarError;
@@ -98,6 +99,7 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
98
99
  var handleUseAgent = function handleUseAgent(agent) {
99
100
  setProject(null);
100
101
  setClient === null || setClient === void 0 || setClient(null);
102
+ setTask(null);
101
103
  selectAgent(agent);
102
104
  onBack();
103
105
  };
@@ -361,4 +363,4 @@ export var ChatAIMyAgents = function ChatAIMyAgents(_ref) {
361
363
  }) : null]
362
364
  });
363
365
  };
364
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJkZWxldGVBZ2VudCIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJTRUNUSU9OUyIsIkxvYWRlciIsIkZhZGUiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NNQUJvZHkiLCJTQ01BQ2FyZEJvZHkiLCJTQ01BQ2FyZEJ1dHRvbiIsIlNDTUFDYXJkRm9vdGVyIiwiU0NNQUNhcmRIZWFkZXIiLCJTQ01BQ2FyZFRvcFJvdyIsIlNDTUFDYXJkSW50cm9UZXh0IiwiU0NNQUNhcmRNZW51IiwiU0NNQUNhcmRNZW51SXRlbSIsIlNDTUFDYXJkTWVudUl0ZW1zIiwiU0NNQUZhdm9yaXRlQnV0dG9uIiwiU0NNQUZhdm9yaXRlU3RhcldyYXAiLCJTQ01BQ2FyZEZvb3RlckRhdGUiLCJTQ01BQ2FyZFRpdGxlRW1vamkiLCJTQ01BQ2FyZFRpdGxlTmFtZSIsIlNDTUFDYXJkc091dGVyIiwiU0NNQUNhcmRzUm93IiwiU0NNQUVtcHR5U3RhdGVSb290IiwiU0NNQUVtcHR5U3RhdGVDb2x1bW4iLCJTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01BRW1wdHlTdGF0ZVRpdGxlIiwiU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSIsIlNDTUFFbXB0eVN0YXRlQnV0dG9uIiwiU0NNQUtlYmFiQnV0dG9uIiwiU0NNQUxvYWRNb3JlV3JhcHBlciIsIlNDTUFNeUFnZW50c0NvbnRhaW5lciIsIlNDTUFUaXRsZSIsIlNDTUFUaXRsZUlubmVyIiwiU0NNQVRpdGxlV3JhcCIsIlNDTUFBY3Rpb25zUm93IiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0IiwiTUFJQUlzb2xvZ28iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlBZ2VudHMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkJhY2siLCJhZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiX3JlZiRoYXNNb3JlQWdlbnRzIiwiaGFzTW9yZUFnZW50cyIsIl9yZWYkbG9hZGluZ01vcmVBZ2VudCIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJTdWNjZXNzIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsImN1c3RvbUFnZW50cyIsImZpbHRlciIsImFnZW50IiwidHlwZSIsImlzX2RlbGV0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJtZW51T3BlbkZvckFnZW50SWQiLCJzZXRNZW51T3BlbkZvckFnZW50SWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImFnZW50VG9EZWxldGUiLCJzZXRBZ2VudFRvRGVsZXRlIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjYW5DcmVhdGVBZ2VudCIsImNyZWF0ZSIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5FZGl0IiwiZWRpdCIsImNhbkRlbGV0ZSIsImNhblNob3dNZW51IiwiX3VzZVRvZ2dsZUZhdm9yaXRlIiwidG9nZ2xlRmF2b3JpdGUiLCJldmVudEFtcGxpdHVkZSIsIm9wZW5DcmVhdGVBZ2VudE1vZGFsIiwib3Blbk1vZGFsIiwib3B0aW9uIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsInZhbHVlcyIsImlzRWRpdGluZyIsImlzT3BlbiIsImhhbmRsZUVtcHR5U3RhdGVQcmltYXJ5QWN0aW9uIiwidXNlTWFya2V0cGxhY2VNYWlha2VyIiwiTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSIiwiaGFuZGxlTG9hZE1vcmUiLCJkZWxldGVNb2RhbENoYXQiLCJ0aXRsZSIsIm5hbWUiLCJpZCIsImhhbmRsZVVzZUFnZW50Iiwibm9ybWFsaXplVGV4dCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0Q3JlYXRlZEF0TGFiZWwiLCJjcmVhdGVkQXQiLCJjcmVhdGVkX2F0IiwiY3JlYXRlZEF0RGF0ZSIsIkRhdGUiLCJOdW1iZXIiLCJpc05hTiIsImdldFRpbWUiLCJkaWZmTXMiLCJub3ciLCJkYXlNcyIsImRheXMiLCJNYXRoIiwibWF4IiwiZmxvb3IiLCJoYW5kbGVPcGVuRWRpdEFnZW50Iiwia25vd2xlZGdlIiwiZ2VuZXJhbCIsImhhbmRsZVRvZ2dsZUZhdm9yaXRlIiwiZXZlbnQiLCJpc0Zhdm9yaXRlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ1cGRhdGVkQWdlbnQiLCJ1bmRlZmluZWQiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImNoYXQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibnMiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJvblNjcm9sbCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsInNjcm9sbEhlaWdodCIsIm5lYXJCb3R0b20iLCJsZW5ndGgiLCIkaGFzQWdlbnRzIiwiY2hpbGRyZW4iLCIkY2FuQ3JlYXRlQWdlbnQiLCJvbkNsaWNrIiwibWFwIiwiaW5kZXgiLCJfYWdlbnQkZW1vamkiLCIkaW5kZXgiLCJlbW9qaSIsInRyaW0iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiaW50cm9kdWN0aW9uIiwiaXNfZmF2b3JpdGUiLCIkYWx3YXlzVmlzaWJsZSIsImZpbGwiLCJ2YXJpYW50IiwiY2xhc3NOYW1lIiwic2l6ZSIsIm9uQ2xvc2UiLCJoYW5kbGVycyIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTXlBZ2VudHMvQ2hhdEFJTXlBZ2VudHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFN0YXIgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9TdGFyJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBkZWxldGVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2RlbGV0ZUFnZW50J1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4uLy4uL2F0b21zL0ZhZGUnXG5pbXBvcnQgeyB1c2VUb2dnbGVGYXZvcml0ZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHtcbiAgU0NNQUJvZHksXG4gIFNDTUFDYXJkQm9keSxcbiAgU0NNQUNhcmRCdXR0b24sXG4gIFNDTUFDYXJkRm9vdGVyLFxuICBTQ01BQ2FyZEhlYWRlcixcbiAgU0NNQUNhcmRUb3BSb3csXG4gIFNDTUFDYXJkSW50cm9UZXh0LFxuICBTQ01BQ2FyZE1lbnUsXG4gIFNDTUFDYXJkTWVudUl0ZW0sXG4gIFNDTUFDYXJkTWVudUl0ZW1zLFxuICBTQ01BRmF2b3JpdGVCdXR0b24sXG4gIFNDTUFGYXZvcml0ZVN0YXJXcmFwLFxuICBTQ01BQ2FyZEZvb3RlckRhdGUsXG4gIFNDTUFDYXJkVGl0bGVFbW9qaSxcbiAgU0NNQUNhcmRUaXRsZU5hbWUsXG4gIFNDTUFDYXJkc091dGVyLFxuICBTQ01BQ2FyZHNSb3csXG4gIFNDTUFFbXB0eVN0YXRlUm9vdCxcbiAgU0NNQUVtcHR5U3RhdGVDb2x1bW4sXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGVCbG9jayxcbiAgU0NNQUVtcHR5U3RhdGVUaXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNQUVtcHR5U3RhdGVCdXR0b24sXG4gIFNDTUFLZWJhYkJ1dHRvbixcbiAgU0NNQUxvYWRNb3JlV3JhcHBlcixcbiAgU0NNQU15QWdlbnRzQ29udGFpbmVyLFxuICBTQ01BVGl0bGUsXG4gIFNDTUFUaXRsZUlubmVyLFxuICBTQ01BVGl0bGVXcmFwLFxuICBTQ01BQWN0aW9uc1JvdyxcbiAgU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbixcbiAgU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQsXG59IGZyb20gJy4vQ2hhdEFJTXlBZ2VudHMuc3R5bGVzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcblxudHlwZSBDaGF0QUlNeUFnZW50c1Byb3BzID0ge1xuICBvbkJhY2s6ICgpID0+IHZvaWRcbiAgYWdlbnRzOiBBZ2VudFtdXG4gIG9uRGVsZXRlQWdlbnQ/OiAoYWdlbnRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT86IChhZ2VudDogQWdlbnQpID0+IHZvaWRcbiAgaGFzTW9yZUFnZW50cz86IGJvb2xlYW5cbiAgbG9hZGluZ01vcmVBZ2VudHM/OiBib29sZWFuXG4gIG9uTG9hZE1vcmVBZ2VudHM/OiAoKSA9PiB2b2lkXG4gIG9uR29Ub01haWFrZXI/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPlxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTXlBZ2VudHMgPSAoe1xuICBvbkJhY2ssXG4gIGFnZW50cyxcbiAgb25EZWxldGVBZ2VudCxcbiAgb25GYXZvcml0ZUFnZW50VXBkYXRlLFxuICBoYXNNb3JlQWdlbnRzID0gZmFsc2UsXG4gIGxvYWRpbmdNb3JlQWdlbnRzID0gZmFsc2UsXG4gIG9uTG9hZE1vcmVBZ2VudHMsXG4gIG9uR29Ub01haWFrZXIsXG59OiBDaGF0QUlNeUFnZW50c1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmNoYXRBSSwgU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgc2VsZWN0QWdlbnQsIHNldFByb2plY3QsIHNldENsaWVudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJTdWNjZXNzLCBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuICBjb25zdCBjdXN0b21BZ2VudHMgPSBhZ2VudHMuZmlsdGVyKGFnZW50ID0+IGFnZW50LnR5cGUgPT09ICdjdXN0b20nICYmICFhZ2VudC5pc19kZWxldGVkKVxuICBjb25zdCBbbWVudU9wZW5Gb3JBZ2VudElkLCBzZXRNZW51T3BlbkZvckFnZW50SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FnZW50VG9EZWxldGUsIHNldEFnZW50VG9EZWxldGVdID0gdXNlU3RhdGU8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50ID0gISF1c2VyUGVybWlzc2lvbnM/LmNyZWF0ZSAmJiAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhbkVkaXQgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZWRpdCAmJiAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhbkRlbGV0ZSA9ICEhdXNlclBlcm1pc3Npb25zPy5kZWxldGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5TaG93TWVudSA9IGNhbkVkaXQgfHwgY2FuRGVsZXRlXG4gIGNvbnN0IHsgdG9nZ2xlRmF2b3JpdGUgfSA9IHVzZVRvZ2dsZUZhdm9yaXRlKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3Qgb3BlbkNyZWF0ZUFnZW50TW9kYWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLm9wZW5Nb2RhbCwgeyBvcHRpb246ICdjcmVhdGVfYWdlbnQnIH0pXG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICB9LCBbZXZlbnRBbXBsaXR1ZGVdKVxuXG4gIGNvbnN0IGhhbmRsZUVtcHR5U3RhdGVQcmltYXJ5QWN0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHVzZU1hcmtldHBsYWNlTWFpYWtlciA9ICEhd2luZG93Lk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiAmJiB0eXBlb2Ygb25Hb1RvTWFpYWtlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgIGlmICh1c2VNYXJrZXRwbGFjZU1haWFrZXIpIHtcbiAgICAgIG9uR29Ub01haWFrZXIoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG9wZW5DcmVhdGVBZ2VudE1vZGFsKClcbiAgfSwgW29uR29Ub01haWFrZXIsIG9wZW5DcmVhdGVBZ2VudE1vZGFsXSlcblxuICBjb25zdCBoYW5kbGVMb2FkTW9yZSA9ICgpID0+IHtcbiAgICBpZiAoIW9uTG9hZE1vcmVBZ2VudHMgfHwgIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvbkxvYWRNb3JlQWdlbnRzKClcbiAgfVxuXG4gIGNvbnN0IGRlbGV0ZU1vZGFsQ2hhdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGFnZW50VG9EZWxldGUgPyB7IHRpdGxlOiBhZ2VudFRvRGVsZXRlLm5hbWUsIGlkOiBhZ2VudFRvRGVsZXRlLmlkIH0gOiBudWxsKSxcbiAgICBbYWdlbnRUb0RlbGV0ZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVVzZUFnZW50ID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIHNldFByb2plY3QobnVsbClcbiAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgIHNlbGVjdEFnZW50KGFnZW50KVxuICAgIG9uQmFjaygpXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVUZXh0ID0gKHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gdmFsdWVbMF0gfHwgJydcbiAgICByZXR1cm4gdmFsdWUgfHwgJydcbiAgfVxuXG4gIGNvbnN0IGdldENyZWF0ZWRBdExhYmVsID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IChhZ2VudCBhcyBBZ2VudCAmIHsgY3JlYXRlZF9hdD86IHN0cmluZyB9KS5jcmVhdGVkX2F0XG4gICAgaWYgKCFjcmVhdGVkQXQpIHJldHVybiAnJ1xuXG4gICAgY29uc3QgY3JlYXRlZEF0RGF0ZSA9IG5ldyBEYXRlKGNyZWF0ZWRBdClcbiAgICBpZiAoTnVtYmVyLmlzTmFOKGNyZWF0ZWRBdERhdGUuZ2V0VGltZSgpKSkgcmV0dXJuICcnXG5cbiAgICBjb25zdCBkaWZmTXMgPSBEYXRlLm5vdygpIC0gY3JlYXRlZEF0RGF0ZS5nZXRUaW1lKClcbiAgICBjb25zdCBkYXlNcyA9IDEwMDAgKiA2MCAqIDYwICogMjRcbiAgICBjb25zdCBkYXlzID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihkaWZmTXMgLyBkYXlNcykpXG5cbiAgICBpZiAoZGF5cyA9PT0gMCkgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzVG9kYXknKVxuICAgIGlmIChkYXlzID09PSAxKSByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNPbmVEYXlBZ28nKVxuICAgIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0RheXNBZ28nLCB7IGRheXMgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5FZGl0QWdlbnQgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnYWJtLWFnZW50LW1vZGFsLXNldC12YWx1ZXMnLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgaXNFZGl0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICBrbm93bGVkZ2U6IGFnZW50Py5rbm93bGVkZ2UgfHwgW10sXG4gICAgICAgICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhZ2VudC5uYW1lLFxuICAgICAgICAgICAgICAgIGlkOiBhZ2VudC5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKVxuICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlRmF2b3JpdGUgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+LCBhZ2VudDogQWdlbnQsIGlzRmF2b3JpdGU6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgIHRvZ2dsZUZhdm9yaXRlKFxuICAgICAgYWdlbnQuaWQsXG4gICAgICB1cGRhdGVkQWdlbnQgPT4ge1xuICAgICAgICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/Lih1cGRhdGVkQWdlbnQpXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaXNGYXZvcml0ZVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGVsZXRlQWdlbnQoY2hhdC5pZClcbiAgICAgIGhhbmRsZVNuYWNrYmFyU3VjY2Vzcyh0KCdjb25maXJtQWdlbnREZWxldGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgICBvbkRlbGV0ZUFnZW50Py4oY2hhdC5pZClcbiAgICAgIHNldEFnZW50VG9EZWxldGUobnVsbClcbiAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2Vycm9yQWdlbnRDcmVhdGVkJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSkpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JBZ2VudElkKSB7XG4gICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFttZW51T3BlbkZvckFnZW50SWRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSByZXR1cm5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBjbGllbnRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBuZWFyQm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDQwXG4gICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgfVxuICB9LCBbaGFzTW9yZUFnZW50cywgbG9hZGluZ01vcmVBZ2VudHMsIG9uTG9hZE1vcmVBZ2VudHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215LWFnZW50cy1zY3JvbGwtY29udGFpbmVyJylcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhaGFzTW9yZUFnZW50cyB8fCBsb2FkaW5nTW9yZUFnZW50cykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGlmIChjb250YWluZXIuc2Nyb2xsSGVpZ2h0IDw9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQgKyAxKSB7XG4gICAgICBoYW5kbGVMb2FkTW9yZSgpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW2N1c3RvbUFnZW50cy5sZW5ndGgsIGhhc01vcmVBZ2VudHMsIGxvYWRpbmdNb3JlQWdlbnRzLCBvbkxvYWRNb3JlQWdlbnRzXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ01BTXlBZ2VudHNDb250YWluZXIgaWQ9XCJteS1hZ2VudHMtc2Nyb2xsLWNvbnRhaW5lclwiICRoYXNBZ2VudHM9eyEhY3VzdG9tQWdlbnRzLmxlbmd0aH0+XG4gICAgICA8TUFJQUlzb2xvZ28gLz5cblxuICAgICAgPFNDTUFCb2R5ICRjYW5DcmVhdGVBZ2VudD17Y2FuQ3JlYXRlQWdlbnR9PlxuICAgICAgICB7Y3VzdG9tQWdlbnRzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNQVRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01BVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTUFUaXRsZT57dCgnbWFya2V0cGxhY2UubXlBZ2VudHNSZWFkeVRpdGxlJyl9PC9TQ01BVGl0bGU+XG4gICAgICAgICAgICA8L1NDTUFUaXRsZUlubmVyPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ID8gKFxuICAgICAgICAgICAgICA8U0NNQUFjdGlvbnNSb3c+XG4gICAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29wZW5DcmVhdGVBZ2VudE1vZGFsfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ3JlYXRlTWFudWFsQnV0dG9uVGV4dD57dCgnbWFya2V0cGxhY2UuY3JlYXRlQWdlbnQnKX08L1NDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9TQ01BQWN0aW9uc1Jvdz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQVRpdGxlV3JhcD5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge2N1c3RvbUFnZW50cy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTUFDYXJkc091dGVyPlxuICAgICAgICAgICAgPFNDTUFDYXJkc1Jvdz5cbiAgICAgICAgICAgICAge2N1c3RvbUFnZW50cy5tYXAoKGFnZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJ1dHRvbiBrZXk9e2FnZW50LmlkfSAkaW5kZXg9e2luZGV4fSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gaGFuZGxlVXNlQWdlbnQoYWdlbnQpfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlRW1vamkgYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YWdlbnQuZW1vamk/LnRyaW0oKSA/IGFnZW50LmVtb2ppIDogJ1xcdTAwYTAnfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUaXRsZUVtb2ppPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ21hcmtldHBsYWNlLmNhcmRNZW51QXJpYUxhYmVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51T3BlbkZvckFnZW50SWQocHJldiA9PiAocHJldiA9PT0gYWdlbnQuaWQgPyBudWxsIDogYWdlbnQuaWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjOTk5XCIgd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BS2ViYWJCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZFRpdGxlTmFtZT57YWdlbnQubmFtZX08L1NDTUFDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEludHJvVGV4dD57bm9ybWFsaXplVGV4dChhZ2VudC5pbnRyb2R1Y3Rpb24pfTwvU0NNQUNhcmRJbnRyb1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAge2dldENyZWF0ZWRBdExhYmVsKGFnZW50KSB8fCB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0ZhbGxiYWNrRGF0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRGb290ZXJEYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YWdlbnQuaXNfZmF2b3JpdGUgPyB0KCdhZ2VudHMucmVtb3ZlRmF2b3JpdGUnKSA6IHQoJ2FnZW50cy5hZGRGYXZvcml0ZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx3YXlzVmlzaWJsZT17ISFhZ2VudC5pc19mYXZvcml0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4gaGFuZGxlVG9nZ2xlRmF2b3JpdGUoZXZlbnQsIGFnZW50LCAhIWFnZW50LmlzX2Zhdm9yaXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFGYXZvcml0ZVN0YXJXcmFwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2FnZW50LmlzX2Zhdm9yaXRlID8gJyNGRkM2MjQnIDogJyM5OTknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD17YWdlbnQuaXNfZmF2b3JpdGUgPyAnI0ZGQzYyNCcgOiAnbm9uZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic29saWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXthZ2VudC5pc19mYXZvcml0ZSA/ICcnIDogJ3N0YXItZmF2b3JpdGUtaWNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVTdGFyV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUZhdm9yaXRlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCb2R5PlxuICAgICAgICAgICAgICAgICAge21lbnVPcGVuRm9yQWdlbnRJZCA9PT0gYWdlbnQuaWQgJiYgY2FuU2hvd01lbnUgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2FuRWRpdCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVPcGVuRWRpdEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZWRpdCcsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5EZWxldGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWdlbnRUb0RlbGV0ZShhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ2RlbGV0ZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01BQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01BQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVUaXRsZScpfTwvU0NNQUVtcHR5U3RhdGVUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgICAgIHtjYW5DcmVhdGVBZ2VudFxuICAgICAgICAgICAgICAgICAgICA/IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgICAgICAgICAgOiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybScpfVxuICAgICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50ID8gKFxuICAgICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZUVtcHR5U3RhdGVQcmltYXJ5QWN0aW9ufT5cbiAgICAgICAgICAgICAgICB7dCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgKX1cbiAgICAgICAge2xvYWRpbmdNb3JlQWdlbnRzID8gKFxuICAgICAgICAgIDxTQ01BTG9hZE1vcmVXcmFwcGVyPlxuICAgICAgICAgICAgPEZhZGU+XG4gICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgIDwvRmFkZT5cbiAgICAgICAgICA8L1NDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ01BQm9keT5cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QWdlbnRUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBhY3Rpb249XCJhZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTUFNeUFnZW50c0NvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBRW5ELFNBQVNDLFdBQVcsUUFBUSwyQ0FBMkM7QUFDdkUsU0FBU0Msa0JBQWtCLFFBQVEsc0RBQXNEO0FBQ3pGLFNBQVNDLG1CQUFtQixRQUFRLHlEQUF5RDtBQUM3RixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTQyxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFDbEQsU0FBU0Ms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
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiTWVudURvdHMiLCJTdGFyIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJkZWxldGVBZ2VudCIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJTRUNUSU9OUyIsIkxvYWRlciIsIkZhZGUiLCJ1c2VUb2dnbGVGYXZvcml0ZSIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NNQUJvZHkiLCJTQ01BQ2FyZEJvZHkiLCJTQ01BQ2FyZEJ1dHRvbiIsIlNDTUFDYXJkRm9vdGVyIiwiU0NNQUNhcmRIZWFkZXIiLCJTQ01BQ2FyZFRvcFJvdyIsIlNDTUFDYXJkSW50cm9UZXh0IiwiU0NNQUNhcmRNZW51IiwiU0NNQUNhcmRNZW51SXRlbSIsIlNDTUFDYXJkTWVudUl0ZW1zIiwiU0NNQUZhdm9yaXRlQnV0dG9uIiwiU0NNQUZhdm9yaXRlU3RhcldyYXAiLCJTQ01BQ2FyZEZvb3RlckRhdGUiLCJTQ01BQ2FyZFRpdGxlRW1vamkiLCJTQ01BQ2FyZFRpdGxlTmFtZSIsIlNDTUFDYXJkc091dGVyIiwiU0NNQUNhcmRzUm93IiwiU0NNQUVtcHR5U3RhdGVSb290IiwiU0NNQUVtcHR5U3RhdGVDb2x1bW4iLCJTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01BRW1wdHlTdGF0ZVRpdGxlIiwiU0NNQUVtcHR5U3RhdGVTdWJ0aXRsZSIsIlNDTUFFbXB0eVN0YXRlQnV0dG9uIiwiU0NNQUtlYmFiQnV0dG9uIiwiU0NNQUxvYWRNb3JlV3JhcHBlciIsIlNDTUFNeUFnZW50c0NvbnRhaW5lciIsIlNDTUFUaXRsZSIsIlNDTUFUaXRsZUlubmVyIiwiU0NNQVRpdGxlV3JhcCIsIlNDTUFBY3Rpb25zUm93IiwiU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiIsIlNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0IiwiTUFJQUlzb2xvZ28iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlBZ2VudHMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkJhY2siLCJhZ2VudHMiLCJvbkRlbGV0ZUFnZW50Iiwib25GYXZvcml0ZUFnZW50VXBkYXRlIiwiX3JlZiRoYXNNb3JlQWdlbnRzIiwiaGFzTW9yZUFnZW50cyIsIl9yZWYkbG9hZGluZ01vcmVBZ2VudCIsImxvYWRpbmdNb3JlQWdlbnRzIiwib25Mb2FkTW9yZUFnZW50cyIsIm9uR29Ub01haWFrZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJjaGF0QUkiLCJhYm1BZ2VudCIsInQiLCJ1c2VyIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyU3VjY2VzcyIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJjdXN0b21BZ2VudHMiLCJmaWx0ZXIiLCJhZ2VudCIsInR5cGUiLCJpc19kZWxldGVkIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVudU9wZW5Gb3JBZ2VudElkIiwic2V0TWVudU9wZW5Gb3JBZ2VudElkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJhZ2VudFRvRGVsZXRlIiwic2V0QWdlbnRUb0RlbGV0ZSIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY2FuQ3JlYXRlQWdlbnQiLCJjcmVhdGUiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwiY2FuRWRpdCIsImVkaXQiLCJjYW5EZWxldGUiLCJjYW5TaG93TWVudSIsIl91c2VUb2dnbGVGYXZvcml0ZSIsInRvZ2dsZUZhdm9yaXRlIiwiZXZlbnRBbXBsaXR1ZGUiLCJvcGVuQ3JlYXRlQWdlbnRNb2RhbCIsIm9wZW5Nb2RhbCIsIm9wdGlvbiIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiYWdlbnRWYWx1ZXMiLCJ2YWx1ZXMiLCJpc0VkaXRpbmciLCJpc09wZW4iLCJoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbiIsInVzZU1hcmtldHBsYWNlTWFpYWtlciIsIk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiIsImhhbmRsZUxvYWRNb3JlIiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJuYW1lIiwiaWQiLCJoYW5kbGVVc2VBZ2VudCIsIm5vcm1hbGl6ZVRleHQiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImdldENyZWF0ZWRBdExhYmVsIiwiY3JlYXRlZEF0IiwiY3JlYXRlZF9hdCIsImNyZWF0ZWRBdERhdGUiLCJEYXRlIiwiTnVtYmVyIiwiaXNOYU4iLCJnZXRUaW1lIiwiZGlmZk1zIiwibm93IiwiZGF5TXMiLCJkYXlzIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaGFuZGxlT3BlbkVkaXRBZ2VudCIsImtub3dsZWRnZSIsImdlbmVyYWwiLCJoYW5kbGVUb2dnbGVGYXZvcml0ZSIsImV2ZW50IiwiaXNGYXZvcml0ZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidXBkYXRlZEFnZW50IiwidW5kZWZpbmVkIiwiaGFuZGxlQ29uZmlybURlbGV0ZSIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJjaGF0IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm5zIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVDbGlja091dHNpZGUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbnRhaW5lciIsImdldEVsZW1lbnRCeUlkIiwib25TY3JvbGwiLCJzY3JvbGxUb3AiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJuZWFyQm90dG9tIiwibGVuZ3RoIiwiJGhhc0FnZW50cyIsImNoaWxkcmVuIiwiJGNhbkNyZWF0ZUFnZW50Iiwib25DbGljayIsIm1hcCIsImluZGV4IiwiX2FnZW50JGVtb2ppIiwiJGluZGV4IiwiZW1vamkiLCJ0cmltIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsImludHJvZHVjdGlvbiIsImlzX2Zhdm9yaXRlIiwiJGFsd2F5c1Zpc2libGUiLCJmaWxsIiwidmFyaWFudCIsImNsYXNzTmFtZSIsInNpemUiLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiYWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15QWdlbnRzL0NoYXRBSU15QWdlbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBTdGFyIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvU3RhcidcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgZGVsZXRlQWdlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9kZWxldGVBZ2VudCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IEZhZGUgfSBmcm9tICcuLi8uLi9hdG9tcy9GYWRlJ1xuaW1wb3J0IHsgdXNlVG9nZ2xlRmF2b3JpdGUgfSBmcm9tICcuLi8uLi8uLi9ob29rcydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIFNDTUFCb2R5LFxuICBTQ01BQ2FyZEJvZHksXG4gIFNDTUFDYXJkQnV0dG9uLFxuICBTQ01BQ2FyZEZvb3RlcixcbiAgU0NNQUNhcmRIZWFkZXIsXG4gIFNDTUFDYXJkVG9wUm93LFxuICBTQ01BQ2FyZEludHJvVGV4dCxcbiAgU0NNQUNhcmRNZW51LFxuICBTQ01BQ2FyZE1lbnVJdGVtLFxuICBTQ01BQ2FyZE1lbnVJdGVtcyxcbiAgU0NNQUZhdm9yaXRlQnV0dG9uLFxuICBTQ01BRmF2b3JpdGVTdGFyV3JhcCxcbiAgU0NNQUNhcmRGb290ZXJEYXRlLFxuICBTQ01BQ2FyZFRpdGxlRW1vamksXG4gIFNDTUFDYXJkVGl0bGVOYW1lLFxuICBTQ01BQ2FyZHNPdXRlcixcbiAgU0NNQUNhcmRzUm93LFxuICBTQ01BRW1wdHlTdGF0ZVJvb3QsXG4gIFNDTUFFbXB0eVN0YXRlQ29sdW1uLFxuICBTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2ssXG4gIFNDTUFFbXB0eVN0YXRlVGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlU3VidGl0bGUsXG4gIFNDTUFFbXB0eVN0YXRlQnV0dG9uLFxuICBTQ01BS2ViYWJCdXR0b24sXG4gIFNDTUFMb2FkTW9yZVdyYXBwZXIsXG4gIFNDTUFNeUFnZW50c0NvbnRhaW5lcixcbiAgU0NNQVRpdGxlLFxuICBTQ01BVGl0bGVJbm5lcixcbiAgU0NNQVRpdGxlV3JhcCxcbiAgU0NNQUFjdGlvbnNSb3csXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b24sXG4gIFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0LFxufSBmcm9tICcuL0NoYXRBSU15QWdlbnRzLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5cbnR5cGUgQ2hhdEFJTXlBZ2VudHNQcm9wcyA9IHtcbiAgb25CYWNrOiAoKSA9PiB2b2lkXG4gIGFnZW50czogQWdlbnRbXVxuICBvbkRlbGV0ZUFnZW50PzogKGFnZW50SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkZhdm9yaXRlQWdlbnRVcGRhdGU/OiAoYWdlbnQ6IEFnZW50KSA9PiB2b2lkXG4gIGhhc01vcmVBZ2VudHM/OiBib29sZWFuXG4gIGxvYWRpbmdNb3JlQWdlbnRzPzogYm9vbGVhblxuICBvbkxvYWRNb3JlQWdlbnRzPzogKCkgPT4gdm9pZFxuICBvbkdvVG9NYWlha2VyPzogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU15QWdlbnRzID0gKHtcbiAgb25CYWNrLFxuICBhZ2VudHMsXG4gIG9uRGVsZXRlQWdlbnQsXG4gIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZSxcbiAgaGFzTW9yZUFnZW50cyA9IGZhbHNlLFxuICBsb2FkaW5nTW9yZUFnZW50cyA9IGZhbHNlLFxuICBvbkxvYWRNb3JlQWdlbnRzLFxuICBvbkdvVG9NYWlha2VyLFxufTogQ2hhdEFJTXlBZ2VudHNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFtTRUNUSU9OUy5jaGF0QUksIFNFQ1RJT05TLmFibUFnZW50XSlcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyU3VjY2VzcywgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgY3VzdG9tQWdlbnRzID0gYWdlbnRzLmZpbHRlcihhZ2VudCA9PiBhZ2VudC50eXBlID09PSAnY3VzdG9tJyAmJiAhYWdlbnQuaXNfZGVsZXRlZClcbiAgY29uc3QgW21lbnVPcGVuRm9yQWdlbnRJZCwgc2V0TWVudU9wZW5Gb3JBZ2VudElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudFRvRGVsZXRlLCBzZXRBZ2VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudCA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGUgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5FZGl0ID0gISF1c2VyUGVybWlzc2lvbnM/LmVkaXQgJiYgISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5EZWxldGUgPSAhIXVzZXJQZXJtaXNzaW9ucz8uZGVsZXRlICYmICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuU2hvd01lbnUgPSBjYW5FZGl0IHx8IGNhbkRlbGV0ZVxuICBjb25zdCB7IHRvZ2dsZUZhdm9yaXRlIH0gPSB1c2VUb2dnbGVGYXZvcml0ZSgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IG9wZW5DcmVhdGVBZ2VudE1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnY3JlYXRlX2FnZW50JyB9KVxuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIClcbiAgfSwgW2V2ZW50QW1wbGl0dWRlXSlcblxuICBjb25zdCBoYW5kbGVFbXB0eVN0YXRlUHJpbWFyeUFjdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCB1c2VNYXJrZXRwbGFjZU1haWFrZXIgPSAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVIgJiYgdHlwZW9mIG9uR29Ub01haWFrZXIgPT09ICdmdW5jdGlvbidcbiAgICBpZiAodXNlTWFya2V0cGxhY2VNYWlha2VyKSB7XG4gICAgICBvbkdvVG9NYWlha2VyKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBvcGVuQ3JlYXRlQWdlbnRNb2RhbCgpXG4gIH0sIFtvbkdvVG9NYWlha2VyLCBvcGVuQ3JlYXRlQWdlbnRNb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgaWYgKCFvbkxvYWRNb3JlQWdlbnRzIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgb25Mb2FkTW9yZUFnZW50cygpXG4gIH1cblxuICBjb25zdCBkZWxldGVNb2RhbENoYXQgPSB1c2VNZW1vKFxuICAgICgpID0+IChhZ2VudFRvRGVsZXRlID8geyB0aXRsZTogYWdlbnRUb0RlbGV0ZS5uYW1lLCBpZDogYWdlbnRUb0RlbGV0ZS5pZCB9IDogbnVsbCksXG4gICAgW2FnZW50VG9EZWxldGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVVc2VBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICBzZXRUYXNrKG51bGwpXG4gICAgc2VsZWN0QWdlbnQoYWdlbnQpXG4gICAgb25CYWNrKClcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZVRleHQgPSAodmFsdWU/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZVswXSB8fCAnJ1xuICAgIHJldHVybiB2YWx1ZSB8fCAnJ1xuICB9XG5cbiAgY29uc3QgZ2V0Q3JlYXRlZEF0TGFiZWwgPSAoYWdlbnQ6IEFnZW50KSA9PiB7XG4gICAgY29uc3QgY3JlYXRlZEF0ID0gKGFnZW50IGFzIEFnZW50ICYgeyBjcmVhdGVkX2F0Pzogc3RyaW5nIH0pLmNyZWF0ZWRfYXRcbiAgICBpZiAoIWNyZWF0ZWRBdCkgcmV0dXJuICcnXG5cbiAgICBjb25zdCBjcmVhdGVkQXREYXRlID0gbmV3IERhdGUoY3JlYXRlZEF0KVxuICAgIGlmIChOdW1iZXIuaXNOYU4oY3JlYXRlZEF0RGF0ZS5nZXRUaW1lKCkpKSByZXR1cm4gJydcblxuICAgIGNvbnN0IGRpZmZNcyA9IERhdGUubm93KCkgLSBjcmVhdGVkQXREYXRlLmdldFRpbWUoKVxuICAgIGNvbnN0IGRheU1zID0gMTAwMCAqIDYwICogNjAgKiAyNFxuICAgIGNvbnN0IGRheXMgPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKGRpZmZNcyAvIGRheU1zKSlcblxuICAgIGlmIChkYXlzID09PSAwKSByZXR1cm4gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNUb2RheScpXG4gICAgaWYgKGRheXMgPT09IDEpIHJldHVybiB0KCdtYXJrZXRwbGFjZS5teUFnZW50c09uZURheUFnbycpXG4gICAgcmV0dXJuIHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRGF5c0FnbycsIHsgZGF5cyB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkVkaXRBZ2VudCA9IChhZ2VudDogQWdlbnQpID0+IHtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgYWdlbnRWYWx1ZXM6IHtcbiAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICBpc0VkaXRpbmc6IHRydWUsXG4gICAgICAgICAgICAgIGtub3dsZWRnZTogYWdlbnQ/Lmtub3dsZWRnZSB8fCBbXSxcbiAgICAgICAgICAgICAgZ2VuZXJhbDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFnZW50Lm5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IGFnZW50LmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApXG4gICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVGYXZvcml0ZSA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4sIGFnZW50OiBBZ2VudCwgaXNGYXZvcml0ZTogYm9vbGVhbikgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgdG9nZ2xlRmF2b3JpdGUoXG4gICAgICBhZ2VudC5pZCxcbiAgICAgIHVwZGF0ZWRBZ2VudCA9PiB7XG4gICAgICAgIG9uRmF2b3JpdGVBZ2VudFVwZGF0ZT8uKHVwZGF0ZWRBZ2VudClcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpc0Zhdm9yaXRlXG4gICAgKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybURlbGV0ZSA9IGFzeW5jIChjaGF0OiB7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBkZWxldGVBZ2VudChjaGF0LmlkKVxuICAgICAgaGFuZGxlU25hY2tiYXJTdWNjZXNzKHQoJ2NvbmZpcm1BZ2VudERlbGV0ZWQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KSlcbiAgICAgIG9uRGVsZXRlQWdlbnQ/LihjaGF0LmlkKVxuICAgICAgc2V0QWdlbnRUb0RlbGV0ZShudWxsKVxuICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKG51bGwpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnZXJyb3JBZ2VudENyZWF0ZWQnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9ICgpID0+IHtcbiAgICAgIGlmIChtZW51T3BlbkZvckFnZW50SWQpIHtcbiAgICAgICAgc2V0TWVudU9wZW5Gb3JBZ2VudElkKG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW21lbnVPcGVuRm9yQWdlbnRJZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXktYWdlbnRzLXNjcm9sbC1jb250YWluZXInKVxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWhhc01vcmVBZ2VudHMgfHwgbG9hZGluZ01vcmVBZ2VudHMpIHJldHVyblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIGNsaWVudEhlaWdodCwgc2Nyb2xsSGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICAgIGNvbnN0IG5lYXJCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gNDBcbiAgICAgIGlmIChuZWFyQm90dG9tKSB7XG4gICAgICAgIGhhbmRsZUxvYWRNb3JlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbClcbiAgICB9XG4gIH0sIFtoYXNNb3JlQWdlbnRzLCBsb2FkaW5nTW9yZUFnZW50cywgb25Mb2FkTW9yZUFnZW50c10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXktYWdlbnRzLXNjcm9sbC1jb250YWluZXInKVxuICAgIGlmICghY29udGFpbmVyIHx8ICFoYXNNb3JlQWdlbnRzIHx8IGxvYWRpbmdNb3JlQWdlbnRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5lci5zY3JvbGxIZWlnaHQgPD0gY29udGFpbmVyLmNsaWVudEhlaWdodCArIDEpIHtcbiAgICAgIGhhbmRsZUxvYWRNb3JlKClcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbY3VzdG9tQWdlbnRzLmxlbmd0aCwgaGFzTW9yZUFnZW50cywgbG9hZGluZ01vcmVBZ2VudHMsIG9uTG9hZE1vcmVBZ2VudHNdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDTUFNeUFnZW50c0NvbnRhaW5lciBpZD1cIm15LWFnZW50cy1zY3JvbGwtY29udGFpbmVyXCIgJGhhc0FnZW50cz17ISFjdXN0b21BZ2VudHMubGVuZ3RofT5cbiAgICAgIDxNQUlBSXNvbG9nbyAvPlxuXG4gICAgICA8U0NNQUJvZHkgJGNhbkNyZWF0ZUFnZW50PXtjYW5DcmVhdGVBZ2VudH0+XG4gICAgICAgIHtjdXN0b21BZ2VudHMubGVuZ3RoID8gKFxuICAgICAgICAgIDxTQ01BVGl0bGVXcmFwPlxuICAgICAgICAgICAgPFNDTUFUaXRsZUlubmVyPlxuICAgICAgICAgICAgICA8U0NNQVRpdGxlPnt0KCdtYXJrZXRwbGFjZS5teUFnZW50c1JlYWR5VGl0bGUnKX08L1NDTUFUaXRsZT5cbiAgICAgICAgICAgIDwvU0NNQVRpdGxlSW5uZXI+XG4gICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnQgPyAoXG4gICAgICAgICAgICAgIDxTQ01BQWN0aW9uc1Jvdz5cbiAgICAgICAgICAgICAgICA8U0NNQUNyZWF0ZU1hbnVhbEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b3BlbkNyZWF0ZUFnZW50TW9kYWx9PlxuICAgICAgICAgICAgICAgICAgPFNDTUFDcmVhdGVNYW51YWxCdXR0b25UZXh0Pnt0KCdtYXJrZXRwbGFjZS5jcmVhdGVBZ2VudCcpfTwvU0NNQUNyZWF0ZU1hbnVhbEJ1dHRvblRleHQ+XG4gICAgICAgICAgICAgICAgPC9TQ01BQ3JlYXRlTWFudWFsQnV0dG9uPlxuICAgICAgICAgICAgICA8L1NDTUFBY3Rpb25zUm93PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TQ01BVGl0bGVXcmFwPlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7Y3VzdG9tQWdlbnRzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNQUNhcmRzT3V0ZXI+XG4gICAgICAgICAgICA8U0NNQUNhcmRzUm93PlxuICAgICAgICAgICAgICB7Y3VzdG9tQWdlbnRzLm1hcCgoYWdlbnQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPFNDTUFDYXJkQnV0dG9uIGtleT17YWdlbnQuaWR9ICRpbmRleD17aW5kZXh9IHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVVc2VBZ2VudChhZ2VudCl9PlxuICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVGl0bGVFbW9qaSBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthZ2VudC5lbW9qaT8udHJpbSgpID8gYWdlbnQuZW1vamkgOiAnXFx1MDBhMCd9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZFRpdGxlRW1vamk+XG4gICAgICAgICAgICAgICAgICAgICAge2NhblNob3dNZW51ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFLZWJhYkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnbWFya2V0cGxhY2UuY2FyZE1lbnVBcmlhTGFiZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1lbnVPcGVuRm9yQWdlbnRJZChwcmV2ID0+IChwcmV2ID09PSBhZ2VudC5pZCA/IG51bGwgOiBhZ2VudC5pZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51RG90cyBjb2xvcj1cIiM5OTlcIiB3aWR0aD17MTV9IGhlaWdodD17MTV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFLZWJhYkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkVGl0bGVOYW1lPnthZ2VudC5uYW1lfTwvU0NNQUNhcmRUaXRsZU5hbWU+XG4gICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkSW50cm9UZXh0Pntub3JtYWxpemVUZXh0KGFnZW50LmludHJvZHVjdGlvbil9PC9TQ01BQ2FyZEludHJvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZEZvb3RlckRhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Z2V0Q3JlYXRlZEF0TGFiZWwoYWdlbnQpIHx8IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRmFsbGJhY2tEYXRlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEZvb3RlckRhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2FnZW50LmlzX2Zhdm9yaXRlID8gdCgnYWdlbnRzLnJlbW92ZUZhdm9yaXRlJykgOiB0KCdhZ2VudHMuYWRkRmF2b3JpdGUnKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUZhdm9yaXRlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthZ2VudC5pc19mYXZvcml0ZSA/IHQoJ2FnZW50cy5yZW1vdmVGYXZvcml0ZScpIDogdCgnYWdlbnRzLmFkZEZhdm9yaXRlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRhbHdheXNWaXNpYmxlPXshIWFnZW50LmlzX2Zhdm9yaXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBoYW5kbGVUb2dnbGVGYXZvcml0ZShldmVudCwgYWdlbnQsICEhYWdlbnQuaXNfZmF2b3JpdGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUZhdm9yaXRlU3RhcldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsxNn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17YWdlbnQuaXNfZmF2b3JpdGUgPyAnI0ZGQzYyNCcgOiAnIzk5OSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXthZ2VudC5pc19mYXZvcml0ZSA/ICcjRkZDNjI0JyA6ICdub25lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2FnZW50LmlzX2Zhdm9yaXRlID8gJycgOiAnc3Rhci1mYXZvcml0ZS1pY29uJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDTUFGYXZvcml0ZVN0YXJXcmFwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01BRmF2b3JpdGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTUFDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICB7bWVudU9wZW5Gb3JBZ2VudElkID09PSBhZ2VudC5pZCAmJiBjYW5TaG93TWVudSA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01BQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5FZGl0ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NNQUNhcmRNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5FZGl0QWdlbnQoYWdlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCdlZGl0JywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAge2NhbkRlbGV0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDTUFDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBZ2VudFRvRGVsZXRlKGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgnZGVsZXRlJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNQUNhcmRNZW51PlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ01BQ2FyZEJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDTUFDYXJkc1Jvdz5cbiAgICAgICAgICA8L1NDTUFDYXJkc091dGVyPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICAgICA8U0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICAgICAgPFNDTUFFbXB0eVN0YXRlVGl0bGU+e3QoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlJyl9PC9TQ01BRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICAgICAge2NhbkNyZWF0ZUFnZW50XG4gICAgICAgICAgICAgICAgICAgID8gdCgnbWFya2V0cGxhY2UubXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb24nKVxuICAgICAgICAgICAgICAgICAgICA6IHQoJ21hcmtldHBsYWNlLm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtJyl9XG4gICAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZVN1YnRpdGxlPlxuICAgICAgICAgICAgICA8L1NDTUFFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVDb2x1bW4+XG4gICAgICAgICAgICB7Y2FuQ3JlYXRlQWdlbnQgPyAoXG4gICAgICAgICAgICAgIDxTQ01BRW1wdHlTdGF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlRW1wdHlTdGF0ZVByaW1hcnlBY3Rpb259PlxuICAgICAgICAgICAgICAgIHt0KCdtYXJrZXRwbGFjZS5teUFnZW50c0VtcHR5U3RhdGVCdXR0b24nKX1cbiAgICAgICAgICAgICAgPC9TQ01BRW1wdHlTdGF0ZUJ1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NNQUVtcHR5U3RhdGVSb290PlxuICAgICAgICApfVxuICAgICAgICB7bG9hZGluZ01vcmVBZ2VudHMgPyAoXG4gICAgICAgICAgPFNDTUFMb2FkTW9yZVdyYXBwZXI+XG4gICAgICAgICAgICA8RmFkZT5cbiAgICAgICAgICAgICAgPExvYWRlciBzaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgPC9GYWRlPlxuICAgICAgICAgIDwvU0NNQUxvYWRNb3JlV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDTUFCb2R5PlxuICAgICAge2RlbGV0ZU1vZGFsQ2hhdCA/IChcbiAgICAgICAgPERlbGV0ZVF1ZXN0aW9uTW9kYWxcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBZ2VudFRvRGVsZXRlKG51bGwpfVxuICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlLFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIGFjdGlvbj1cImFnZW50XCJcbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvU0NNQU15QWdlbnRzQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFFbkQsU0FBU0MsV0FBVyxRQUFRLDJDQUEyQztBQUN2RSxTQUFTQyxrQkFBa0IsUUFBUSxzREFBc0Q7QUFDekYsU0FBU0MsbUJBQW1CLFFBQVEseURBQXlEO0FBQzdGLFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFDcEQsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxJQUFJLFFBQVEsa0JBQWtCO0FBQ3ZD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
@@ -13,10 +13,12 @@ export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
13
13
  var handlers = _ref.handlers;
14
14
  var _useGlobalContext = useGlobalContext(),
15
15
  setProject = _useGlobalContext.setProject,
16
+ setTask = _useGlobalContext.setTask,
16
17
  agent = _useGlobalContext.agent;
17
18
  var user = useUser();
18
19
  var welcomeMessage = (_agent$welcome_messag = agent === null || agent === void 0 || (_agent$welcome_messag2 = agent.welcome_message) === null || _agent$welcome_messag2 === void 0 || (_agent$welcome_messag2 = _agent$welcome_messag2.replace(/\{\{name\}\}/g, (_user$firstName = user === null || user === void 0 ? void 0 : user.firstName) !== null && _user$firstName !== void 0 ? _user$firstName : '')) === null || _agent$welcome_messag2 === void 0 ? void 0 : _agent$welcome_messag2.replace(/\\n/g, '\n')) !== null && _agent$welcome_messag !== void 0 ? _agent$welcome_messag : '';
19
20
  var handleProjectSelected = function handleProjectSelected(selectedProject) {
21
+ setTask(null);
20
22
  setProject(selectedProject);
21
23
  handlers();
22
24
  };
@@ -43,4 +45,4 @@ export var ChatAIProjectSelector = function ChatAIProjectSelector(_ref) {
43
45
  })
44
46
  });
45
47
  };
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VHbG9iYWxDb250ZXh0IiwiUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3RvckxvZ29XcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50IiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSIsIlNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyIsIk1BSUFJc29sb2dvIiwidXNlVXNlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnMiIsIl91c2VyJGZpcnN0TmFtZSIsImhhbmRsZXJzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZXRQcm9qZWN0IiwiYWdlbnQiLCJ1c2VyIiwid2VsY29tZU1lc3NhZ2UiLCJ3ZWxjb21lX21lc3NhZ2UiLCJyZXBsYWNlIiwiZmlyc3ROYW1lIiwiaGFuZGxlUHJvamVjdFNlbGVjdGVkIiwic2VsZWN0ZWRQcm9qZWN0IiwiY2hpbGRyZW4iLCJzdHlsZSIsIndoaXRlU3BhY2UiLCJvblByb2plY3RTZWxlY3RlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlQcm9qZWN0U2VsZWN0b3IvQ2hhdEFJUHJvamVjdFNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IFByb2plY3RTZWxlY3RvciB9IGZyb20gJy4uLy4uL2F0b21zL1Byb2plY3RTZWxlY3RvcidcbmltcG9ydCB7XG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9ySWNvbkNvbnRhaW5lcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcixcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50LFxuICBTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGUsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyxcbn0gZnJvbSAnLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3Iuc3R5bGVzJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG50eXBlIENoYXRBSVByb2plY3RTZWxlY3RvclByb3BzID0ge1xuICBoYW5kbGVyczogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJUHJvamVjdFNlbGVjdG9yID0gKHsgaGFuZGxlcnMgfTogQ2hhdEFJUHJvamVjdFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZXRQcm9qZWN0LCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcblxuICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9XG4gICAgYWdlbnQ/LndlbGNvbWVfbWVzc2FnZT8ucmVwbGFjZSgvXFx7XFx7bmFtZVxcfVxcfS9nLCB1c2VyPy5maXJzdE5hbWUgPz8gJycpPy5yZXBsYWNlKC9cXFxcbi9nLCAnXFxuJykgPz8gJydcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0U2VsZWN0ZWQgPSAoc2VsZWN0ZWRQcm9qZWN0OiBhbnkpID0+IHtcbiAgICBzZXRQcm9qZWN0KHNlbGVjdGVkUHJvamVjdClcbiAgICBoYW5kbGVycygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXI+XG4gICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXI+XG4gICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXI+XG4gICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JJY29uQ29udGFpbmVyPlxuICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50PlxuICAgICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSBzdHlsZT17eyB3aGl0ZVNwYWNlOiAncHJlLWxpbmUnIH19Pnt3ZWxjb21lTWVzc2FnZX08L1NDQ0FJUHJvamVjdFNlbGVjdG9yVGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvclRleHRDb250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgICAgIDxQcm9qZWN0U2VsZWN0b3Igb25Qcm9qZWN0U2VsZWN0ZWQ9e2hhbmRsZVByb2plY3RTZWxlY3RlZH0gLz5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucz5cbiAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvckNvbnRlbnQ+XG4gICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGFpbmVyPlxuICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FDRUMsMkJBQTJCLEVBQzNCQyw2QkFBNkIsRUFDN0JDLGlDQUFpQyxFQUNqQ0MsK0JBQStCLEVBQy9CQywyQkFBMkIsRUFDM0JDLGlDQUFpQyxFQUNqQ0MseUJBQXlCLEVBQ3pCQywyQkFBMkIsUUFDdEIsZ0NBQWdDO0FBQ3ZDLFNBQVNDLFdBQVcsUUFBUSxtQkFBbUI7QUFDL0MsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFNbkQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBQyxJQUFBLEVBQWlEO0VBQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMsZUFBQTtFQUFBLElBQTNDQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtFQUM5QyxJQUFBQyxpQkFBQSxHQUE4QnRCLGdCQUFnQixDQUFDLENBQUM7SUFBeEN1QixVQUFVLEdBQUFELGlCQUFBLENBQVZDLFVBQVU7SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0VBQ3pCLElBQU1DLElBQUksR0FBR2QsT0FBTyxDQUFDLENBQUM7RUFFdEIsSUFBTWUsY0FBYyxJQUFBUixxQkFBQSxHQUNsQk0sS0FBSyxhQUFMQSxLQUFLLGdCQUFBTCxzQkFBQSxHQUFMSyxLQUFLLENBQUVHLGVBQWUsY0FBQVIsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQXRCQSxzQkFBQSxDQUF3QlMsT0FBTyxDQUFDLGVBQWUsR0FBQVIsZUFBQSxHQUFFSyxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRUksU0FBUyxjQUFBVCxlQUFBLGNBQUFBLGVBQUEsR0FBSSxFQUFFLENBQUMsY0FBQUQsc0JBQUEsdUJBQXZFQSxzQkFBQSxDQUF5RVMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBQVYscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxFQUFFO0VBRXRHLElBQU1ZLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLGVBQW9CLEVBQUs7SUFDdERSLFVBQVUsQ0FBQ1EsZUFBZSxDQUFDO0lBQzNCVixRQUFRLENBQUMsQ0FBQztFQUNaLENBQUM7RUFFRCxvQkFDRVIsSUFBQSxDQUFDWCwyQkFBMkI7SUFBQThCLFFBQUEsZUFDMUJqQixLQUFBLENBQUNaLDZCQUE2QjtNQUFBNkIsUUFBQSxnQkFDNUJuQixJQUFBLENBQUNULGlDQUFpQztRQUFBNEIsUUFBQSxlQUNoQ25CLElBQUEsQ0FBQ1IsK0JBQStCO1VBQUEyQixRQUFBLGVBQzlCbkIsSUFBQSxDQUFDSCxXQUFXLElBQUU7UUFBQyxDQUNnQjtNQUFDLENBQ0QsQ0FBQyxlQUNwQ0ssS0FBQSxDQUFDVCwyQkFBMkI7UUFBQTBCLFFBQUEsZ0JBQzFCbkIsSUFBQSxDQUFDTixpQ0FBaUM7VUFBQXlCLFFBQUEsZUFDaENuQixJQUFBLENBQUNMLHlCQUF5QjtZQUFDeUIsS0FBSyxFQUFFO2NBQUVDLFVBQVUsRUFBRTtZQUFXLENBQUU7WUFBQUYsUUFBQSxFQUFFTjtVQUFjLENBQTRCO1FBQUMsQ0FDekUsQ0FBQyxlQUNwQ2IsSUFBQSxDQUFDSiwyQkFBMkI7VUFBQXVCLFFBQUEsZUFDMUJuQixJQUFBLENBQUNaLGVBQWU7WUFBQ2tDLGlCQUFpQixFQUFFTDtVQUFzQixDQUFFO1FBQUMsQ0FDbEMsQ0FBQztNQUFBLENBQ0gsQ0FBQztJQUFBLENBQ0Q7RUFBQyxDQUNMLENBQUM7QUFFbEMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VHbG9iYWxDb250ZXh0IiwiUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JXcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIiLCJTQ0NBSVByb2plY3RTZWxlY3RvckxvZ29XcmFwcGVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250ZW50IiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyIiwiU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZSIsIlNDQ0FJUHJvamVjdFNlbGVjdG9yQWN0aW9ucyIsIk1BSUFJc29sb2dvIiwidXNlVXNlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGF0QUlQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnIiwiX2FnZW50JHdlbGNvbWVfbWVzc2FnMiIsIl91c2VyJGZpcnN0TmFtZSIsImhhbmRsZXJzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZXRQcm9qZWN0Iiwic2V0VGFzayIsImFnZW50IiwidXNlciIsIndlbGNvbWVNZXNzYWdlIiwid2VsY29tZV9tZXNzYWdlIiwicmVwbGFjZSIsImZpcnN0TmFtZSIsImhhbmRsZVByb2plY3RTZWxlY3RlZCIsInNlbGVjdGVkUHJvamVjdCIsImNoaWxkcmVuIiwic3R5bGUiLCJ3aGl0ZVNwYWNlIiwib25Qcm9qZWN0U2VsZWN0ZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJUHJvamVjdFNlbGVjdG9yL0NoYXRBSVByb2plY3RTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBQcm9qZWN0U2VsZWN0b3IgfSBmcm9tICcuLi8uLi9hdG9tcy9Qcm9qZWN0U2VsZWN0b3InXG5pbXBvcnQge1xuICBTQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGFpbmVyLFxuICBTQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yTG9nb1dyYXBwZXIsXG4gIFNDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGVudCxcbiAgU0NDQUlQcm9qZWN0U2VsZWN0b3JUZXh0Q29udGFpbmVyLFxuICBTQ0NBSVByb2plY3RTZWxlY3RvclRpdGxlLFxuICBTQ0NBSVByb2plY3RTZWxlY3RvckFjdGlvbnMsXG59IGZyb20gJy4vQ2hhdEFJUHJvamVjdFNlbGVjdG9yLnN0eWxlcydcbmltcG9ydCB7IE1BSUFJc29sb2dvIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxudHlwZSBDaGF0QUlQcm9qZWN0U2VsZWN0b3JQcm9wcyA9IHtcbiAgaGFuZGxlcnM6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSVByb2plY3RTZWxlY3RvciA9ICh7IGhhbmRsZXJzIH06IENoYXRBSVByb2plY3RTZWxlY3RvclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgc2V0UHJvamVjdCwgc2V0VGFzaywgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG5cbiAgY29uc3Qgd2VsY29tZU1lc3NhZ2UgPVxuICAgIGFnZW50Py53ZWxjb21lX21lc3NhZ2U/LnJlcGxhY2UoL1xce1xce25hbWVcXH1cXH0vZywgdXNlcj8uZmlyc3ROYW1lID8/ICcnKT8ucmVwbGFjZSgvXFxcXG4vZywgJ1xcbicpID8/ICcnXG5cbiAgY29uc3QgaGFuZGxlUHJvamVjdFNlbGVjdGVkID0gKHNlbGVjdGVkUHJvamVjdDogYW55KSA9PiB7XG4gICAgc2V0VGFzayhudWxsKVxuICAgIHNldFByb2plY3Qoc2VsZWN0ZWRQcm9qZWN0KVxuICAgIGhhbmRsZXJzKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yV3JhcHBlcj5cbiAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvckNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9ySWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcj5cbiAgICAgICAgICAgIDxNQUlBSXNvbG9nbyAvPlxuICAgICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JMb2dvV3JhcHBlcj5cbiAgICAgICAgPC9TQ0NBSVByb2plY3RTZWxlY3Rvckljb25Db250YWluZXI+XG4gICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvckNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJUHJvamVjdFNlbGVjdG9yVGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIDxTQ0NBSVByb2plY3RTZWxlY3RvclRpdGxlIHN0eWxlPXt7IHdoaXRlU3BhY2U6ICdwcmUtbGluZScgfX0+e3dlbGNvbWVNZXNzYWdlfTwvU0NDQUlQcm9qZWN0U2VsZWN0b3JUaXRsZT5cbiAgICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yVGV4dENvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlQcm9qZWN0U2VsZWN0b3JBY3Rpb25zPlxuICAgICAgICAgICAgPFByb2plY3RTZWxlY3RvciBvblByb2plY3RTZWxlY3RlZD17aGFuZGxlUHJvamVjdFNlbGVjdGVkfSAvPlxuICAgICAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JBY3Rpb25zPlxuICAgICAgICA8L1NDQ0FJUHJvamVjdFNlbGVjdG9yQ29udGVudD5cbiAgICAgIDwvU0NDQUlQcm9qZWN0U2VsZWN0b3JDb250YWluZXI+XG4gICAgPC9TQ0NBSVByb2plY3RTZWxlY3RvcldyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsZUFBZSxRQUFRLDZCQUE2QjtBQUM3RCxTQUNFQywyQkFBMkIsRUFDM0JDLDZCQUE2QixFQUM3QkMsaUNBQWlDLEVBQ2pDQywrQkFBK0IsRUFDL0JDLDJCQUEyQixFQUMzQkMsaUNBQWlDLEVBQ2pDQyx5QkFBeUIsRUFDekJDLDJCQUEyQixRQUN0QixnQ0FBZ0M7QUFDdkMsU0FBU0MsV0FBVyxRQUFRLG1CQUFtQjtBQUMvQyxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQU1uRCxPQUFPLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUFDLElBQUEsRUFBaUQ7RUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxlQUFBO0VBQUEsSUFBM0NDLFFBQVEsR0FBQUosSUFBQSxDQUFSSSxRQUFRO0VBQzlDLElBQUFDLGlCQUFBLEdBQXVDdEIsZ0JBQWdCLENBQUMsQ0FBQztJQUFqRHVCLFVBQVUsR0FBQUQsaUJBQUEsQ0FBVkMsVUFBVTtJQUFFQyxPQUFPLEdBQUFGLGlCQUFBLENBQVBFLE9BQU87SUFBRUMsS0FBSyxHQUFBSCxpQkFBQSxDQUFMRyxLQUFLO0VBQ2xDLElBQU1DLElBQUksR0FBR2YsT0FBTyxDQUFDLENBQUM7RUFFdEIsSUFBTWdCLGNBQWMsSUFBQVQscUJBQUEsR0FDbEJPLEtBQUssYUFBTEEsS0FBSyxnQkFBQU4sc0JBQUEsR0FBTE0sS0FBSyxDQUFFRyxlQUFlLGNBQUFULHNCQUFBLGdCQUFBQSxzQkFBQSxHQUF0QkEsc0JBQUEsQ0FBd0JVLE9BQU8sQ0FBQyxlQUFlLEdBQUFULGVBQUEsR0FBRU0sSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUVJLFNBQVMsY0FBQVYsZUFBQSxjQUFBQSxlQUFBLEdBQUksRUFBRSxDQUFDLGNBQUFELHNCQUFBLHVCQUF2RUEsc0JBQUEsQ0FBeUVVLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQUFYLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtFQUV0RyxJQUFNYSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxlQUFvQixFQUFLO0lBQ3REUixPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ2JELFVBQVUsQ0FBQ1MsZUFBZSxDQUFDO0lBQzNCWCxRQUFRLENBQUMsQ0FBQztFQUNaLENBQUM7RUFFRCxvQkFDRVIsSUFBQSxDQUFDWCwyQkFBMkI7SUFBQStCLFFBQUEsZUFDMUJsQixLQUFBLENBQUNaLDZCQUE2QjtNQUFBOEIsUUFBQSxnQkFDNUJwQixJQUFBLENBQUNULGlDQUFpQztRQUFBNkIsUUFBQSxlQUNoQ3BCLElBQUEsQ0FBQ1IsK0JBQStCO1VBQUE0QixRQUFBLGVBQzlCcEIsSUFBQSxDQUFDSCxXQUFXLElBQUU7UUFBQyxDQUNnQjtNQUFDLENBQ0QsQ0FBQyxlQUNwQ0ssS0FBQSxDQUFDVCwyQkFBMkI7UUFBQTJCLFFBQUEsZ0JBQzFCcEIsSUFBQSxDQUFDTixpQ0FBaUM7VUFBQTBCLFFBQUEsZUFDaENwQixJQUFBLENBQUNMLHlCQUF5QjtZQUFDMEIsS0FBSyxFQUFFO2NBQUVDLFVBQVUsRUFBRTtZQUFXLENBQUU7WUFBQUYsUUFBQSxFQUFFTjtVQUFjLENBQTRCO1FBQUMsQ0FDekUsQ0FBQyxlQUNwQ2QsSUFBQSxDQUFDSiwyQkFBMkI7VUFBQXdCLFFBQUEsZUFDMUJwQixJQUFBLENBQUNaLGVBQWU7WUFBQ21DLGlCQUFpQixFQUFFTDtVQUFzQixDQUFFO1FBQUMsQ0FDbEMsQ0FBQztNQUFBLENBQ0gsQ0FBQztJQUFBLENBQ0Q7RUFBQyxDQUNMLENBQUM7QUFFbEMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==