@projectcor/maia-components 2.11.104-1 → 2.11.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### [2.27.1](https://github.com/ProjectCORTeam/maia-components/compare/v2.27.0...v2.27.1) (2026-08-26)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Correct markChatAsRead invocation in useChatMessages hook ([63d9018](https://github.com/ProjectCORTeam/maia-components/commit/63d9018979a380c1b8d6025dee2ede26b2497e5b))
7
+ * Update layout and spacing in ChatAI components ([7512cb9](https://github.com/ProjectCORTeam/maia-components/commit/7512cb908225a29becbe30fdb0fcf4e205020b50))
8
+
1
9
  ## [2.27.0](https://github.com/ProjectCORTeam/maia-components/compare/v2.26.2...v2.27.0) (2026-08-26)
2
10
 
3
11
 
@@ -5,7 +5,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  /* eslint-disable react/function-component-definition */
6
6
  /* eslint-disable jsx-a11y/click-events-have-key-events */
7
7
  /* eslint-disable jsx-a11y/no-static-element-interactions */
8
- import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
8
+ import { useEffect, useLayoutEffect, useRef, useState, useCallback, useMemo } from 'react';
9
9
  import { flushSync } from 'react-dom';
10
10
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
11
11
  import { ListChecklist } from '@projectcor/icons/lib/components/ListChecklist';
@@ -27,7 +27,6 @@ import { useRecentContexts } from '../../../hooks/useRecentContexts';
27
27
  import { MAIAIsologo } from '../../atoms/icons/MAIAIsologo';
28
28
  import { TemplateGradientIcon } from '../../atoms/icons/TemplateGradientIcon';
29
29
  import { ChatAIHomeMaiaker } from './ChatAIHomeMaiaker';
30
- import { selectManagerHoursHomeFuas } from '../../../utils/managerHoursHomeFuas';
31
30
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
32
31
  export var FrequentQuestions = /*#__PURE__*/function (FrequentQuestions) {
33
32
  FrequentQuestions["rentabilidad_proyecto"] = "rentabilidad_proyecto";
@@ -240,13 +239,10 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
240
239
  var _useFrequentlyUsedAct2 = useFrequentlyUsedActions(isHeaderHoursAgentHome && !isHeaderManagerHoursHome ? agent === null || agent === void 0 ? void 0 : agent.id : undefined, 'planner'),
241
240
  collaboratorPlannerFuas = _useFrequentlyUsedAct2.actions,
242
241
  collaboratorPlannerFuasLoading = _useFrequentlyUsedAct2.loading;
243
- var _useFrequentlyUsedAct3 = useFrequentlyUsedActions(isHeaderManagerHoursHome ? agent === null || agent === void 0 ? void 0 : agent.id : undefined, 'header'),
244
- managerHomeFuasRaw = _useFrequentlyUsedAct3.actions,
242
+ var _useFrequentlyUsedAct3 = useFrequentlyUsedActions(isHeaderManagerHoursHome ? agent === null || agent === void 0 ? void 0 : agent.id : undefined, 'home_with_hours'),
243
+ managerHomeFuas = _useFrequentlyUsedAct3.actions,
245
244
  managerHomeFuasLoading = _useFrequentlyUsedAct3.loading;
246
- var headerHoursFuas = useMemo(function () {
247
- if (isHeaderManagerHoursHome) return selectManagerHoursHomeFuas(managerHomeFuasRaw);
248
- return collaboratorPlannerFuas;
249
- }, [isHeaderManagerHoursHome, managerHomeFuasRaw, collaboratorPlannerFuas]);
245
+ var headerHoursFuas = isHeaderManagerHoursHome ? managerHomeFuas : collaboratorPlannerFuas;
250
246
  var headerHoursFuasLoading = isHeaderManagerHoursHome ? managerHomeFuasLoading : collaboratorPlannerFuasLoading;
251
247
  var _useFrequentlyAskedQu = useFrequentlyAskedQuestions(realListsAgentId, lang, realListsEntityType),
252
248
  agentFaqs = _useFrequentlyAskedQu.faqs,
@@ -445,6 +441,9 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
445
441
  var isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;
446
442
  setShowTopGradient(isScrollable && !isAtTop);
447
443
  setShowBottomGradient(isScrollable && !isAtBottom);
444
+ }, [homeScrollableLayout]);
445
+ var handleScroll = useCallback(function () {
446
+ checkScroll();
448
447
  setIsScrolling(true);
449
448
  if (scrollTimeoutRef.current) {
450
449
  clearTimeout(scrollTimeoutRef.current);
@@ -452,7 +451,7 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
452
451
  scrollTimeoutRef.current = setTimeout(function () {
453
452
  setIsScrolling(false);
454
453
  }, 150);
455
- }, [homeScrollableLayout]);
454
+ }, [checkScroll]);
456
455
  useEffect(function () {
457
456
  if (!homeScrollableLayout) {
458
457
  setShowTopGradient(false);
@@ -463,17 +462,35 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
463
462
  if (!container) {
464
463
  return undefined;
465
464
  }
466
- checkScroll();
467
- container.addEventListener('scroll', checkScroll);
468
- var timeoutId = setTimeout(checkScroll, 100);
465
+ var scheduleCheckScroll = function scheduleCheckScroll() {
466
+ requestAnimationFrame(function () {
467
+ checkScroll();
468
+ });
469
+ };
470
+ scheduleCheckScroll();
471
+ container.addEventListener('scroll', handleScroll);
472
+ var resizeObserver = new ResizeObserver(scheduleCheckScroll);
473
+ resizeObserver.observe(container);
474
+ var scrollContent = container.firstElementChild;
475
+ if (scrollContent instanceof Element) {
476
+ resizeObserver.observe(scrollContent);
477
+ }
478
+ var timeoutId = window.setTimeout(scheduleCheckScroll, 100);
479
+ var lateTimeoutId = window.setTimeout(scheduleCheckScroll, 400);
469
480
  return function () {
470
- container.removeEventListener('scroll', checkScroll);
481
+ container.removeEventListener('scroll', handleScroll);
482
+ resizeObserver.disconnect();
471
483
  clearTimeout(timeoutId);
484
+ clearTimeout(lateTimeoutId);
472
485
  if (scrollTimeoutRef.current) {
473
486
  clearTimeout(scrollTimeoutRef.current);
474
487
  }
475
488
  };
476
- }, [homeScrollableLayout, checkScroll]);
489
+ }, [homeScrollableLayout, checkScroll, handleScroll]);
490
+ useLayoutEffect(function () {
491
+ if (!homeScrollableLayout) return;
492
+ checkScroll();
493
+ }, [homeScrollableLayout, checkScroll, recentContextsLoading, recentContexts.length, headerHoursFuasLoading, headerHoursFuas.length, fuasLoading, fuas.length, faqsAreLoading, faqs.length, shouldShowPlannerFuas, isMaiaker]);
477
494
  var renderHeaderContent = function renderHeaderContent() {
478
495
  if (!isMAIA) {
479
496
  var _agent$created_by, _agent$created_by2;
@@ -625,4 +642,4 @@ export var ChatAIHome = function ChatAIHome(_ref2) {
625
642
  })]
626
643
  });
627
644
  };
628
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsImZsdXNoU3luYyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24iLCJNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJDT1JVc2VyUm9sZSIsImlzQ29sbGFib3JhdG9yUm9sZSIsImlzTWFuYWdlclJvbGUiLCJ1c2VSZXNpemVMaXN0ZW5lciIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwidXNlUmVjZW50Q29udGV4dHMiLCJNQUlBSXNvbG9nbyIsIlRlbXBsYXRlR3JhZGllbnRJY29uIiwiQ2hhdEFJSG9tZU1haWFrZXIiLCJzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiUkVDRU5UX0NPTlRFWFRTX0xJTUlUIiwiUkVDRU5UX0NPTlRFWFRfSUNPTl9DT0xPUiIsIlJFQ0VOVF9DT05URVhUX0lDT05fU0laRV9QWCIsIlJFQ0VOVF9DT05URVhUX1NLRUxFVE9OX0tFWVMiLCJSZWNlbnRDb250ZXh0UGlsbCIsIl9yZWYiLCJjb250ZXh0IiwibGFiZWwiLCJvbkNsaWNrIiwiX3JlZiRmdWxsV2lkdGgiLCJmdWxsV2lkdGgiLCJ0ZXh0UmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJ0eXBlIiwiJGZ1bGxXaWR0aCIsImNoaWxkcmVuIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInVuZGVmaW5lZCIsInJlZiIsInRpdGxlIiwicGFyc2VOdW1lcmljSWQiLCJ2YWx1ZSIsInBhcnNlZCIsIk51bWJlciIsImlzRmluaXRlIiwiZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyIsInJvbGVJZCIsIm5vcm1hbGl6ZWRSb2xlSWQiLCJDTEVWRUwiLCJESVJFQ1RPUiIsIlBST0pFQ1RfTUFOQUdFUiIsIlNldCIsIkNoYXRBSUhvbWUiLCJfcmVmMiIsImhhbmRsZXJzIiwib25TdGFydENoYXQiLCJleHBhbmRlZCIsImZsb2F0aW5nIiwiX3VzZVQiLCJ0IiwiaTE4biIsImV2ZW50IiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJzZWN0aW9uIiwiY2xpZW50IiwicHJvamVjdCIsInRhc2siLCJjaGlwc1Byb2plY3QiLCJzZXRDbGllbnQiLCJzZXRQcm9qZWN0Iiwic2V0VGFzayIsInNldENoaXBzUHJvamVjdCIsImlzTUFJQSIsImZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwibGFuZyIsImxhbmd1YWdlIiwic3VtbWFyeVByb2plY3RBY2Nlc3MiLCJ3aW5kb3ciLCJTdHJpbmciLCJNQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUyIsInRvTG93ZXJDYXNlIiwibWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzIiwiZmFxc0FjY2VzcyIsInNob3dQcm9qZWN0U3VtbWFyeSIsImlzTWFpYWtlciIsImlzSGVhZGVySG9tZSIsImlzT3JjaGVzdHJhdG9yIiwiaXNQbGFubmVySG9tZSIsImlzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUiLCJoYXNIb3Vyc1N1YmFnZW50IiwiaGFzUGlubmVkQ29udGV4dCIsImlkIiwicHJvamVjdElkIiwiaXNSZWNlbnRDb250ZXh0c1N0ZXAiLCJpc0hlYWRlclRhc2tDb250ZXh0SG9tZSIsInJvbGVfaWQiLCJpc0hlYWRlckhvdXJzQWdlbnRIb21lIiwiaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lIiwiaGVhZGVyVGFza0NvbnRleHRTdWJ0aXRsZUtleSIsImlzQ29udGV4dEhvbWVTdGVwIiwiaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUiLCJhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzIiwiX3VzZVJlY2VudENvbnRleHRzIiwiZW5hYmxlZCIsImxpbWl0IiwiZmV0Y2hlZFJlY2VudENvbnRleHRzIiwiY29udGV4dHMiLCJyZWNlbnRDb250ZXh0c0xvYWRpbmciLCJsb2FkaW5nIiwicmVjZW50Q29udGV4dHMiLCJmaWx0ZXIiLCJoYXMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWxlY3RlZENvbnRleHQiLCJzZXRTZWxlY3RlZENvbnRleHQiLCJhY3RpdmVDb250ZXh0IiwibmFtZSIsInByb2plY3ROYW1lIiwicGlubmVkRW50aXR5VHlwZSIsImlzVGFza0NvbnRleHQiLCJpc0Z1YXNPbmx5SG9tZSIsImZ1YXNTZWN0aW9uIiwicmVhbExpc3RzQWdlbnRJZCIsInJlYWxMaXN0c0VudGl0eVR5cGUiLCJfYWN0aXZlQ29udGV4dCR0eXBlIiwiX3VzZUZyZXF1ZW50bHlVc2VkQWN0IiwiYWdlbnRGdWFzIiwiYWN0aW9ucyIsImZ1YXNMb2FkaW5nIiwiX3VzZUZyZXF1ZW50bHlVc2VkQWN0MiIsImNvbGxhYm9yYXRvclBsYW5uZXJGdWFzIiwiY29sbGFib3JhdG9yUGxhbm5lckZ1YXNMb2FkaW5nIiwiX3VzZUZyZXF1ZW50bHlVc2VkQWN0MyIsIm1hbmFnZXJIb21lRnVhc1JhdyIsIm1hbmFnZXJIb21lRnVhc0xvYWRpbmciLCJoZWFkZXJIb3Vyc0Z1YXMiLCJoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nIiwiX3VzZUZyZXF1ZW50bHlBc2tlZFF1IiwiYWdlbnRGYXFzIiwiZmFxcyIsImZhcXNMb2FkaW5nIiwiaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiZmFxc0ZldGNoUmVmIiwiX2ZhcXNGZXRjaFJlZiRjdXJyZW50IiwiY3VycmVudEtleSIsImNvbmNhdCIsImxhc3RLZXkiLCJjdXJyZW50IiwiYWdlbnRJZCIsImVudGl0eVR5cGUiLCJmdWFzIiwiZmFxc0FyZUxvYWRpbmciLCJmdWFzQXJlTG9hZGluZyIsInNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIiwibGVuZ3RoIiwic2hvdWxkU2hvd0ZhcXMiLCJzaG91bGRTaG93RnVhcyIsInNob3VsZFNob3dQbGFubmVyRnVhc0xvYWRpbmciLCJzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50Iiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzIiwic2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCIsImVudGl0eSIsInNob3dGQVFzIiwiaG9tZVNjcm9sbGFibGVMYXlvdXQiLCJzaG93RHluYW1pY1NlY3Rpb24iLCJjb250ZW50Q29udGFpbmVyUmVmIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCIsIm9yZGVyIiwiX2NvbnRleHQkcGFyZW50cyIsIl9jb250ZXh0JHBhcmVudHMyIiwiX2NvbnRleHQkcGFyZW50czMiLCJfY29udGV4dCRwYXJlbnRzNCIsImFpQ2hhdENvbnRleHRTZWxlY3RlZCIsImNvbnRleHRJZCIsImNsaWVudElkIiwicGFyZW50cyIsImNsaWVudF9pZCIsInByb2plY3RfaWQiLCJjbGllbnROYW1lIiwiY2xpZW50X25hbWUiLCJwcm9qZWN0X25hbWUiLCJfb2JqZWN0U3ByZWFkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJoYW5kbGVIb21lU3RhcnRDaGF0IiwibWVzc2FnZSIsImF0dGFjaG1lbnRzIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsIm1lbnRpb25zIiwiZnVhSWQiLCJyZW5kZXJSZWNlbnRDb250ZXh0cyIsIiRmaXhlZENvbnRlbnRXaWR0aCIsIiRmbHVzaFBpbGxzIiwibWFwIiwia2V5IiwiaW5kZXgiLCJ0cmltIiwiY2hlY2tTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwiY3JlYXRlZF9ieSIsImlzX2RlbGV0ZWQiLCJjb250ZW50QWxpZ25TdGFydCIsIm1haWFIZWFkZXJTdGFja05lZWRzR2FwIiwiJG5vR2FwIiwiJGFsaWduIiwiJHNpemUiLCJmaXJzdE5hbWUiLCIkY29sbGFib3JhdG9ySG9tZSIsImZpeGVkSG9tZUNvbnRlbnRXaWR0aCIsInNob3dBZ2VudEludHJvZHVjdGlvbiIsIiRhbGlnblN0YXJ0IiwiJHNob3ciLCIkaXNBZ2VudFZpZXciLCIkZmxvYXRpbmdDdXN0b21DZW50ZXIiLCIkY2VudGVyVmVydGljYWxseSIsIiRoZWFkZXJDb2xsYWJvcmF0b3JIb21lIiwiJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lIiwiJGdhcCIsIiRtYXhXaWR0aCIsInByb2plY3RTdW1tYXJ5IiwiJGdyb3ciLCJ2YXJpYW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmx1c2hTeW5jIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBMaXN0Q2hlY2tsaXN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTGlzdENoZWNrbGlzdCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuXG5pbXBvcnQge1xuICBTQ0NBSUhvbWVDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNvbnRlbnQsXG4gIFNDQ0FJSG9tZUNvbnRlbnRJbm5lcixcbiAgU0NDQUlIb21lR3JhZGllbnRUb3AsXG4gIFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tLFxuICBTQ0NBSUhvbWVIZWFkZXIsXG4gIFNDQ0FJSG9tZUdyZWV0aW5nLFxuICBTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIsXG4gIFNDQ0FJSG9tZUFnZW50SW5mbyxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnksXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbixcbiAgU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QsXG4gIFNDQ0FJSG9tZUludHJvZHVjdGlvbixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0LFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSxcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lTG9nb1dyYXBwZXIsXG4gIFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayxcbiAgU0NDQUlIb21lVGl0bGUsXG4gIFNDQ0FJSG9tZVRpdGxlQmxvY2ssXG4gIFNDQ0FJSG9tZVN1YnRpdGxlLFxuICBTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHMsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uSGVhZGVyLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZSxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24sXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbixcbiAgTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCxcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0LCB0eXBlIFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVXNlciwgQ09SVXNlclJvbGUsIGlzQ29sbGFib3JhdG9yUm9sZSwgaXNNYW5hZ2VyUm9sZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvb3JjaGVzdHJhdG9yU3ViYWdlbnRzJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IGlzTWFpYWtlckFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IHVzZVJlY2VudENvbnRleHRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgdHlwZSB7IFJlY2VudENvbnRleHRJdGVtLCBSZWNlbnRDb250ZXh0VHlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL01BSUFJc29sb2dvJ1xuaW1wb3J0IHsgVGVtcGxhdGVHcmFkaWVudEljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9UZW1wbGF0ZUdyYWRpZW50SWNvbidcbmltcG9ydCB7IENoYXRBSUhvbWVNYWlha2VyIH0gZnJvbSAnLi9DaGF0QUlIb21lTWFpYWtlcidcbmltcG9ydCB7IHNlbGVjdE1hbmFnZXJIb3Vyc0hvbWVGdWFzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbWFuYWdlckhvdXJzSG9tZUZ1YXMnXG5cbnR5cGUgQ2hhdEFJSG9tZVByb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICBmdWFJZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxvcHRpb25zLCAoKSA9PiB2b2lkPlxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgZmxvYXRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBlbnVtIEZyZXF1ZW50UXVlc3Rpb25zIHtcbiAgcmVudGFiaWxpZGFkX3Byb3llY3RvID0gJ3JlbnRhYmlsaWRhZF9wcm95ZWN0bycsXG4gIGF2YW5jZV9wcm95ZWN0byA9ICdhdmFuY2VfcHJveWVjdG8nLFxufVxuXG5jb25zdCBSRUNFTlRfQ09OVEVYVFNfTElNSVQgPSA5XG5jb25zdCBSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SID0gJyM0RDRENEQnXG5jb25zdCBSRUNFTlRfQ09OVEVYVF9JQ09OX1NJWkVfUFggPSAxNVxuY29uc3QgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUyA9IFtcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTEnLFxuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMicsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0zJyxcbl1cblxuY29uc3QgUmVjZW50Q29udGV4dFBpbGwgPSAoe1xuICBjb250ZXh0LFxuICBsYWJlbCxcbiAgb25DbGljayxcbiAgZnVsbFdpZHRoID0gZmFsc2UsXG59OiB7XG4gIGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtXG4gIGxhYmVsOiBzdHJpbmdcbiAgb25DbGljazogKCkgPT4gdm9pZFxuICBmdWxsV2lkdGg/OiBib29sZWFuXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbbGFiZWxdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkNsaWNrfSAkZnVsbFdpZHRoPXtmdWxsV2lkdGh9PlxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbj5cbiAgICAgICAge2NvbnRleHQudHlwZSA9PT0gJ3Rhc2snID8gKFxuICAgICAgICAgIDxMaXN0Q2hlY2tsaXN0IGNvbG9yPXtSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SfSB3aWR0aD1cIjE1cHhcIiBoZWlnaHQ9XCIxNXB4XCIgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBnZXRDb250ZXh0TWVudGlvbkljb24oY29udGV4dC50eXBlLCBSRUNFTlRfQ09OVEVYVF9JQ09OX0NPTE9SLCB1bmRlZmluZWQsIFJFQ0VOVF9DT05URVhUX0lDT05fU0laRV9QWClcbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCByZWY9e3RleHRSZWZ9PlxuICAgICAgICB7c2hvd1Rvb2x0aXAgPyAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2xhYmVsfT5cbiAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGxhYmVsXG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dD5cbiAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsPlxuICApXG59XG5cbmNvbnN0IHBhcnNlTnVtZXJpY0lkID0gKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IG51bWJlciB8IG51bGwgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBudWxsXG4gIGNvbnN0IHBhcnNlZCA9IE51bWJlcih2YWx1ZSlcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxufVxuXG5jb25zdCBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzID0gKHJvbGVJZD86IENPUlVzZXJSb2xlIHwgbnVtYmVyIHwgc3RyaW5nKTogU2V0PFJlY2VudENvbnRleHRUeXBlPiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb2xlSWQgPSBOdW1iZXIocm9sZUlkKVxuICBpZiAoXG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuQ0xFVkVMIHx8XG4gICAgbm9ybWFsaXplZFJvbGVJZCA9PT0gQ09SVXNlclJvbGUuRElSRUNUT1IgfHxcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5QUk9KRUNUX01BTkFHRVJcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJ10pXG4gIH1cbiAgaWYgKGlzQ29sbGFib3JhdG9yUm9sZShyb2xlSWQpKSB7XG4gICAgcmV0dXJuIG5ldyBTZXQoWyd0YXNrJ10pXG4gIH1cbiAgcmV0dXJuIG5ldyBTZXQoKVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJSG9tZSA9ICh7IGhhbmRsZXJzLCBvblN0YXJ0Q2hhdCwgZXhwYW5kZWQsIGZsb2F0aW5nIH06IENoYXRBSUhvbWVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IGFnZW50LCBzZWN0aW9uLCBjbGllbnQsIHByb2plY3QsIHRhc2ssIGNoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCBzZXRDaGlwc1Byb2plY3QgfSA9XG4gICAgdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGZsb2F0aW5nQ3VzdG9tQ2VudGVyID0gISEoZmxvYXRpbmcgJiYgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nKVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICAvLyBFbCBvcmNoZXN0cmF0b3IgKHR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSBtdWVzdHJhIEZBUXMvRlVBcyBhZ3JlZ2FkYXMgZGUgc3VzIHN1YmFnZW50ZXMsXG4gIC8vIGFzw60gcXVlIE5PIHNlIHRyYXRhIGNvbW8gbWFpYWtlciBhY8OhLlxuICBjb25zdCBpc01haWFrZXIgPSBpc01haWFrZXJBZ2VudChhZ2VudClcbiAgY29uc3QgaXNIZWFkZXJIb21lID0gaXNNQUlBICYmIHNlY3Rpb24gPT09ICdoZWFkZXInICYmIGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICAvLyBFbCBvcmNoZXN0cmF0b3IgdXNhIGVsIGhvbWUgZW4gMiBwYXNvcyAoY29udGV4dG9zIHJlY2llbnRlcyDihpQgRkFRcy9GVUFzKSBlbiBoZWFkZXIvcHJvamVjdC9jbGllbnQvdGFzay5cbiAgLy8gRW4gcHJvamVjdC9jbGllbnQvdGFzaywgYWwgbGltcGlhciBlbCBjb250ZXh0byAocC4gZWouIGFsIHJlc2VsZWNjaW9uYXIgTUFJQVxuICAvLyBkZXNkZSBlbCBsaXN0YWRvIGRlIGFnZW50ZXMpIHNlIG11ZXN0cmEgZWwgc2VsZWN0b3IgZGUgY29udGV4dG9zIHJlY2llbnRlcyBlbiBsdWdhciBkZSB1biBob21lIHZhY8Otby5cbiAgY29uc3QgaXNPcmNoZXN0cmF0b3IgPSBpc01BSUEgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIC8vIFBsYW5uZXI6IGhvbWUgZGUgRlVBcyBkZWwgb3JjaGVzdHJhdG9yIChzaW4gc2VsZWN0b3IgZGUgY29udGV4dG9zKS5cbiAgLy8gU2kgZWwgdXN1YXJpbyBuYXZlZ2EgYSBNYWlha2VyIHUgb3RybyBhZ2VudGUsIHNlY3Rpb24gc2lndWUgc2llbmRvIGBwbGFubmVyYCBwZXJvIHlhIG5vIGVzIGVzdGUgaG9tZS5cbiAgY29uc3QgaXNQbGFubmVySG9tZSA9IHNlY3Rpb24gPT09ICdwbGFubmVyJyAmJiBpc09yY2hlc3RyYXRvclxuICAvLyBIb21lcyBkZSBzZWNjacOzbiAocHJvamVjdC9jbGllbnQvdGFzayk6IHNpbiBpc29sb2dvLCBjb250ZW5pZG8gdG9wLWxlZnQsIGNvbHVtbmEgNDQ4cHggY2VudHJhZGEuXG4gIGNvbnN0IGlzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUgPSBpc09yY2hlc3RyYXRvciAmJiAhaXNIZWFkZXJIb21lICYmICFpc1BsYW5uZXJIb21lXG4gIGNvbnN0IGhhc0hvdXJzU3ViYWdlbnQgPSBvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50KGFnZW50KVxuXG4gIC8vIEhvbWUgZGVsIG9yY2hlc3RyYXRvciBlbiAyIHBhc29zOlxuICAvLyAgLSBQYXNvIDEgKHNpbiBjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gc29sbyBsb3MgY29udGV4dG9zIHJlY2llbnRlcy5cbiAgLy8gIC0gUGFzbyAyIChjb250ZXh0byBwaW5lYWRvKTogc2UgbXVlc3RyYW4gbGFzIEZBUXMvYWNjaW9uZXMgcXVlIHJlZmVyZW5jaWFuIGVzZSBjb250ZXh0by5cbiAgY29uc3QgaGFzUGlubmVkQ29udGV4dCA9ICEhKHRhc2s/LmlkIHx8IGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IGNsaWVudD8uaWQgfHwgcHJvamVjdD8uaWQpXG4gIGNvbnN0IGlzUmVjZW50Q29udGV4dHNTdGVwID0gaXNPcmNoZXN0cmF0b3IgJiYgIWhhc1Bpbm5lZENvbnRleHQgJiYgIWlzUGxhbm5lckhvbWVcbiAgLy8gSGVhZGVyIHBhc28gMSBjb21wYWN0byAoc2luIGlzb2xvZ28sIHBpbGxzIGZ1bGwtd2lkdGgpOiBjb2xhYm9yYWRvciB5IG1hbmFnZXJzIChDLUxldmVsL0RpcmVjdG9yL1BNKS5cbiAgY29uc3QgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgPVxuICAgIHNlY3Rpb24gPT09ICdoZWFkZXInICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmIChpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKSB8fCBpc01hbmFnZXJSb2xlKHVzZXIucm9sZV9pZCkpXG4gIC8vIEJsb3F1ZSBGVUFzIHBsYW5uZXIgKyBzZWNjacOzbiBkZSBjb250ZXh0b3MgcmVjaWVudGVzIGNvbiB0w610dWxvcyAoY29sYWJvcmFkb3IgbyBtYW5hZ2VyIGNvbiBob3VyKS5cbiAgY29uc3QgaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSA9IGlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIGhhc0hvdXJzU3ViYWdlbnRcbiAgY29uc3QgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID0gaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiBpc01hbmFnZXJSb2xlKHVzZXIucm9sZV9pZClcbiAgY29uc3QgaGVhZGVyVGFza0NvbnRleHRTdWJ0aXRsZUtleSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0hlYWRlckhvdXJzQWdlbnRIb21lKSB7XG4gICAgICBpZiAoaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lKSByZXR1cm4gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlTWFuYWdlcldpdGhIb3VycydcbiAgICAgIHJldHVybiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMnXG4gICAgfVxuICAgIGlmIChpc01hbmFnZXJSb2xlKHVzZXIucm9sZV9pZCkpIHJldHVybiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGUnXG4gICAgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcidcbiAgfSwgW2lzSGVhZGVySG91cnNBZ2VudEhvbWUsIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSwgdXNlci5yb2xlX2lkXSlcbiAgY29uc3QgaXNDb250ZXh0SG9tZVN0ZXAgPSBpc0hlYWRlckhvbWUgJiYgaGFzUGlubmVkQ29udGV4dFxuICAvLyBIZWFkZXIgcGFzbyAyIChGQVFzL0ZVQXMgY29uIGNvbnRleHRvKSB5IGhvbWVzIGRlIHNlY2Npw7NuIGNvbXBhcnRlbiBsYXlvdXQ6IHNpbiBpc29sb2dvLCB0ZXh0byBhIGxhIGl6cXVpZXJkYS5cbiAgY29uc3QgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPSBpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lIHx8IGlzQ29udGV4dEhvbWVTdGVwXG5cbiAgY29uc3QgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzKHVzZXIucm9sZV9pZClcbiAgICBpZiAoaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiYgaXNNYW5hZ2VyUm9sZSh1c2VyLnJvbGVfaWQpKSByZXR1cm4gZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyh1c2VyLnJvbGVfaWQpXG4gICAgaWYgKGlzSGVhZGVyVGFza0NvbnRleHRIb21lKSByZXR1cm4gbmV3IFNldDxSZWNlbnRDb250ZXh0VHlwZT4oWyd0YXNrJ10pXG4gICAgcmV0dXJuIGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKVxuICB9LCBbdXNlci5yb2xlX2lkLCBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUsIGlzSGVhZGVyVGFza0NvbnRleHRIb21lXSlcbiAgY29uc3QgeyBjb250ZXh0czogZmV0Y2hlZFJlY2VudENvbnRleHRzLCBsb2FkaW5nOiByZWNlbnRDb250ZXh0c0xvYWRpbmcgfSA9IHVzZVJlY2VudENvbnRleHRzKHtcbiAgICBlbmFibGVkOiBpc09yY2hlc3RyYXRvciAmJiAhaXNQbGFubmVySG9tZSxcbiAgICBsaW1pdDogUkVDRU5UX0NPTlRFWFRTX0xJTUlULFxuICB9KVxuICBjb25zdCByZWNlbnRDb250ZXh0cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmV0Y2hlZFJlY2VudENvbnRleHRzLmZpbHRlcihjb250ZXh0ID0+IGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMuaGFzKGNvbnRleHQudHlwZSkpLFxuICAgIFtmZXRjaGVkUmVjZW50Q29udGV4dHMsIGFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXNdXG4gIClcblxuICAvLyBDb250ZXh0byBhY3Rpdm8gcGFyYSBkZXJpdmFyIEZBUXMvYWNjaW9uZXMgKHBhc28gMikuIFByZWZlcmltb3MgZWwgcGlsbCBjbGlja2VhZG87XG4gIC8vIHNpIG5vLCBsbyByZWNvbnN0cnVpbW9zIGRlc2RlIGVsIGNvbnRleHRvIGdsb2JhbC5cbiAgY29uc3QgW3NlbGVjdGVkQ29udGV4dCwgc2V0U2VsZWN0ZWRDb250ZXh0XSA9IHVzZVN0YXRlPFJlY2VudENvbnRleHRJdGVtIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc1Bpbm5lZENvbnRleHQpIHNldFNlbGVjdGVkQ29udGV4dChudWxsKVxuICB9LCBbaGFzUGlubmVkQ29udGV4dF0pXG5cbiAgY29uc3QgYWN0aXZlQ29udGV4dCA9IHVzZU1lbW88UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkQ29udGV4dCkgcmV0dXJuIHNlbGVjdGVkQ29udGV4dFxuICAgIGlmICghaXNDb250ZXh0SG9tZVN0ZXApIHJldHVybiBudWxsXG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4geyB0eXBlOiAndGFzaycsIGlkOiB0YXNrLmlkLCBuYW1lOiB0YXNrLm5hbWUgfVxuICAgIGlmIChjaGlwc1Byb2plY3Q/LnByb2plY3RJZCkgcmV0dXJuIHsgdHlwZTogJ3Byb2plY3QnLCBpZDogY2hpcHNQcm9qZWN0LnByb2plY3RJZCwgbmFtZTogY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lIH1cbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuIHsgdHlwZTogJ2NsaWVudCcsIGlkOiBjbGllbnQuaWQsIG5hbWU6IGNsaWVudC5uYW1lIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbXG4gICAgc2VsZWN0ZWRDb250ZXh0LFxuICAgIGlzQ29udGV4dEhvbWVTdGVwLFxuICAgIHRhc2s/LmlkLFxuICAgIHRhc2s/Lm5hbWUsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQsXG4gICAgY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSxcbiAgICBjbGllbnQ/LmlkLFxuICAgIGNsaWVudD8ubmFtZSxcbiAgXSlcblxuICAvLyBlbnRpdHlfdHlwZSBkZWwgY29udGV4dG8gcGluZWFkbyAocHJvamVjdC9jbGllbnQvdGFzayksIHRvbWFkbyBkZWwgY29udGV4dG8gZ2xvYmFsLlxuICAvLyBBcGxpY2EgdGFudG8gYWwgYWJyaXIgTUFJQSBkZXNkZSB1bmEgc2VjY2nDs24gZXNwZWPDrWZpY2EgY29tbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gIGNvbnN0IHBpbm5lZEVudGl0eVR5cGUgPSB1c2VNZW1vPFJlY2VudENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgaWYgKHRhc2s/LmlkKSByZXR1cm4gJ3Rhc2snXG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkIHx8IHByb2plY3Q/LmlkKSByZXR1cm4gJ3Byb2plY3QnXG4gICAgaWYgKGNsaWVudD8uaWQpIHJldHVybiAnY2xpZW50J1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW3Rhc2s/LmlkLCBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCwgcHJvamVjdD8uaWQsIGNsaWVudD8uaWRdKVxuXG4gIC8vIEVuIHByb2plY3QvY2xpZW50L3Rhc2ssIGNvbiBlbCByZWluaWNpbyBkZSBjb250ZXh0byBlbCB1c3VhcmlvIHB1ZWRlIHBpbmVhciB1biBjb250ZXh0byBkZSB1blxuICAvLyB0aXBvIGRpc3RpbnRvIGFsIGRlIGxhIHNlY2Npw7NuIGRlIGFwZXJ0dXJhIChwLiBlai4gdW4gcHJvamVjdCBhYnJpZW5kbyBkZXNkZSB1bmEgdGFyZWEsIG9cbiAgLy8gdmljZXZlcnNhKS4gTGFzIEZBUXMvRlVBcyBkZWJlbiBkZXBlbmRlciBkZWwgY29udGV4dG8gcmVhbG1lbnRlIHBpbmVhZG8sIG5vIGRlIGxhIHNlY2Npw7NuIGZpamEuXG4gIC8vIEVuIGVsIGhlYWRlciBzZSBtYW50aWVuZSBsYSBsw7NnaWNhIGV4aXN0ZW50ZSAoYmFzYWRhIGVuIGVsIGNvbnRleHRvIHNlbGVjY2lvbmFkbyAvIGFjdGl2ZUNvbnRleHQpLlxuICBjb25zdCBpc1Rhc2tDb250ZXh0ID0gIWlzSGVhZGVySG9tZSAmJiBwaW5uZWRFbnRpdHlUeXBlID09PSAndGFzaydcbiAgLy8gU29sbyBGVUFzIChzaW4gRkFRcyk6IHRhc2sgcGFuZWwgbyBwbGFubmVyLlxuICBjb25zdCBpc0Z1YXNPbmx5SG9tZSA9IGlzUGxhbm5lckhvbWUgfHwgaXNUYXNrQ29udGV4dFxuICAvLyBgc2VjdGlvbmAgcXVlIHNlIGNvbnN1bHRhIHBhcmEgbGFzIEZVQXM6IGVuIG5vLWhlYWRlciBzaWd1ZSBlbCB0aXBvIGRlIGNvbnRleHRvIHBpbmVhZG8uXG4gIC8vIEVuIHBsYW5uZXIgc2UgZnVlcnphIGxhIHNlY3Rpb24gQVBJIGBwbGFubmVyYC5cbiAgY29uc3QgZnVhc1NlY3Rpb246IFNlY3Rpb24gPSAoKCkgPT4ge1xuICAgIGlmIChpc1BsYW5uZXJIb21lKSByZXR1cm4gJ3BsYW5uZXInXG4gICAgaWYgKCFpc0hlYWRlckhvbWUgJiYgcGlubmVkRW50aXR5VHlwZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gc2VjdGlvblxuICB9KSgpXG5cbiAgLy8gRkFRcy9hY2Npb25lczpcbiAgLy8gIC0gaGVhZGVyLWhvbWUgKG9yY2hlc3RyYXRvciksIHBhc28gMjogZmlsdHJhZGFzIHBvciBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZWxlY2Npb25hZG8uXG4gIC8vICAtIGhvbWVzIGRlIHByb3llY3RvL2NsaWVudGUvdGFyZWEgKHNlY2Npw7NuKTogZmlsdHJhZGFzIHBvciBlbCBgZW50aXR5X3R5cGVgIGRlbCBjb250ZXh0byBzZXRlYWRvLlxuICAvLyAgLSBwbGFubmVyOiBGVUFzIGNvbiBzZWN0aW9uPXBsYW5uZXIsIHNpbiBlbnRpdHlfdHlwZSBuaSBGQVFzLlxuICBjb25zdCByZWFsTGlzdHNBZ2VudElkID0gKCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBpc01haWFrZXIpIHJldHVybiB1bmRlZmluZWRcbiAgICAvLyBQYXNvIDEgKGNvbnRleHRvcyByZWNpZW50ZXMsIHNpbiBjb250ZXh0byk6IG5vIHNlIHBpZGVuIEZBUXMvRlVBcy5cbiAgICBpZiAoaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoaXNIZWFkZXJIb21lKSByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyBhZ2VudD8uaWQgOiB1bmRlZmluZWRcbiAgICByZXR1cm4gYWdlbnQ/LmlkXG4gIH0pKClcbiAgY29uc3QgcmVhbExpc3RzRW50aXR5VHlwZSA9ICgoKSA9PiB7XG4gICAgaWYgKGlzUGxhbm5lckhvbWUpIHJldHVybiAncGxhbm5lcidcbiAgICBpZiAoIWlzSGVhZGVySG9tZSkgcmV0dXJuIHBpbm5lZEVudGl0eVR5cGVcbiAgICByZXR1cm4gaXNDb250ZXh0SG9tZVN0ZXAgPyAoYWN0aXZlQ29udGV4dD8udHlwZSA/PyBwaW5uZWRFbnRpdHlUeXBlKSA6IHVuZGVmaW5lZFxuICB9KSgpXG4gIGNvbnN0IHsgYWN0aW9uczogYWdlbnRGdWFzLCBsb2FkaW5nOiBmdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIHJlYWxMaXN0c0FnZW50SWQsXG4gICAgZnVhc1NlY3Rpb24sXG4gICAgcmVhbExpc3RzRW50aXR5VHlwZVxuICApXG4gIGNvbnN0IHsgYWN0aW9uczogY29sbGFib3JhdG9yUGxhbm5lckZ1YXMsIGxvYWRpbmc6IGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGlzSGVhZGVySG91cnNBZ2VudEhvbWUgJiYgIWlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZCxcbiAgICAncGxhbm5lcidcbiAgKVxuICBjb25zdCB7IGFjdGlvbnM6IG1hbmFnZXJIb21lRnVhc1JhdywgbG9hZGluZzogbWFuYWdlckhvbWVGdWFzTG9hZGluZyB9ID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKFxuICAgIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZCxcbiAgICAnaGVhZGVyJ1xuICApXG4gIGNvbnN0IGhlYWRlckhvdXJzRnVhcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiBzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyhtYW5hZ2VySG9tZUZ1YXNSYXcpXG4gICAgcmV0dXJuIGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzXG4gIH0sIFtpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUsIG1hbmFnZXJIb21lRnVhc1JhdywgY29sbGFib3JhdG9yUGxhbm5lckZ1YXNdKVxuICBjb25zdCBoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nID0gaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID8gbWFuYWdlckhvbWVGdWFzTG9hZGluZyA6IGNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZ1xuICBjb25zdCB7XG4gICAgZmFxczogYWdlbnRGYXFzLFxuICAgIGxvYWRpbmc6IGZhcXNMb2FkaW5nLFxuICAgIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyxcbiAgfSA9IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyhyZWFsTGlzdHNBZ2VudElkLCBsYW5nLCByZWFsTGlzdHNFbnRpdHlUeXBlKVxuICBjb25zdCBmYXFzRmV0Y2hSZWYgPSB1c2VSZWY8eyBhZ2VudElkOiBzdHJpbmc7IGxhbmc6IHN0cmluZzsgZW50aXR5VHlwZT86IHN0cmluZyB9IHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBUYXNrIC8gcGxhbm5lcjogc29sbyBGVUFzLCBzaW4gRkFRcy5cbiAgICBpZiAoIXJlYWxMaXN0c0FnZW50SWQgfHwgaXNGdWFzT25seUhvbWUpIHJldHVyblxuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBgJHtyZWFsTGlzdHNBZ2VudElkfS0ke2xhbmd9LSR7cmVhbExpc3RzRW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgY29uc3QgbGFzdEtleSA9IGZhcXNGZXRjaFJlZi5jdXJyZW50XG4gICAgICA/IGAke2ZhcXNGZXRjaFJlZi5jdXJyZW50LmFnZW50SWR9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQubGFuZ30tJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5lbnRpdHlUeXBlID8/ICdhbGwnfWBcbiAgICAgIDogbnVsbFxuICAgIGlmIChjdXJyZW50S2V5ICE9PSBsYXN0S2V5KSB7XG4gICAgICBmYXFzRmV0Y2hSZWYuY3VycmVudCA9IHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9XG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoeyBhZ2VudElkOiByZWFsTGlzdHNBZ2VudElkLCBsYW5nLCBlbnRpdHlUeXBlOiByZWFsTGlzdHNFbnRpdHlUeXBlIH0pXG4gICAgfVxuICB9LCBbcmVhbExpc3RzQWdlbnRJZCwgcmVhbExpc3RzRW50aXR5VHlwZSwgaXNGdWFzT25seUhvbWUsIGxhbmcsIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc10pXG5cbiAgY29uc3QgZmFxcyA9IGFnZW50RmFxc1xuICBjb25zdCBmdWFzID0gYWdlbnRGdWFzXG4gIGNvbnN0IGZhcXNBcmVMb2FkaW5nID0gZmFxc0xvYWRpbmdcbiAgY29uc3QgZnVhc0FyZUxvYWRpbmcgPSBmdWFzTG9hZGluZ1xuXG4gIGNvbnN0IHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrID0gaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgKHJlY2VudENvbnRleHRzTG9hZGluZyB8fCByZWNlbnRDb250ZXh0cy5sZW5ndGggPiAwKVxuICBjb25zdCBzaG91bGRTaG93RmFxcyA9XG4gICAgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmXG4gICAgIWlzRnVhc09ubHlIb21lICYmXG4gICAgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICghaXNIZWFkZXJIb21lICYmIGZhcXNBY2Nlc3MpKSAmJlxuICAgICFpc01haWFrZXIgJiZcbiAgICAoZmFxcy5sZW5ndGggPiAwIHx8IGZhcXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93RnVhcyA9XG4gICAgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc01haWFrZXIgJiYgKGlzQ29udGV4dEhvbWVTdGVwIHx8ICFpc0hlYWRlckhvbWUpICYmIChmdWFzLmxlbmd0aCA+IDAgfHwgZnVhc0FyZUxvYWRpbmcpXG4gIGNvbnN0IHNob3VsZFNob3dQbGFubmVyRnVhc0xvYWRpbmcgPSBpc0hlYWRlckhvdXJzQWdlbnRIb21lICYmIGhlYWRlckhvdXJzRnVhc0xvYWRpbmcgJiYgaGVhZGVySG91cnNGdWFzLmxlbmd0aCA9PT0gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50ID0gaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiBoZWFkZXJIb3Vyc0Z1YXMubGVuZ3RoID4gMFxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXMgPSBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIHx8IHNob3VsZFNob3dQbGFubmVyRnVhc0NvbnRlbnRcblxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnlDYXJkID0gc2hvd1Byb2plY3RTdW1tYXJ5ICYmIGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93RkFRcyA9ICEhKFxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8XG4gICAgc2hvdWxkU2hvd0ZhcXMgfHxcbiAgICBzaG91bGRTaG93RnVhcyB8fFxuICAgIHNob3VsZFNob3dQbGFubmVyRnVhcyB8fFxuICAgIHNob3dQcm9qZWN0U3VtbWFyeUNhcmQgfHxcbiAgICBpc01haWFrZXJcbiAgKVxuICBjb25zdCBob21lU2Nyb2xsYWJsZUxheW91dCA9IHNob3dGQVFzXG4gIGNvbnN0IHNob3dEeW5hbWljU2VjdGlvbiA9XG4gICAgc2hvd1JlY2VudENvbnRleHRzQmxvY2sgfHwgc2hvdWxkU2hvd0ZhcXMgfHwgc2hvdWxkU2hvd0Z1YXMgfHwgc2hvdWxkU2hvd1BsYW5uZXJGdWFzIHx8IGlzTWFpYWtlclxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGZpam8gcG9yIHRpcG8gZGUgY29udGV4dG8gKGkxOG4pLiBDdXN0b20gYWdlbnRzIHNpZ3VlbiB1c2FuZG8gYWdlbnQuaW50cm9kdWN0aW9uLlxuICAvLyBQbGFubmVyIHVzYSB0w610dWxvICsgYmFqYWRhIHByb3Bpb3MgKGBwbGFubmVySG9tZWApLCBubyBlc3RlIGdyZWV0aW5nLlxuICBjb25zdCBncmVldGluZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc01haWFrZXIgfHwgaXNQbGFubmVySG9tZSB8fCBpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuICcnXG5cbiAgICBpZiAoaXNNQUlBICYmIHBpbm5lZEVudGl0eVR5cGUpIHtcbiAgICAgIHJldHVybiB0KGBob21lTWVudS5jb250ZXh0SG9tZS5jb250ZXh0R3JlZXRpbmcuJHtwaW5uZWRFbnRpdHlUeXBlfWApXG4gICAgfVxuXG4gICAgY29uc3QgaW50cm8gPSBhZ2VudD8uaW50cm9kdWN0aW9uXG4gICAgaWYgKCFpbnRybykgcmV0dXJuICcnXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW50cm8pICYmIGludHJvLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnRyb1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpbnRyby5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGludHJvID09PSAnc3RyaW5nJyA/IGludHJvIDogJydcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LmludHJvZHVjdGlvbiwgaXNNYWlha2VyLCBpc1BsYW5uZXJIb21lLCBpc01BSUEsIHBpbm5lZEVudGl0eVR5cGUsIGlzUmVjZW50Q29udGV4dHNTdGVwLCB0XSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRleHQ6IFJlY2VudENvbnRleHRJdGVtLCBvcmRlcjogbnVtYmVyKSA9PiB7XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0Q29udGV4dFNlbGVjdGVkLCB7IG9yZGVyLCB0eXBlOiBjb250ZXh0LnR5cGUgfSlcblxuICAgICAgY29uc3QgY29udGV4dElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5pZClcbiAgICAgIGNvbnN0IGNsaWVudElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5jbGllbnRfaWQpXG4gICAgICBjb25zdCBwcm9qZWN0SWQgPSBwYXJzZU51bWVyaWNJZChjb250ZXh0LnBhcmVudHM/LnByb2plY3RfaWQpXG4gICAgICBjb25zdCBjbGllbnROYW1lID0gY29udGV4dC5wYXJlbnRzPy5jbGllbnRfbmFtZSB8fCAnJ1xuICAgICAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnBhcmVudHM/LnByb2plY3RfbmFtZSB8fCAnJ1xuXG4gICAgICBzZXRTZWxlY3RlZENvbnRleHQoY29udGV4dClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcblxuICAgICAgaWYgKGNvbnRleHQudHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY29udGV4dElkLCBuYW1lOiBjb250ZXh0Lm5hbWUgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgaWYgKGNvbnRleHRJZCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgc2V0UHJvamVjdCh7XG4gICAgICAgICAgaWQ6IGNvbnRleHRJZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGNvbnRleHRJZCksXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGNvbnRleHQubmFtZSxcbiAgICAgICAgICBjbGllbnROYW1lLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnR5cGUgPT09ICd0YXNrJykge1xuICAgICAgICBzZXRUYXNrKHtcbiAgICAgICAgICBpZDogY29udGV4dC5pZCxcbiAgICAgICAgICBuYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgLi4uKHByb2plY3RJZCAhPSBudWxsID8geyBwcm9qZWN0SWQgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNsaWVudElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRDbGllbnQ/Lih7IGlkOiBjbGllbnRJZCwgbmFtZTogY2xpZW50TmFtZSB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9qZWN0SWQgIT0gbnVsbCkge1xuICAgICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgICAgaWQ6IHByb2plY3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudDogeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZCksXG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUgfHwgYCR7dCgnaG9tZU1lbnUucmVjZW50Q29udGV4dHMudHlwZXMucHJvamVjdCcpfSAke3Byb2plY3RJZH1gLFxuICAgICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdtYWlhLWlucHV0LXJlZm9jdXMnKSlcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZXZlbnQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrLCB0XVxuICApXG5cbiAgY29uc3QgaGFuZGxlSG9tZVN0YXJ0Q2hhdCA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBudWxsLFxuICAgICAgZnVhSWQ/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgJiYgZnVhSWQpIHtcbiAgICAgICAgZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICBzZXRTZWxlY3RlZENvbnRleHQobnVsbClcbiAgICAgICAgICBzZXRUYXNrKG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBvblN0YXJ0Q2hhdChtZXNzYWdlLCBhdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQpXG4gICAgfSxcbiAgICBbaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCBvblN0YXJ0Q2hhdCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2tdXG4gIClcblxuICBjb25zdCByZW5kZXJSZWNlbnRDb250ZXh0cyA9ICgpID0+IHtcbiAgICBpZiAoIWlzUmVjZW50Q29udGV4dHNTdGVwKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1xuICAgICAgICAkZml4ZWRDb250ZW50V2lkdGg9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCA6IHVuZGVmaW5lZH1cbiAgICAgID5cbiAgICAgICAge2lzSGVhZGVySG91cnNBZ2VudEhvbWUgPyAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50VGFza3NTZWN0aW9uLnRpdGxlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lXG4gICAgICAgICAgICAgICAgICA/ICdob21lTWVudS5jb250ZXh0SG9tZS5yZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyLnN1YnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50VGFza3NTZWN0aW9uLnN1YnRpdGxlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3QgJGZsdXNoUGlsbHM9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lfT5cbiAgICAgICAgICB7cmVjZW50Q29udGV4dHNMb2FkaW5nICYmXG4gICAgICAgICAgICBSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTLm1hcChrZXkgPT4gPFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24ga2V5PXtrZXl9IC8+KX1cbiAgICAgICAgICB7IXJlY2VudENvbnRleHRzTG9hZGluZyAmJlxuICAgICAgICAgICAgcmVjZW50Q29udGV4dHMubWFwKChjb250ZXh0LCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8UmVjZW50Q29udGV4dFBpbGxcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2NvbnRleHQudHlwZX0tJHtjb250ZXh0LmlkfWB9XG4gICAgICAgICAgICAgICAgY29udGV4dD17Y29udGV4dH1cbiAgICAgICAgICAgICAgICBsYWJlbD17Y29udGV4dC5uYW1lLnRyaW0oKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3RSZWNlbnRDb250ZXh0KGNvbnRleHQsIGluZGV4ICsgMSl9XG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdD5cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHM+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgY2hlY2tTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgY29uc3QgaXNTY3JvbGxhYmxlID0gc2Nyb2xsSGVpZ2h0ID4gY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaXNBdFRvcCA9IHNjcm9sbFRvcCA9PT0gMFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMVxuXG4gICAgc2V0U2hvd1RvcEdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdFRvcClcbiAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0Qm90dG9tKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbaG9tZVNjcm9sbGFibGVMYXlvdXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoY2hlY2tTY3JvbGwsIDEwMClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2hlY2tTY3JvbGwpXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0LCBjaGVja1Njcm9sbF0pXG5cbiAgY29uc3QgcmVuZGVySGVhZGVyQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgICAge2FnZW50Py5lbW9qaX0ge2FnZW50Py5uYW1lfVxuICAgICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvPlxuICAgICAgICAgIHthZ2VudD8uY3JlYXRlZF9ieSAmJiAhaXNNQUlBICYmIChcbiAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICAgICAgYWdlbnQ/LmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWQgPyB0KCdob21lTWVudS5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpIDogdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT57YWdlbnQ/LmNyZWF0ZWRfYnk/Lm5hbWV9PC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZT5cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQWdlbnRJbmZvQ29udGFpbmVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRBbGlnblN0YXJ0ID0gaXNQbGFubmVySG9tZSB8fCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZVxuXG4gICAgY29uc3QgbWFpYUhlYWRlclN0YWNrTmVlZHNHYXAgPVxuICAgICAgKGlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiAhaXNQbGFubmVySG9tZSkgfHxcbiAgICAgICghaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiZcbiAgICAgICAgISFncmVldGluZyAmJlxuICAgICAgICAhaXNQbGFubmVySG9tZSAmJlxuICAgICAgICAhaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiZcbiAgICAgICAgIWlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUhvbWVNYWlhSGVhZGVyU3RhY2sgJG5vR2FwPXshbWFpYUhlYWRlclN0YWNrTmVlZHNHYXB9ICRhbGlnbj17Y29udGVudEFsaWduU3RhcnQgPyAnc3RhcnQnIDogJ2NlbnRlcid9PlxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmICFpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICAgIDxNQUlBSXNvbG9nbyAvPlxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVMb2dvV3JhcHBlcj5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICl9XG4gICAgICAgIHtpc1BsYW5uZXJIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRzaXplPVwibWRcIiAkYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucGxhbm5lckhvbWUudGl0bGUnKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPVwic3RhcnRcIj57dCgnaG9tZU1lbnUucGxhbm5lckhvbWUuc3VidGl0bGUnKX08L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGVCbG9jaz5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmIGlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lVGl0bGVCbG9jayAkYWxpZ249XCJzdGFydFwiICRmdWxsV2lkdGg+XG4gICAgICAgICAgICA8U0NDQUlIb21lVGl0bGUgJHNpemU9XCJjb250ZXh0XCIgJGFsaWduPVwic3RhcnRcIiAkZnVsbFdpZHRoPlxuICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUuY29udGV4dEhvbWUuZ3JlZXRpbmcnLCB7IG5hbWU6IHVzZXIuZmlyc3ROYW1lIH0pfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZT5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVTdWJ0aXRsZSAkYWxpZ249XCJzdGFydFwiICRjb2xsYWJvcmF0b3JIb21lPlxuICAgICAgICAgICAgICB7dChoZWFkZXJUYXNrQ29udGV4dFN1YnRpdGxlS2V5KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVUaXRsZUJsb2NrPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRhbGlnbj17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmdyZWV0aW5nJywgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBpc0NvbGxhYm9yYXRvclJvbGUodXNlci5yb2xlX2lkKVxuICAgICAgICAgICAgICAgICAgPyAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVDb2xsYWJvcmF0b3InXG4gICAgICAgICAgICAgICAgICA6ICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZSdcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lU3VidGl0bGU+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiAhaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgZ3JlZXRpbmcgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZ1xuICAgICAgICAgICAgJGFsaWduPXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSA/ICdzdGFydCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAkc2l6ZT17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnbWQnIDogJ2xnJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Z3JlZXRpbmd9XG4gICAgICAgICAgPC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lTWFpYUhlYWRlclN0YWNrPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGZpeGVkSG9tZUNvbnRlbnRXaWR0aCA9XG4gICAgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWVcbiAgICAgID8gTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWFxuICAgICAgOiB1bmRlZmluZWRcbiAgY29uc3QgY29udGVudEFsaWduU3RhcnQgPSBpc1BsYW5uZXJIb21lIHx8IGlzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lXG4gIGNvbnN0IHNob3dBZ2VudEludHJvZHVjdGlvbiA9IHNlY3Rpb24gIT09ICdwcm9qZWN0JyAmJiAhaXNNQUlBICYmICEhYWdlbnQ/LmludHJvZHVjdGlvblxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9ICRhbGlnblN0YXJ0PXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZX0+XG4gICAgICB7aG9tZVNjcm9sbGFibGVMYXlvdXQgJiYgPFNDQ0FJSG9tZUdyYWRpZW50VG9wICRzaG93PXtzaG93VG9wR3JhZGllbnR9IC8+fVxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnRcbiAgICAgICAgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfVxuICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgJGZsb2F0aW5nQ3VzdG9tQ2VudGVyPXtmbG9hdGluZ0N1c3RvbUNlbnRlcn1cbiAgICAgICAgJGNlbnRlclZlcnRpY2FsbHk9e2lzUGxhbm5lckhvbWV9XG4gICAgICAgICRhbGlnblN0YXJ0PXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtmaXhlZEhvbWVDb250ZW50V2lkdGh9XG4gICAgICA+XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXJcbiAgICAgICAgICBzaG93RkFRcz17aG9tZVNjcm9sbGFibGVMYXlvdXR9XG4gICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgICAgJGNlbnRlclZlcnRpY2FsbHk9e2lzUGxhbm5lckhvbWV9XG4gICAgICAgICAgJGFsaWduU3RhcnQ9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAgICRoZWFkZXJDb2xsYWJvcmF0b3JIb21lPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZX1cbiAgICAgICAgICAkc2VjdGlvbk9yY2hlc3RyYXRvckhvbWU9e2lzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQ0FJSG9tZUhlYWRlclxuICAgICAgICAgICAgJGdhcD17c2hvd0FnZW50SW50cm9kdWN0aW9uID8gJzIwcHgnIDogJzAnfVxuICAgICAgICAgICAgJG1heFdpZHRoPXtpc01BSUEgPyAnMTAwJScgOiAnMzgwcHgnfVxuICAgICAgICAgICAgJGlzQWdlbnRWaWV3PXshaXNNQUlBfVxuICAgICAgICAgICAgJGFsaWduPXtjb250ZW50QWxpZ25TdGFydCA/ICdzdGFydCcgOiAnY2VudGVyJ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2hvd0FnZW50SW50cm9kdWN0aW9uID8gKFxuICAgICAgICAgICAgICA8U0NDQUlIb21lSW50cm9kdWN0aW9uIGV4cGFuZGVkPXtleHBhbmRlZH0+e2FnZW50LmludHJvZHVjdGlvbn08L1NDQ0FJSG9tZUludHJvZHVjdGlvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnlDYXJkICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGVHcmFkaWVudEljb24gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dEeW5hbWljU2VjdGlvbiAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lRHluYW1pY1NlY3Rpb25cbiAgICAgICAgICAgICAgJGdyb3c9e2lzTWFpYWtlcn1cbiAgICAgICAgICAgICAgJGFsaWduU3RhcnQ9e2lzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd1BsYW5uZXJGdWFzID8gKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwbGFubmVyXCJcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtoYW5kbGVIb21lU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17aGVhZGVySG91cnNGdWFzfVxuICAgICAgICAgICAgICAgICAgbG9hZGluZz17aGVhZGVySG91cnNGdWFzTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge3JlbmRlclJlY2VudENvbnRleHRzKCl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RmFxcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgc2hvd0ZBUXM9e3Nob3dGQVFzfVxuICAgICAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgICAgICBsYW5nPXtsYW5nfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgZmFxcz17ZmFxc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2ZhcXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtzaG91bGRTaG93RnVhcyAmJiAoXG4gICAgICAgICAgICAgICAgPEZyZXF1ZW50bHlVc2VkQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgICAgICAgYWN0aW9ucz17ZnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2Z1YXNBcmVMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc01haWFrZXIgPyA8Q2hhdEFJSG9tZU1haWFrZXIgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudElubmVyPlxuICAgICAgPC9TQ0NBSUhvbWVDb250ZW50PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGFBQWEsUUFBUSxnREFBZ0Q7QUFDOUUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFJMUQsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIsRUFDM0JDLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4QkFBOEIsRUFDOUJDLDRCQUE0QixFQUM1QkMsa0NBQWtDLEVBQ2xDQywwQkFBMEIsRUFDMUJDLHFCQUFxQixFQUNyQkMs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
645
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsImZsdXNoU3luYyIsIlRvb2x0aXAiLCJMaXN0Q2hlY2tsaXN0IiwidXNlVCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0NDQUlIb21lQ29udGFpbmVyIiwiU0NDQUlIb21lQ29udGVudCIsIlNDQ0FJSG9tZUNvbnRlbnRJbm5lciIsIlNDQ0FJSG9tZUdyYWRpZW50VG9wIiwiU0NDQUlIb21lR3JhZGllbnRCb3R0b20iLCJTQ0NBSUhvbWVIZWFkZXIiLCJTQ0NBSUhvbWVHcmVldGluZyIsIlNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lciIsIlNDQ0FJSG9tZUFnZW50SW5mbyIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50IiwiU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24iLCJTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCIsIlNDQ0FJSG9tZUludHJvZHVjdGlvbiIsIlNDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsIlNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayIsIlNDQ0FJSG9tZVRpdGxlIiwiU0NDQUlIb21lVGl0bGVCbG9jayIsIlNDQ0FJSG9tZVN1YnRpdGxlIiwiU0NDQUlIb21lRHluYW1pY1NlY3Rpb24iLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0cyIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvbkhlYWRlciIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRzU2VjdGlvblRpdGxlIiwiU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUiLCJTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsSWNvbiIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCIsIlNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsU2tlbGV0b24iLCJNQUlBX0hFQURFUl9DT0xMQUJPUkFUT1JfSE9NRV9DT05URU5UX1dJRFRIX1BYIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVVzZXIiLCJDT1JVc2VyUm9sZSIsImlzQ29sbGFib3JhdG9yUm9sZSIsImlzTWFuYWdlclJvbGUiLCJ1c2VSZXNpemVMaXN0ZW5lciIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwidXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwidXNlUmVjZW50Q29udGV4dHMiLCJNQUlBSXNvbG9nbyIsIlRlbXBsYXRlR3JhZGllbnRJY29uIiwiQ2hhdEFJSG9tZU1haWFrZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJGcmVxdWVudFF1ZXN0aW9ucyIsIlJFQ0VOVF9DT05URVhUU19MSU1JVCIsIlJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IiLCJSRUNFTlRfQ09OVEVYVF9JQ09OX1NJWkVfUFgiLCJSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTIiwiUmVjZW50Q29udGV4dFBpbGwiLCJfcmVmIiwiY29udGV4dCIsImxhYmVsIiwib25DbGljayIsIl9yZWYkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwidHlwZSIsIiRmdWxsV2lkdGgiLCJjaGlsZHJlbiIsImNvbG9yIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJyZWYiLCJ0aXRsZSIsInBhcnNlTnVtZXJpY0lkIiwidmFsdWUiLCJwYXJzZWQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMiLCJyb2xlSWQiLCJub3JtYWxpemVkUm9sZUlkIiwiQ0xFVkVMIiwiRElSRUNUT1IiLCJQUk9KRUNUX01BTkFHRVIiLCJTZXQiLCJDaGF0QUlIb21lIiwiX3JlZjIiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJmbG9hdGluZyIsIl91c2VUIiwidCIsImkxOG4iLCJldmVudCIsInVzZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwiY2hpcHNQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0UHJvamVjdCIsInNldFRhc2siLCJzZXRDaGlwc1Byb2plY3QiLCJpc01BSUEiLCJmbG9hdGluZ0N1c3RvbUNlbnRlciIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJpc01haWFrZXIiLCJpc0hlYWRlckhvbWUiLCJpc09yY2hlc3RyYXRvciIsImlzUGxhbm5lckhvbWUiLCJpc1NlY3Rpb25PcmNoZXN0cmF0b3JIb21lIiwiaGFzSG91cnNTdWJhZ2VudCIsImhhc1Bpbm5lZENvbnRleHQiLCJpZCIsInByb2plY3RJZCIsImlzUmVjZW50Q29udGV4dHNTdGVwIiwiaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUiLCJyb2xlX2lkIiwiaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSIsImlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSIsImhlYWRlclRhc2tDb250ZXh0U3VidGl0bGVLZXkiLCJpc0NvbnRleHRIb21lU3RlcCIsImlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lIiwiYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyIsIl91c2VSZWNlbnRDb250ZXh0cyIsImVuYWJsZWQiLCJsaW1pdCIsImZldGNoZWRSZWNlbnRDb250ZXh0cyIsImNvbnRleHRzIiwicmVjZW50Q29udGV4dHNMb2FkaW5nIiwibG9hZGluZyIsInJlY2VudENvbnRleHRzIiwiZmlsdGVyIiwiaGFzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2VsZWN0ZWRDb250ZXh0Iiwic2V0U2VsZWN0ZWRDb250ZXh0IiwiYWN0aXZlQ29udGV4dCIsIm5hbWUiLCJwcm9qZWN0TmFtZSIsInBpbm5lZEVudGl0eVR5cGUiLCJpc1Rhc2tDb250ZXh0IiwiaXNGdWFzT25seUhvbWUiLCJmdWFzU2VjdGlvbiIsInJlYWxMaXN0c0FnZW50SWQiLCJyZWFsTGlzdHNFbnRpdHlUeXBlIiwiX2FjdGl2ZUNvbnRleHQkdHlwZSIsIl91c2VGcmVxdWVudGx5VXNlZEFjdCIsImFnZW50RnVhcyIsImFjdGlvbnMiLCJmdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5VXNlZEFjdDIiLCJjb2xsYWJvcmF0b3JQbGFubmVyRnVhcyIsImNvbGxhYm9yYXRvclBsYW5uZXJGdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5VXNlZEFjdDMiLCJtYW5hZ2VySG9tZUZ1YXMiLCJtYW5hZ2VySG9tZUZ1YXNMb2FkaW5nIiwiaGVhZGVySG91cnNGdWFzIiwiaGVhZGVySG91cnNGdWFzTG9hZGluZyIsIl91c2VGcmVxdWVudGx5QXNrZWRRdSIsImFnZW50RmFxcyIsImZhcXMiLCJmYXFzTG9hZGluZyIsImhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsImZhcXNGZXRjaFJlZiIsIl9mYXFzRmV0Y2hSZWYkY3VycmVudCIsImN1cnJlbnRLZXkiLCJjb25jYXQiLCJsYXN0S2V5IiwiY3VycmVudCIsImFnZW50SWQiLCJlbnRpdHlUeXBlIiwiZnVhcyIsImZhcXNBcmVMb2FkaW5nIiwiZnVhc0FyZUxvYWRpbmciLCJzaG93UmVjZW50Q29udGV4dHNCbG9jayIsImxlbmd0aCIsInNob3VsZFNob3dGYXFzIiwic2hvdWxkU2hvd0Z1YXMiLCJzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nIiwic2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCIsInNob3VsZFNob3dQbGFubmVyRnVhcyIsInNob3dQcm9qZWN0U3VtbWFyeUNhcmQiLCJlbnRpdHkiLCJzaG93RkFRcyIsImhvbWVTY3JvbGxhYmxlTGF5b3V0Iiwic2hvd0R5bmFtaWNTZWN0aW9uIiwiY29udGVudENvbnRhaW5lclJlZiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1RvcEdyYWRpZW50Iiwic2V0U2hvd1RvcEdyYWRpZW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93Qm90dG9tR3JhZGllbnQiLCJzZXRTaG93Qm90dG9tR3JhZGllbnQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzU2Nyb2xsaW5nIiwic2V0SXNTY3JvbGxpbmciLCJzY3JvbGxUaW1lb3V0UmVmIiwiZ3JlZXRpbmciLCJpbnRybyIsImludHJvZHVjdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImhhbmRsZVNlbGVjdFJlY2VudENvbnRleHQiLCJvcmRlciIsIl9jb250ZXh0JHBhcmVudHMiLCJfY29udGV4dCRwYXJlbnRzMiIsIl9jb250ZXh0JHBhcmVudHMzIiwiX2NvbnRleHQkcGFyZW50czQiLCJhaUNoYXRDb250ZXh0U2VsZWN0ZWQiLCJjb250ZXh0SWQiLCJjbGllbnRJZCIsInBhcmVudHMiLCJjbGllbnRfaWQiLCJwcm9qZWN0X2lkIiwiY2xpZW50TmFtZSIsImNsaWVudF9uYW1lIiwicHJvamVjdF9uYW1lIiwiX29iamVjdFNwcmVhZCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiaGFuZGxlSG9tZVN0YXJ0Q2hhdCIsIm1lc3NhZ2UiLCJhdHRhY2htZW50cyIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJtZW50aW9ucyIsImZ1YUlkIiwicmVuZGVyUmVjZW50Q29udGV4dHMiLCIkZml4ZWRDb250ZW50V2lkdGgiLCIkZmx1c2hQaWxscyIsIm1hcCIsImtleSIsImluZGV4IiwidHJpbSIsImNoZWNrU2Nyb2xsIiwiY29udGFpbmVyIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNTY3JvbGxhYmxlIiwiaXNBdFRvcCIsImlzQXRCb3R0b20iLCJoYW5kbGVTY3JvbGwiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwic2NoZWR1bGVDaGVja1Njcm9sbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZXNpemVPYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyIiwib2JzZXJ2ZSIsInNjcm9sbENvbnRlbnQiLCJmaXJzdEVsZW1lbnRDaGlsZCIsIkVsZW1lbnQiLCJ0aW1lb3V0SWQiLCJsYXRlVGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRpc2Nvbm5lY3QiLCJyZW5kZXJIZWFkZXJDb250ZW50IiwiX2FnZW50JGNyZWF0ZWRfYnkiLCJfYWdlbnQkY3JlYXRlZF9ieTIiLCJlbW9qaSIsImNyZWF0ZWRfYnkiLCJpc19kZWxldGVkIiwiY29udGVudEFsaWduU3RhcnQiLCJtYWlhSGVhZGVyU3RhY2tOZWVkc0dhcCIsIiRub0dhcCIsIiRhbGlnbiIsIiRzaXplIiwiZmlyc3ROYW1lIiwiJGNvbGxhYm9yYXRvckhvbWUiLCJmaXhlZEhvbWVDb250ZW50V2lkdGgiLCJzaG93QWdlbnRJbnRyb2R1Y3Rpb24iLCIkYWxpZ25TdGFydCIsIiRzaG93IiwiJGlzQWdlbnRWaWV3IiwiJGZsb2F0aW5nQ3VzdG9tQ2VudGVyIiwiJGNlbnRlclZlcnRpY2FsbHkiLCIkaGVhZGVyQ29sbGFib3JhdG9ySG9tZSIsIiRzZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSIsIiRnYXAiLCIkbWF4V2lkdGgiLCJwcm9qZWN0U3VtbWFyeSIsIiRncm93IiwidmFyaWFudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlIb21lL0NoYXRBSUhvbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmx1c2hTeW5jIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBMaXN0Q2hlY2tsaXN0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTGlzdENoZWNrbGlzdCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuXG5pbXBvcnQge1xuICBTQ0NBSUhvbWVDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNvbnRlbnQsXG4gIFNDQ0FJSG9tZUNvbnRlbnRJbm5lcixcbiAgU0NDQUlIb21lR3JhZGllbnRUb3AsXG4gIFNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tLFxuICBTQ0NBSUhvbWVIZWFkZXIsXG4gIFNDQ0FJSG9tZUdyZWV0aW5nLFxuICBTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIsXG4gIFNDQ0FJSG9tZUFnZW50SW5mbyxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnksXG4gIFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbixcbiAgU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QsXG4gIFNDQ0FJSG9tZUludHJvZHVjdGlvbixcbiAgU0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0LFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0TmFtZSxcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lTG9nb1dyYXBwZXIsXG4gIFNDQ0FJSG9tZU1haWFIZWFkZXJTdGFjayxcbiAgU0NDQUlIb21lVGl0bGUsXG4gIFNDQ0FJSG9tZVRpdGxlQmxvY2ssXG4gIFNDQ0FJSG9tZVN1YnRpdGxlLFxuICBTQ0NBSUhvbWVEeW5hbWljU2VjdGlvbixcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHMsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRzTGlzdCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uSGVhZGVyLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25UaXRsZSxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGUsXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsLFxuICBTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24sXG4gIFNDQ0FJSG9tZVJlY2VudENvbnRleHRQaWxsVGV4dCxcbiAgU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxTa2VsZXRvbixcbiAgTUFJQV9IRUFERVJfQ09MTEFCT1JBVE9SX0hPTUVfQ09OVEVOVF9XSURUSF9QWCxcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0LCB0eXBlIFNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVXNlciwgQ09SVXNlclJvbGUsIGlzQ29sbGFib3JhdG9yUm9sZSwgaXNNYW5hZ2VyUm9sZSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBvcmNoZXN0cmF0b3JIYXNIb3Vyc1N1YmFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvb3JjaGVzdHJhdG9yU3ViYWdlbnRzJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IGlzTWFpYWtlckFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IHVzZVJlY2VudENvbnRleHRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgdHlwZSB7IFJlY2VudENvbnRleHRJdGVtLCBSZWNlbnRDb250ZXh0VHlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvUmVjZW50Q29udGV4dHMnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL01BSUFJc29sb2dvJ1xuaW1wb3J0IHsgVGVtcGxhdGVHcmFkaWVudEljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9UZW1wbGF0ZUdyYWRpZW50SWNvbidcbmltcG9ydCB7IENoYXRBSUhvbWVNYWlha2VyIH0gZnJvbSAnLi9DaGF0QUlIb21lTWFpYWtlcidcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBudWxsLFxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBmbG9hdGluZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmNvbnN0IFJFQ0VOVF9DT05URVhUU19MSU1JVCA9IDlcbmNvbnN0IFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IgPSAnIzRENEQ0RCdcbmNvbnN0IFJFQ0VOVF9DT05URVhUX0lDT05fU0laRV9QWCA9IDE1XG5jb25zdCBSRUNFTlRfQ09OVEVYVF9TS0VMRVRPTl9LRVlTID0gW1xuICAncmVjZW50LWNvbnRleHQtc2tlbGV0b24tMScsXG4gICdyZWNlbnQtY29udGV4dC1za2VsZXRvbi0yJyxcbiAgJ3JlY2VudC1jb250ZXh0LXNrZWxldG9uLTMnLFxuXVxuXG5jb25zdCBSZWNlbnRDb250ZXh0UGlsbCA9ICh7XG4gIGNvbnRleHQsXG4gIGxhYmVsLFxuICBvbkNsaWNrLFxuICBmdWxsV2lkdGggPSBmYWxzZSxcbn06IHtcbiAgY29udGV4dDogUmVjZW50Q29udGV4dEl0ZW1cbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIGZ1bGxXaWR0aD86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtsYWJlbF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGwgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e29uQ2xpY2t9ICRmdWxsV2lkdGg9e2Z1bGxXaWR0aH0+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxJY29uPlxuICAgICAgICB7Y29udGV4dC50eXBlID09PSAndGFzaycgPyAoXG4gICAgICAgICAgPExpc3RDaGVja2xpc3QgY29sb3I9e1JFQ0VOVF9DT05URVhUX0lDT05fQ09MT1J9IHdpZHRoPVwiMTVweFwiIGhlaWdodD1cIjE1cHhcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihjb250ZXh0LnR5cGUsIFJFQ0VOVF9DT05URVhUX0lDT05fQ09MT1IsIHVuZGVmaW5lZCwgUkVDRU5UX0NPTlRFWFRfSUNPTl9TSVpFX1BYKVxuICAgICAgICApfVxuICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbEljb24+XG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0IHJlZj17dGV4dFJlZn0+XG4gICAgICAgIHtzaG93VG9vbHRpcCA/IChcbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17bGFiZWx9PlxuICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgbGFiZWxcbiAgICAgICAgKX1cbiAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGxUZXh0PlxuICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dFBpbGw+XG4gIClcbn1cblxuY29uc3QgcGFyc2VOdW1lcmljSWQgPSAodmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykgcmV0dXJuIG51bGxcbiAgY29uc3QgcGFyc2VkID0gTnVtYmVyKHZhbHVlKVxuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkgPyBwYXJzZWQgOiBudWxsXG59XG5cbmNvbnN0IGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXMgPSAocm9sZUlkPzogQ09SVXNlclJvbGUgfCBudW1iZXIgfCBzdHJpbmcpOiBTZXQ8UmVjZW50Q29udGV4dFR5cGU+ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFJvbGVJZCA9IE51bWJlcihyb2xlSWQpXG4gIGlmIChcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5DTEVWRUwgfHxcbiAgICBub3JtYWxpemVkUm9sZUlkID09PSBDT1JVc2VyUm9sZS5ESVJFQ1RPUiB8fFxuICAgIG5vcm1hbGl6ZWRSb2xlSWQgPT09IENPUlVzZXJSb2xlLlBST0pFQ1RfTUFOQUdFUlxuICApIHtcbiAgICByZXR1cm4gbmV3IFNldChbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snXSlcbiAgfVxuICBpZiAoaXNDb2xsYWJvcmF0b3JSb2xlKHJvbGVJZCkpIHtcbiAgICByZXR1cm4gbmV3IFNldChbJ3Rhc2snXSlcbiAgfVxuICByZXR1cm4gbmV3IFNldCgpXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgZmxvYXRpbmcgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24sIGNsaWVudCwgcHJvamVjdCwgdGFzaywgY2hpcHNQcm9qZWN0LCBzZXRDbGllbnQsIHNldFByb2plY3QsIHNldFRhc2ssIHNldENoaXBzUHJvamVjdCB9ID1cbiAgICB1c2VHbG9iYWxDb250ZXh0KClcblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgZmxvYXRpbmdDdXN0b21DZW50ZXIgPSAhIShmbG9hdGluZyAmJiBhZ2VudD8udHlwZSA9PT0gJ2N1c3RvbScpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0JyA6IGkxOG4ubGFuZ3VhZ2VcblxuICBjb25zdCBzdW1tYXJ5UHJvamVjdEFjY2VzcyA9XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAoU3RyaW5nKHdpbmRvdy5NQUlBX1BST0pFQ1RfU1VNTUFSWV9GRUFUVVJFX0FDQ0VTUykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnIHx8XG4gICAgICBTdHJpbmcod2luZG93Lm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKVxuICBjb25zdCBmYXFzQWNjZXNzID0gdHJ1ZVxuICBjb25zdCBzaG93UHJvamVjdFN1bW1hcnkgPSAhIShpc01BSUEgJiYgc3VtbWFyeVByb2plY3RBY2Nlc3MpXG4gIC8vIEVsIG9yY2hlc3RyYXRvciAodHlwZSA9PT0gJ29yY2hlc3RyYXRvcicpIG11ZXN0cmEgRkFRcy9GVUFzIGFncmVnYWRhcyBkZSBzdXMgc3ViYWdlbnRlcyxcbiAgLy8gYXPDrSBxdWUgTk8gc2UgdHJhdGEgY29tbyBtYWlha2VyIGFjw6EuXG4gIGNvbnN0IGlzTWFpYWtlciA9IGlzTWFpYWtlckFnZW50KGFnZW50KVxuICBjb25zdCBpc0hlYWRlckhvbWUgPSBpc01BSUEgJiYgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIC8vIEVsIG9yY2hlc3RyYXRvciB1c2EgZWwgaG9tZSBlbiAyIHBhc29zIChjb250ZXh0b3MgcmVjaWVudGVzIOKGlCBGQVFzL0ZVQXMpIGVuIGhlYWRlci9wcm9qZWN0L2NsaWVudC90YXNrLlxuICAvLyBFbiBwcm9qZWN0L2NsaWVudC90YXNrLCBhbCBsaW1waWFyIGVsIGNvbnRleHRvIChwLiBlai4gYWwgcmVzZWxlY2Npb25hciBNQUlBXG4gIC8vIGRlc2RlIGVsIGxpc3RhZG8gZGUgYWdlbnRlcykgc2UgbXVlc3RyYSBlbCBzZWxlY3RvciBkZSBjb250ZXh0b3MgcmVjaWVudGVzIGVuIGx1Z2FyIGRlIHVuIGhvbWUgdmFjw61vLlxuICBjb25zdCBpc09yY2hlc3RyYXRvciA9IGlzTUFJQSAmJiBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgLy8gUGxhbm5lcjogaG9tZSBkZSBGVUFzIGRlbCBvcmNoZXN0cmF0b3IgKHNpbiBzZWxlY3RvciBkZSBjb250ZXh0b3MpLlxuICAvLyBTaSBlbCB1c3VhcmlvIG5hdmVnYSBhIE1haWFrZXIgdSBvdHJvIGFnZW50ZSwgc2VjdGlvbiBzaWd1ZSBzaWVuZG8gYHBsYW5uZXJgIHBlcm8geWEgbm8gZXMgZXN0ZSBob21lLlxuICBjb25zdCBpc1BsYW5uZXJIb21lID0gc2VjdGlvbiA9PT0gJ3BsYW5uZXInICYmIGlzT3JjaGVzdHJhdG9yXG4gIC8vIEhvbWVzIGRlIHNlY2Npw7NuIChwcm9qZWN0L2NsaWVudC90YXNrKTogc2luIGlzb2xvZ28sIGNvbnRlbmlkbyB0b3AtbGVmdCwgY29sdW1uYSA0NDhweCBjZW50cmFkYS5cbiAgY29uc3QgaXNTZWN0aW9uT3JjaGVzdHJhdG9ySG9tZSA9IGlzT3JjaGVzdHJhdG9yICYmICFpc0hlYWRlckhvbWUgJiYgIWlzUGxhbm5lckhvbWVcbiAgY29uc3QgaGFzSG91cnNTdWJhZ2VudCA9IG9yY2hlc3RyYXRvckhhc0hvdXJzU3ViYWdlbnQoYWdlbnQpXG5cbiAgLy8gSG9tZSBkZWwgb3JjaGVzdHJhdG9yIGVuIDIgcGFzb3M6XG4gIC8vICAtIFBhc28gMSAoc2luIGNvbnRleHRvIHBpbmVhZG8pOiBzZSBtdWVzdHJhbiBzb2xvIGxvcyBjb250ZXh0b3MgcmVjaWVudGVzLlxuICAvLyAgLSBQYXNvIDIgKGNvbnRleHRvIHBpbmVhZG8pOiBzZSBtdWVzdHJhbiBsYXMgRkFRcy9hY2Npb25lcyBxdWUgcmVmZXJlbmNpYW4gZXNlIGNvbnRleHRvLlxuICBjb25zdCBoYXNQaW5uZWRDb250ZXh0ID0gISEodGFzaz8uaWQgfHwgY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgfHwgY2xpZW50Py5pZCB8fCBwcm9qZWN0Py5pZClcbiAgY29uc3QgaXNSZWNlbnRDb250ZXh0c1N0ZXAgPSBpc09yY2hlc3RyYXRvciAmJiAhaGFzUGlubmVkQ29udGV4dCAmJiAhaXNQbGFubmVySG9tZVxuICAvLyBIZWFkZXIgcGFzbyAxIGNvbXBhY3RvIChzaW4gaXNvbG9nbywgcGlsbHMgZnVsbC13aWR0aCk6IGNvbGFib3JhZG9yIHkgbWFuYWdlcnMgKEMtTGV2ZWwvRGlyZWN0b3IvUE0pLlxuICBjb25zdCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSA9XG4gICAgc2VjdGlvbiA9PT0gJ2hlYWRlcicgJiYgaXNSZWNlbnRDb250ZXh0c1N0ZXAgJiYgKGlzQ29sbGFib3JhdG9yUm9sZSh1c2VyLnJvbGVfaWQpIHx8IGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKSlcbiAgLy8gQmxvcXVlIEZVQXMgcGxhbm5lciArIHNlY2Npw7NuIGRlIGNvbnRleHRvcyByZWNpZW50ZXMgY29uIHTDrXR1bG9zIChjb2xhYm9yYWRvciBvIG1hbmFnZXIgY29uIGhvdXIpLlxuICBjb25zdCBpc0hlYWRlckhvdXJzQWdlbnRIb21lID0gaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiYgaGFzSG91cnNTdWJhZ2VudFxuICBjb25zdCBpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUgPSBpc0hlYWRlckhvdXJzQWdlbnRIb21lICYmIGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKVxuICBjb25zdCBoZWFkZXJUYXNrQ29udGV4dFN1YnRpdGxlS2V5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzSGVhZGVySG91cnNBZ2VudEhvbWUpIHtcbiAgICAgIGlmIChpc0hlYWRlck1hbmFnZXJIb3Vyc0hvbWUpIHJldHVybiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGVNYW5hZ2VyV2l0aEhvdXJzJ1xuICAgICAgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZUNvbGxhYm9yYXRvcldpdGhIb3VycydcbiAgICB9XG4gICAgaWYgKGlzTWFuYWdlclJvbGUodXNlci5yb2xlX2lkKSkgcmV0dXJuICdob21lTWVudS5jb250ZXh0SG9tZS5zdWJ0aXRsZSdcbiAgICByZXR1cm4gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICB9LCBbaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSwgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lLCB1c2VyLnJvbGVfaWRdKVxuICBjb25zdCBpc0NvbnRleHRIb21lU3RlcCA9IGlzSGVhZGVySG9tZSAmJiBoYXNQaW5uZWRDb250ZXh0XG4gIC8vIEhlYWRlciBwYXNvIDIgKEZBUXMvRlVBcyBjb24gY29udGV4dG8pIHkgaG9tZXMgZGUgc2VjY2nDs24gY29tcGFydGVuIGxheW91dDogc2luIGlzb2xvZ28sIHRleHRvIGEgbGEgaXpxdWllcmRhLlxuICBjb25zdCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSA9IGlzU2VjdGlvbk9yY2hlc3RyYXRvckhvbWUgfHwgaXNDb250ZXh0SG9tZVN0ZXBcblxuICBjb25zdCBhbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSkgcmV0dXJuIGdldEFsbG93ZWRSZWNlbnRDb250ZXh0VHlwZXModXNlci5yb2xlX2lkKVxuICAgIGlmIChpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiBpc01hbmFnZXJSb2xlKHVzZXIucm9sZV9pZCkpIHJldHVybiBnZXRBbGxvd2VkUmVjZW50Q29udGV4dFR5cGVzKHVzZXIucm9sZV9pZClcbiAgICBpZiAoaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUpIHJldHVybiBuZXcgU2V0PFJlY2VudENvbnRleHRUeXBlPihbJ3Rhc2snXSlcbiAgICByZXR1cm4gZ2V0QWxsb3dlZFJlY2VudENvbnRleHRUeXBlcyh1c2VyLnJvbGVfaWQpXG4gIH0sIFt1c2VyLnJvbGVfaWQsIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSwgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWVdKVxuICBjb25zdCB7IGNvbnRleHRzOiBmZXRjaGVkUmVjZW50Q29udGV4dHMsIGxvYWRpbmc6IHJlY2VudENvbnRleHRzTG9hZGluZyB9ID0gdXNlUmVjZW50Q29udGV4dHMoe1xuICAgIGVuYWJsZWQ6IGlzT3JjaGVzdHJhdG9yICYmICFpc1BsYW5uZXJIb21lLFxuICAgIGxpbWl0OiBSRUNFTlRfQ09OVEVYVFNfTElNSVQsXG4gIH0pXG4gIGNvbnN0IHJlY2VudENvbnRleHRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBmZXRjaGVkUmVjZW50Q29udGV4dHMuZmlsdGVyKGNvbnRleHQgPT4gYWxsb3dlZFJlY2VudENvbnRleHRUeXBlcy5oYXMoY29udGV4dC50eXBlKSksXG4gICAgW2ZldGNoZWRSZWNlbnRDb250ZXh0cywgYWxsb3dlZFJlY2VudENvbnRleHRUeXBlc11cbiAgKVxuXG4gIC8vIENvbnRleHRvIGFjdGl2byBwYXJhIGRlcml2YXIgRkFRcy9hY2Npb25lcyAocGFzbyAyKS4gUHJlZmVyaW1vcyBlbCBwaWxsIGNsaWNrZWFkbztcbiAgLy8gc2kgbm8sIGxvIHJlY29uc3RydWltb3MgZGVzZGUgZWwgY29udGV4dG8gZ2xvYmFsLlxuICBjb25zdCBbc2VsZWN0ZWRDb250ZXh0LCBzZXRTZWxlY3RlZENvbnRleHRdID0gdXNlU3RhdGU8UmVjZW50Q29udGV4dEl0ZW0gfCBudWxsPihudWxsKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaGFzUGlubmVkQ29udGV4dCkgc2V0U2VsZWN0ZWRDb250ZXh0KG51bGwpXG4gIH0sIFtoYXNQaW5uZWRDb250ZXh0XSlcblxuICBjb25zdCBhY3RpdmVDb250ZXh0ID0gdXNlTWVtbzxSZWNlbnRDb250ZXh0SXRlbSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRDb250ZXh0KSByZXR1cm4gc2VsZWN0ZWRDb250ZXh0XG4gICAgaWYgKCFpc0NvbnRleHRIb21lU3RlcCkgcmV0dXJuIG51bGxcbiAgICBpZiAodGFzaz8uaWQpIHJldHVybiB7IHR5cGU6ICd0YXNrJywgaWQ6IHRhc2suaWQsIG5hbWU6IHRhc2submFtZSB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdElkKSByZXR1cm4geyB0eXBlOiAncHJvamVjdCcsIGlkOiBjaGlwc1Byb2plY3QucHJvamVjdElkLCBuYW1lOiBjaGlwc1Byb2plY3QucHJvamVjdE5hbWUgfVxuICAgIGlmIChjbGllbnQ/LmlkKSByZXR1cm4geyB0eXBlOiAnY2xpZW50JywgaWQ6IGNsaWVudC5pZCwgbmFtZTogY2xpZW50Lm5hbWUgfVxuICAgIHJldHVybiBudWxsXG4gIH0sIFtcbiAgICBzZWxlY3RlZENvbnRleHQsXG4gICAgaXNDb250ZXh0SG9tZVN0ZXAsXG4gICAgdGFzaz8uaWQsXG4gICAgdGFzaz8ubmFtZSxcbiAgICBjaGlwc1Byb2plY3Q/LnByb2plY3RJZCxcbiAgICBjaGlwc1Byb2plY3Q/LnByb2plY3ROYW1lLFxuICAgIGNsaWVudD8uaWQsXG4gICAgY2xpZW50Py5uYW1lLFxuICBdKVxuXG4gIC8vIGVudGl0eV90eXBlIGRlbCBjb250ZXh0byBwaW5lYWRvIChwcm9qZWN0L2NsaWVudC90YXNrKSwgdG9tYWRvIGRlbCBjb250ZXh0byBnbG9iYWwuXG4gIC8vIEFwbGljYSB0YW50byBhbCBhYnJpciBNQUlBIGRlc2RlIHVuYSBzZWNjacOzbiBlc3BlY8OtZmljYSBjb21vIGFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzbi5cbiAgY29uc3QgcGlubmVkRW50aXR5VHlwZSA9IHVzZU1lbW88UmVjZW50Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICBpZiAodGFzaz8uaWQpIHJldHVybiAndGFzaydcbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0SWQgfHwgcHJvamVjdD8uaWQpIHJldHVybiAncHJvamVjdCdcbiAgICBpZiAoY2xpZW50Py5pZCkgcmV0dXJuICdjbGllbnQnXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbdGFzaz8uaWQsIGNoaXBzUHJvamVjdD8ucHJvamVjdElkLCBwcm9qZWN0Py5pZCwgY2xpZW50Py5pZF0pXG5cbiAgLy8gRW4gcHJvamVjdC9jbGllbnQvdGFzaywgY29uIGVsIHJlaW5pY2lvIGRlIGNvbnRleHRvIGVsIHVzdWFyaW8gcHVlZGUgcGluZWFyIHVuIGNvbnRleHRvIGRlIHVuXG4gIC8vIHRpcG8gZGlzdGludG8gYWwgZGUgbGEgc2VjY2nDs24gZGUgYXBlcnR1cmEgKHAuIGVqLiB1biBwcm9qZWN0IGFicmllbmRvIGRlc2RlIHVuYSB0YXJlYSwgb1xuICAvLyB2aWNldmVyc2EpLiBMYXMgRkFRcy9GVUFzIGRlYmVuIGRlcGVuZGVyIGRlbCBjb250ZXh0byByZWFsbWVudGUgcGluZWFkbywgbm8gZGUgbGEgc2VjY2nDs24gZmlqYS5cbiAgLy8gRW4gZWwgaGVhZGVyIHNlIG1hbnRpZW5lIGxhIGzDs2dpY2EgZXhpc3RlbnRlIChiYXNhZGEgZW4gZWwgY29udGV4dG8gc2VsZWNjaW9uYWRvIC8gYWN0aXZlQ29udGV4dCkuXG4gIGNvbnN0IGlzVGFza0NvbnRleHQgPSAhaXNIZWFkZXJIb21lICYmIHBpbm5lZEVudGl0eVR5cGUgPT09ICd0YXNrJ1xuICAvLyBTb2xvIEZVQXMgKHNpbiBGQVFzKTogdGFzayBwYW5lbCBvIHBsYW5uZXIuXG4gIGNvbnN0IGlzRnVhc09ubHlIb21lID0gaXNQbGFubmVySG9tZSB8fCBpc1Rhc2tDb250ZXh0XG4gIC8vIGBzZWN0aW9uYCBxdWUgc2UgY29uc3VsdGEgcGFyYSBsYXMgRlVBczogZW4gbm8taGVhZGVyIHNpZ3VlIGVsIHRpcG8gZGUgY29udGV4dG8gcGluZWFkby5cbiAgLy8gRW4gcGxhbm5lciBzZSBmdWVyemEgbGEgc2VjdGlvbiBBUEkgYHBsYW5uZXJgLlxuICBjb25zdCBmdWFzU2VjdGlvbjogU2VjdGlvbiA9ICgoKSA9PiB7XG4gICAgaWYgKGlzUGxhbm5lckhvbWUpIHJldHVybiAncGxhbm5lcidcbiAgICBpZiAoIWlzSGVhZGVySG9tZSAmJiBwaW5uZWRFbnRpdHlUeXBlKSByZXR1cm4gcGlubmVkRW50aXR5VHlwZVxuICAgIHJldHVybiBzZWN0aW9uXG4gIH0pKClcblxuICAvLyBGQVFzL2FjY2lvbmVzOlxuICAvLyAgLSBoZWFkZXItaG9tZSAob3JjaGVzdHJhdG9yKSwgcGFzbyAyOiBmaWx0cmFkYXMgcG9yIGBlbnRpdHlfdHlwZWAgZGVsIGNvbnRleHRvIHNlbGVjY2lvbmFkby5cbiAgLy8gIC0gaG9tZXMgZGUgcHJveWVjdG8vY2xpZW50ZS90YXJlYSAoc2VjY2nDs24pOiBmaWx0cmFkYXMgcG9yIGVsIGBlbnRpdHlfdHlwZWAgZGVsIGNvbnRleHRvIHNldGVhZG8uXG4gIC8vICAtIHBsYW5uZXI6IEZVQXMgY29uIHNlY3Rpb249cGxhbm5lciwgc2luIGVudGl0eV90eXBlIG5pIEZBUXMuXG4gIGNvbnN0IHJlYWxMaXN0c0FnZW50SWQgPSAoKCkgPT4ge1xuICAgIGlmICghaXNNQUlBIHx8IGlzTWFpYWtlcikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIC8vIFBhc28gMSAoY29udGV4dG9zIHJlY2llbnRlcywgc2luIGNvbnRleHRvKTogbm8gc2UgcGlkZW4gRkFRcy9GVUFzLlxuICAgIGlmIChpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGlmIChpc0hlYWRlckhvbWUpIHJldHVybiBpc0NvbnRleHRIb21lU3RlcCA/IGFnZW50Py5pZCA6IHVuZGVmaW5lZFxuICAgIHJldHVybiBhZ2VudD8uaWRcbiAgfSkoKVxuICBjb25zdCByZWFsTGlzdHNFbnRpdHlUeXBlID0gKCgpID0+IHtcbiAgICBpZiAoaXNQbGFubmVySG9tZSkgcmV0dXJuICdwbGFubmVyJ1xuICAgIGlmICghaXNIZWFkZXJIb21lKSByZXR1cm4gcGlubmVkRW50aXR5VHlwZVxuICAgIHJldHVybiBpc0NvbnRleHRIb21lU3RlcCA/IChhY3RpdmVDb250ZXh0Py50eXBlID8/IHBpbm5lZEVudGl0eVR5cGUpIDogdW5kZWZpbmVkXG4gIH0pKClcbiAgY29uc3QgeyBhY3Rpb25zOiBhZ2VudEZ1YXMsIGxvYWRpbmc6IGZ1YXNMb2FkaW5nIH0gPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoXG4gICAgcmVhbExpc3RzQWdlbnRJZCxcbiAgICBmdWFzU2VjdGlvbixcbiAgICByZWFsTGlzdHNFbnRpdHlUeXBlXG4gIClcbiAgY29uc3QgeyBhY3Rpb25zOiBjb2xsYWJvcmF0b3JQbGFubmVyRnVhcywgbG9hZGluZzogY29sbGFib3JhdG9yUGxhbm5lckZ1YXNMb2FkaW5nIH0gPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoXG4gICAgaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiAhaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkLFxuICAgICdwbGFubmVyJ1xuICApXG4gIGNvbnN0IHsgYWN0aW9uczogbWFuYWdlckhvbWVGdWFzLCBsb2FkaW5nOiBtYW5hZ2VySG9tZUZ1YXNMb2FkaW5nIH0gPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoXG4gICAgaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID8gYWdlbnQ/LmlkIDogdW5kZWZpbmVkLFxuICAgICdob21lX3dpdGhfaG91cnMnXG4gIClcbiAgY29uc3QgaGVhZGVySG91cnNGdWFzID0gaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lID8gbWFuYWdlckhvbWVGdWFzIDogY29sbGFib3JhdG9yUGxhbm5lckZ1YXNcbiAgY29uc3QgaGVhZGVySG91cnNGdWFzTG9hZGluZyA9IGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSA/IG1hbmFnZXJIb21lRnVhc0xvYWRpbmcgOiBjb2xsYWJvcmF0b3JQbGFubmVyRnVhc0xvYWRpbmdcbiAgY29uc3Qge1xuICAgIGZhcXM6IGFnZW50RmFxcyxcbiAgICBsb2FkaW5nOiBmYXFzTG9hZGluZyxcbiAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMsXG4gIH0gPSB1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMocmVhbExpc3RzQWdlbnRJZCwgbGFuZywgcmVhbExpc3RzRW50aXR5VHlwZSlcbiAgY29uc3QgZmFxc0ZldGNoUmVmID0gdXNlUmVmPHsgYWdlbnRJZDogc3RyaW5nOyBsYW5nOiBzdHJpbmc7IGVudGl0eVR5cGU/OiBzdHJpbmcgfSB8IG51bGw+KG51bGwpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGFzayAvIHBsYW5uZXI6IHNvbG8gRlVBcywgc2luIEZBUXMuXG4gICAgaWYgKCFyZWFsTGlzdHNBZ2VudElkIHx8IGlzRnVhc09ubHlIb21lKSByZXR1cm5cbiAgICBjb25zdCBjdXJyZW50S2V5ID0gYCR7cmVhbExpc3RzQWdlbnRJZH0tJHtsYW5nfS0ke3JlYWxMaXN0c0VudGl0eVR5cGUgPz8gJ2FsbCd9YFxuICAgIGNvbnN0IGxhc3RLZXkgPSBmYXFzRmV0Y2hSZWYuY3VycmVudFxuICAgICAgPyBgJHtmYXFzRmV0Y2hSZWYuY3VycmVudC5hZ2VudElkfS0ke2ZhcXNGZXRjaFJlZi5jdXJyZW50Lmxhbmd9LSR7ZmFxc0ZldGNoUmVmLmN1cnJlbnQuZW50aXR5VHlwZSA/PyAnYWxsJ31gXG4gICAgICA6IG51bGxcbiAgICBpZiAoY3VycmVudEtleSAhPT0gbGFzdEtleSkge1xuICAgICAgZmFxc0ZldGNoUmVmLmN1cnJlbnQgPSB7IGFnZW50SWQ6IHJlYWxMaXN0c0FnZW50SWQsIGxhbmcsIGVudGl0eVR5cGU6IHJlYWxMaXN0c0VudGl0eVR5cGUgfVxuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKHsgYWdlbnRJZDogcmVhbExpc3RzQWdlbnRJZCwgbGFuZywgZW50aXR5VHlwZTogcmVhbExpc3RzRW50aXR5VHlwZSB9KVxuICAgIH1cbiAgfSwgW3JlYWxMaXN0c0FnZW50SWQsIHJlYWxMaXN0c0VudGl0eVR5cGUsIGlzRnVhc09ubHlIb21lLCBsYW5nLCBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNdKVxuXG4gIGNvbnN0IGZhcXMgPSBhZ2VudEZhcXNcbiAgY29uc3QgZnVhcyA9IGFnZW50RnVhc1xuICBjb25zdCBmYXFzQXJlTG9hZGluZyA9IGZhcXNMb2FkaW5nXG4gIGNvbnN0IGZ1YXNBcmVMb2FkaW5nID0gZnVhc0xvYWRpbmdcblxuICBjb25zdCBzaG93UmVjZW50Q29udGV4dHNCbG9jayA9IGlzUmVjZW50Q29udGV4dHNTdGVwICYmIChyZWNlbnRDb250ZXh0c0xvYWRpbmcgfHwgcmVjZW50Q29udGV4dHMubGVuZ3RoID4gMClcbiAgY29uc3Qgc2hvdWxkU2hvd0ZhcXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJlxuICAgICFpc0Z1YXNPbmx5SG9tZSAmJlxuICAgIChpc0NvbnRleHRIb21lU3RlcCB8fCAoIWlzSGVhZGVySG9tZSAmJiBmYXFzQWNjZXNzKSkgJiZcbiAgICAhaXNNYWlha2VyICYmXG4gICAgKGZhcXMubGVuZ3RoID4gMCB8fCBmYXFzQXJlTG9hZGluZylcbiAgY29uc3Qgc2hvdWxkU2hvd0Z1YXMgPVxuICAgICFpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNNYWlha2VyICYmIChpc0NvbnRleHRIb21lU3RlcCB8fCAhaXNIZWFkZXJIb21lKSAmJiAoZnVhcy5sZW5ndGggPiAwIHx8IGZ1YXNBcmVMb2FkaW5nKVxuICBjb25zdCBzaG91bGRTaG93UGxhbm5lckZ1YXNMb2FkaW5nID0gaXNIZWFkZXJIb3Vyc0FnZW50SG9tZSAmJiBoZWFkZXJIb3Vyc0Z1YXNMb2FkaW5nICYmIGhlYWRlckhvdXJzRnVhcy5sZW5ndGggPT09IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzQ29udGVudCA9IGlzSGVhZGVySG91cnNBZ2VudEhvbWUgJiYgaGVhZGVySG91cnNGdWFzLmxlbmd0aCA+IDBcbiAgY29uc3Qgc2hvdWxkU2hvd1BsYW5uZXJGdWFzID0gc2hvdWxkU2hvd1BsYW5uZXJGdWFzTG9hZGluZyB8fCBzaG91bGRTaG93UGxhbm5lckZ1YXNDb250ZW50XG5cbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCA9IHNob3dQcm9qZWN0U3VtbWFyeSAmJiBhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ZBUXMgPSAhIShcbiAgICBzaG93UmVjZW50Q29udGV4dHNCbG9jayB8fFxuICAgIHNob3VsZFNob3dGYXFzIHx8XG4gICAgc2hvdWxkU2hvd0Z1YXMgfHxcbiAgICBzaG91bGRTaG93UGxhbm5lckZ1YXMgfHxcbiAgICBzaG93UHJvamVjdFN1bW1hcnlDYXJkIHx8XG4gICAgaXNNYWlha2VyXG4gIClcbiAgY29uc3QgaG9tZVNjcm9sbGFibGVMYXlvdXQgPSBzaG93RkFRc1xuICBjb25zdCBzaG93RHluYW1pY1NlY3Rpb24gPVxuICAgIHNob3dSZWNlbnRDb250ZXh0c0Jsb2NrIHx8IHNob3VsZFNob3dGYXFzIHx8IHNob3VsZFNob3dGdWFzIHx8IHNob3VsZFNob3dQbGFubmVyRnVhcyB8fCBpc01haWFrZXJcblxuICAvLyBMw7NnaWNhIGRlbCBzY3JvbGwgY29uIGdyYWRpZW50ZXNcbiAgY29uc3QgY29udGVudENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Nob3dUb3BHcmFkaWVudCwgc2V0U2hvd1RvcEdyYWRpZW50XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0JvdHRvbUdyYWRpZW50LCBzZXRTaG93Qm90dG9tR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc1Njcm9sbGluZywgc2V0SXNTY3JvbGxpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRpbWVvdXRSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsPihudWxsKVxuXG4gIC8vIFNhbHVkbyBmaWpvIHBvciB0aXBvIGRlIGNvbnRleHRvIChpMThuKS4gQ3VzdG9tIGFnZW50cyBzaWd1ZW4gdXNhbmRvIGFnZW50LmludHJvZHVjdGlvbi5cbiAgLy8gUGxhbm5lciB1c2EgdMOtdHVsbyArIGJhamFkYSBwcm9waW9zIChgcGxhbm5lckhvbWVgKSwgbm8gZXN0ZSBncmVldGluZy5cbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNNYWlha2VyIHx8IGlzUGxhbm5lckhvbWUgfHwgaXNSZWNlbnRDb250ZXh0c1N0ZXApIHJldHVybiAnJ1xuXG4gICAgaWYgKGlzTUFJQSAmJiBwaW5uZWRFbnRpdHlUeXBlKSB7XG4gICAgICByZXR1cm4gdChgaG9tZU1lbnUuY29udGV4dEhvbWUuY29udGV4dEdyZWV0aW5nLiR7cGlubmVkRW50aXR5VHlwZX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGludHJvID0gYWdlbnQ/LmludHJvZHVjdGlvblxuICAgIGlmICghaW50cm8pIHJldHVybiAnJ1xuICAgIGlmIChBcnJheS5pc0FycmF5KGludHJvKSAmJiBpbnRyby5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW50cm9bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaW50cm8ubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiBpbnRybyA9PT0gJ3N0cmluZycgPyBpbnRybyA6ICcnXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py5pbnRyb2R1Y3Rpb24sIGlzTWFpYWtlciwgaXNQbGFubmVySG9tZSwgaXNNQUlBLCBwaW5uZWRFbnRpdHlUeXBlLCBpc1JlY2VudENvbnRleHRzU3RlcCwgdF0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250ZXh0OiBSZWNlbnRDb250ZXh0SXRlbSwgb3JkZXI6IG51bWJlcikgPT4ge1xuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdENvbnRleHRTZWxlY3RlZCwgeyBvcmRlciwgdHlwZTogY29udGV4dC50eXBlIH0pXG5cbiAgICAgIGNvbnN0IGNvbnRleHRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQuaWQpXG4gICAgICBjb25zdCBjbGllbnRJZCA9IHBhcnNlTnVtZXJpY0lkKGNvbnRleHQucGFyZW50cz8uY2xpZW50X2lkKVxuICAgICAgY29uc3QgcHJvamVjdElkID0gcGFyc2VOdW1lcmljSWQoY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X2lkKVxuICAgICAgY29uc3QgY2xpZW50TmFtZSA9IGNvbnRleHQucGFyZW50cz8uY2xpZW50X25hbWUgfHwgJydcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC5wYXJlbnRzPy5wcm9qZWN0X25hbWUgfHwgJydcblxuICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KGNvbnRleHQpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG5cbiAgICAgIGlmIChjb250ZXh0LnR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldENsaWVudD8uKHsgaWQ6IGNvbnRleHRJZCwgbmFtZTogY29udGV4dC5uYW1lIH0pXG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQudHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGlmIChjb250ZXh0SWQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHNldFByb2plY3Qoe1xuICAgICAgICAgIGlkOiBjb250ZXh0SWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnRJZCB9IDoge30pLFxuICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhjb250ZXh0SWQpLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBjb250ZXh0Lm5hbWUsXG4gICAgICAgICAgY2xpZW50TmFtZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50eXBlID09PSAndGFzaycpIHtcbiAgICAgICAgc2V0VGFzayh7XG4gICAgICAgICAgaWQ6IGNvbnRleHQuaWQsXG4gICAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICAgIC4uLihwcm9qZWN0SWQgIT0gbnVsbCA/IHsgcHJvamVjdElkIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGNsaWVudElkICE9IG51bGwgPyB7IGNsaWVudElkIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjbGllbnRJZCAhPSBudWxsKSB7XG4gICAgICAgICAgc2V0Q2xpZW50Py4oeyBpZDogY2xpZW50SWQsIG5hbWU6IGNsaWVudE5hbWUgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvamVjdElkICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRQcm9qZWN0KHtcbiAgICAgICAgICAgIGlkOiBwcm9qZWN0SWQsXG4gICAgICAgICAgICBuYW1lOiBwcm9qZWN0TmFtZSB8fCBgJHt0KCdob21lTWVudS5yZWNlbnRDb250ZXh0cy50eXBlcy5wcm9qZWN0Jyl9ICR7cHJvamVjdElkfWAsXG4gICAgICAgICAgICAuLi4oY2xpZW50SWQgIT0gbnVsbCA/IHsgY2xpZW50SWQgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihjbGllbnRJZCAhPSBudWxsID8geyBjbGllbnQ6IHsgaWQ6IGNsaWVudElkLCBuYW1lOiBjbGllbnROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWQpLFxuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lIHx8IGAke3QoJ2hvbWVNZW51LnJlY2VudENvbnRleHRzLnR5cGVzLnByb2plY3QnKX0gJHtwcm9qZWN0SWR9YCxcbiAgICAgICAgICAgIGNsaWVudE5hbWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWFpYS1pbnB1dC1yZWZvY3VzJykpXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2V2ZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldENsaWVudCwgc2V0UHJvamVjdCwgc2V0VGFzaywgdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUhvbWVTdGFydENoYXQgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICAgIGZ1YUlkPzogc3RyaW5nXG4gICAgKSA9PiB7XG4gICAgICBpZiAoaXNIZWFkZXJNYW5hZ2VySG91cnNIb21lICYmIGZ1YUlkKSB7XG4gICAgICAgIGZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgc2V0U2VsZWN0ZWRDb250ZXh0KG51bGwpXG4gICAgICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgb25TdGFydENoYXQobWVzc2FnZSwgYXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkKVxuICAgIH0sXG4gICAgW2lzSGVhZGVyTWFuYWdlckhvdXJzSG9tZSwgb25TdGFydENoYXQsIHNldENoaXBzUHJvamVjdCwgc2V0Q2xpZW50LCBzZXRQcm9qZWN0LCBzZXRUYXNrXVxuICApXG5cbiAgY29uc3QgcmVuZGVyUmVjZW50Q29udGV4dHMgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1JlY2VudENvbnRleHRzU3RlcCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNcbiAgICAgICAgJGZpeGVkQ29udGVudFdpZHRoPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZSA/IE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFggOiB1bmRlZmluZWR9XG4gICAgICA+XG4gICAgICAgIHtpc0hlYWRlckhvdXJzQWdlbnRIb21lID8gKFxuICAgICAgICAgIDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIHt0KFxuICAgICAgICAgICAgICAgIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZVxuICAgICAgICAgICAgICAgICAgPyAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlci50aXRsZSdcbiAgICAgICAgICAgICAgICAgIDogJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudFRhc2tzU2VjdGlvbi50aXRsZSdcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgICAgIHt0KFxuICAgICAgICAgICAgICAgIGlzSGVhZGVyTWFuYWdlckhvdXJzSG9tZVxuICAgICAgICAgICAgICAgICAgPyAnaG9tZU1lbnUuY29udGV4dEhvbWUucmVjZW50Q29udGV4dHNTZWN0aW9uTWFuYWdlci5zdWJ0aXRsZSdcbiAgICAgICAgICAgICAgICAgIDogJ2hvbWVNZW51LmNvbnRleHRIb21lLnJlY2VudFRhc2tzU2VjdGlvbi5zdWJ0aXRsZSdcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lUmVjZW50Q29udGV4dHNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NDQUlIb21lUmVjZW50Q29udGV4dHNMaXN0ICRmbHVzaFBpbGxzPXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZX0+XG4gICAgICAgICAge3JlY2VudENvbnRleHRzTG9hZGluZyAmJlxuICAgICAgICAgICAgUkVDRU5UX0NPTlRFWFRfU0tFTEVUT05fS0VZUy5tYXAoa2V5ID0+IDxTQ0NBSUhvbWVSZWNlbnRDb250ZXh0UGlsbFNrZWxldG9uIGtleT17a2V5fSAvPil9XG4gICAgICAgICAgeyFyZWNlbnRDb250ZXh0c0xvYWRpbmcgJiZcbiAgICAgICAgICAgIHJlY2VudENvbnRleHRzLm1hcCgoY29udGV4dCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPFJlY2VudENvbnRleHRQaWxsXG4gICAgICAgICAgICAgICAga2V5PXtgJHtjb250ZXh0LnR5cGV9LSR7Y29udGV4dC5pZH1gfVxuICAgICAgICAgICAgICAgIGNvbnRleHQ9e2NvbnRleHR9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2NvbnRleHQubmFtZS50cmltKCl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlU2VsZWN0UmVjZW50Q29udGV4dChjb250ZXh0LCBpbmRleCArIDEpfVxuICAgICAgICAgICAgICAgIGZ1bGxXaWR0aD17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVSZWNlbnRDb250ZXh0c0xpc3Q+XG4gICAgICA8L1NDQ0FJSG9tZVJlY2VudENvbnRleHRzPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGNoZWNrU2Nyb2xsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyIHx8ICFob21lU2Nyb2xsYWJsZUxheW91dCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzU2Nyb2xsYWJsZSA9IHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodFxuICAgIGNvbnN0IGlzQXRUb3AgPSBzY3JvbGxUb3AgPT09IDBcbiAgICBjb25zdCBpc0F0Qm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDFcblxuICAgIHNldFNob3dUb3BHcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRUb3ApXG4gICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGlzU2Nyb2xsYWJsZSAmJiAhaXNBdEJvdHRvbSlcbiAgfSwgW2hvbWVTY3JvbGxhYmxlTGF5b3V0XSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2hlY2tTY3JvbGwoKVxuICAgIHNldElzU2Nyb2xsaW5nKHRydWUpXG5cbiAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KVxuICAgIH1cblxuICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxpbmcoZmFsc2UpXG4gICAgfSwgMTUwKVxuICB9LCBbY2hlY2tTY3JvbGxdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFob21lU2Nyb2xsYWJsZUxheW91dCkge1xuICAgICAgc2V0U2hvd1RvcEdyYWRpZW50KGZhbHNlKVxuICAgICAgc2V0U2hvd0JvdHRvbUdyYWRpZW50KGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRlbnRDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZWR1bGVDaGVja1Njcm9sbCA9ICgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGNoZWNrU2Nyb2xsKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgc2NoZWR1bGVDaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcblxuICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHNjaGVkdWxlQ2hlY2tTY3JvbGwpXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIpXG4gICAgY29uc3Qgc2Nyb2xsQ29udGVudCA9IGNvbnRhaW5lci5maXJzdEVsZW1lbnRDaGlsZFxuICAgIGlmIChzY3JvbGxDb250ZW50IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShzY3JvbGxDb250ZW50KVxuICAgIH1cblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KHNjaGVkdWxlQ2hlY2tTY3JvbGwsIDEwMClcbiAgICBjb25zdCBsYXRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoc2NoZWR1bGVDaGVja1Njcm9sbCwgNDAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICByZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBjbGVhclRpbWVvdXQobGF0ZVRpbWVvdXRJZClcbiAgICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtob21lU2Nyb2xsYWJsZUxheW91dCwgY2hlY2tTY3JvbGwsIGhhbmRsZVNjcm9sbF0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhvbWVTY3JvbGxhYmxlTGF5b3V0KSByZXR1cm5cbiAgICBjaGVja1Njcm9sbCgpXG4gIH0sIFtcbiAgICBob21lU2Nyb2xsYWJsZUxheW91dCxcbiAgICBjaGVja1Njcm9sbCxcbiAgICByZWNlbnRDb250ZXh0c0xvYWRpbmcsXG4gICAgcmVjZW50Q29udGV4dHMubGVuZ3RoLFxuICAgIGhlYWRlckhvdXJzRnVhc0xvYWRpbmcsXG4gICAgaGVhZGVySG91cnNGdWFzLmxlbmd0aCxcbiAgICBmdWFzTG9hZGluZyxcbiAgICBmdWFzLmxlbmd0aCxcbiAgICBmYXFzQXJlTG9hZGluZyxcbiAgICBmYXFzLmxlbmd0aCxcbiAgICBzaG91bGRTaG93UGxhbm5lckZ1YXMsXG4gICAgaXNNYWlha2VyLFxuICBdKVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50QWxpZ25TdGFydCA9IGlzUGxhbm5lckhvbWUgfHwgaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgfHwgaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWVcblxuICAgIGNvbnN0IG1haWFIZWFkZXJTdGFja05lZWRzR2FwID1cbiAgICAgIChpc1JlY2VudENvbnRleHRzU3RlcCAmJiAhaXNIZWFkZXJUYXNrQ29udGV4dEhvbWUgJiYgIWlzUGxhbm5lckhvbWUpIHx8XG4gICAgICAoIWlzUmVjZW50Q29udGV4dHNTdGVwICYmXG4gICAgICAgICEhZ3JlZXRpbmcgJiZcbiAgICAgICAgIWlzUGxhbm5lckhvbWUgJiZcbiAgICAgICAgIWlzSGVhZGVyVGFza0NvbnRleHRIb21lICYmXG4gICAgICAgICFpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZSlcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlIb21lTWFpYUhlYWRlclN0YWNrICRub0dhcD17IW1haWFIZWFkZXJTdGFja05lZWRzR2FwfSAkYWxpZ249e2NvbnRlbnRBbGlnblN0YXJ0ID8gJ3N0YXJ0JyA6ICdjZW50ZXInfT5cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmICFpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiAhaXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgJiYgKFxuICAgICAgICAgIDxTQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICAgIDwvU0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgPC9TQ0NBSUhvbWVJY29uQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICB7aXNQbGFubmVySG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlQmxvY2sgJGFsaWduPVwic3RhcnRcIj5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZSAkc2l6ZT1cIm1kXCIgJGFsaWduPVwic3RhcnRcIj5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnBsYW5uZXJIb21lLnRpdGxlJyl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVN1YnRpdGxlICRhbGlnbj1cInN0YXJ0XCI+e3QoJ2hvbWVNZW51LnBsYW5uZXJIb21lLnN1YnRpdGxlJyl9PC9TQ0NBSUhvbWVTdWJ0aXRsZT5cbiAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlQmxvY2s+XG4gICAgICAgICl9XG4gICAgICAgIHshaXNQbGFubmVySG9tZSAmJiBpc1JlY2VudENvbnRleHRzU3RlcCAmJiBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiAoXG4gICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlQmxvY2sgJGFsaWduPVwic3RhcnRcIiAkZnVsbFdpZHRoPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVRpdGxlICRzaXplPVwiY29udGV4dFwiICRhbGlnbj1cInN0YXJ0XCIgJGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNvbnRleHRIb21lLmdyZWV0aW5nJywgeyBuYW1lOiB1c2VyLmZpcnN0TmFtZSB9KX1cbiAgICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGU+XG4gICAgICAgICAgICA8U0NDQUlIb21lU3VidGl0bGUgJGFsaWduPVwic3RhcnRcIiAkY29sbGFib3JhdG9ySG9tZT5cbiAgICAgICAgICAgICAge3QoaGVhZGVyVGFza0NvbnRleHRTdWJ0aXRsZUtleSl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NDQUlIb21lVGl0bGVCbG9jaz5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpc1BsYW5uZXJIb21lICYmIGlzUmVjZW50Q29udGV4dHNTdGVwICYmICFpc0hlYWRlclRhc2tDb250ZXh0SG9tZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVUaXRsZSAkYWxpZ249e2lzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lID8gJ3N0YXJ0JyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICAgIHt0KCdob21lTWVudS5jb250ZXh0SG9tZS5ncmVldGluZycsIHsgbmFtZTogdXNlci5maXJzdE5hbWUgfSl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVRpdGxlPlxuICAgICAgICAgICAgPFNDQ0FJSG9tZVN1YnRpdGxlICRhbGlnbj17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgaXNDb2xsYWJvcmF0b3JSb2xlKHVzZXIucm9sZV9pZClcbiAgICAgICAgICAgICAgICAgID8gJ2hvbWVNZW51LmNvbnRleHRIb21lLnN1YnRpdGxlQ29sbGFib3JhdG9yJ1xuICAgICAgICAgICAgICAgICAgOiAnaG9tZU1lbnUuY29udGV4dEhvbWUuc3VidGl0bGUnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZVN1YnRpdGxlPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7IWlzUGxhbm5lckhvbWUgJiYgIWlzUmVjZW50Q29udGV4dHNTdGVwICYmIGdyZWV0aW5nICYmIChcbiAgICAgICAgICA8U0NDQUlIb21lR3JlZXRpbmdcbiAgICAgICAgICAgICRhbGlnbj17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWUgPyAnc3RhcnQnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgJHNpemU9e2lzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lID8gJ21kJyA6ICdsZyd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2dyZWV0aW5nfVxuICAgICAgICAgIDwvU0NDQUlIb21lR3JlZXRpbmc+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ0FJSG9tZU1haWFIZWFkZXJTdGFjaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBmaXhlZEhvbWVDb250ZW50V2lkdGggPVxuICAgIGlzSGVhZGVyVGFza0NvbnRleHRIb21lIHx8IGlzTGVmdEFsaWduZWRPcmNoZXN0cmF0b3JIb21lXG4gICAgICA/IE1BSUFfSEVBREVSX0NPTExBQk9SQVRPUl9IT01FX0NPTlRFTlRfV0lEVEhfUFhcbiAgICAgIDogdW5kZWZpbmVkXG4gIGNvbnN0IGNvbnRlbnRBbGlnblN0YXJ0ID0gaXNQbGFubmVySG9tZSB8fCBpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZVxuICBjb25zdCBzaG93QWdlbnRJbnRyb2R1Y3Rpb24gPSBzZWN0aW9uICE9PSAncHJvamVjdCcgJiYgIWlzTUFJQSAmJiAhIWFnZW50Py5pbnRyb2R1Y3Rpb25cblxuICByZXR1cm4gKFxuICAgIDxTQ0NBSUhvbWVDb250YWluZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfSAkYWxpZ25TdGFydD17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWV9PlxuICAgICAge2hvbWVTY3JvbGxhYmxlTGF5b3V0ICYmIDxTQ0NBSUhvbWVHcmFkaWVudFRvcCAkc2hvdz17c2hvd1RvcEdyYWRpZW50fSAvPn1cbiAgICAgIDxTQ0NBSUhvbWVDb250ZW50XG4gICAgICAgIHJlZj17Y29udGVudENvbnRhaW5lclJlZn1cbiAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAkaXNBZ2VudFZpZXc9eyFpc01BSUF9XG4gICAgICAgICRmbG9hdGluZ0N1c3RvbUNlbnRlcj17ZmxvYXRpbmdDdXN0b21DZW50ZXJ9XG4gICAgICAgICRjZW50ZXJWZXJ0aWNhbGx5PXtpc1BsYW5uZXJIb21lfVxuICAgICAgICAkYWxpZ25TdGFydD17aXNMZWZ0QWxpZ25lZE9yY2hlc3RyYXRvckhvbWV9XG4gICAgICAgICRmaXhlZENvbnRlbnRXaWR0aD17Zml4ZWRIb21lQ29udGVudFdpZHRofVxuICAgICAgPlxuICAgICAgICA8U0NDQUlIb21lQ29udGVudElubmVyXG4gICAgICAgICAgc2hvd0ZBUXM9e2hvbWVTY3JvbGxhYmxlTGF5b3V0fVxuICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICAkZmxvYXRpbmdDdXN0b21DZW50ZXI9e2Zsb2F0aW5nQ3VzdG9tQ2VudGVyfVxuICAgICAgICAgICRjZW50ZXJWZXJ0aWNhbGx5PXtpc1BsYW5uZXJIb21lfVxuICAgICAgICAgICRhbGlnblN0YXJ0PXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgICAkaGVhZGVyQ29sbGFib3JhdG9ySG9tZT17aXNIZWFkZXJUYXNrQ29udGV4dEhvbWV9XG4gICAgICAgICAgJHNlY3Rpb25PcmNoZXN0cmF0b3JIb21lPXtpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e3Nob3dBZ2VudEludHJvZHVjdGlvbiA/ICcyMHB4JyA6ICcwJ31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICAgICRhbGlnbj17Y29udGVudEFsaWduU3RhcnQgPyAnc3RhcnQnIDogJ2NlbnRlcid9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlckhlYWRlckNvbnRlbnQoKX1cblxuICAgICAgICAgICAge3Nob3dBZ2VudEludHJvZHVjdGlvbiA/IChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnthZ2VudC5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUhlYWRlcj5cbiAgICAgICAgICB7c2hvd1Byb2plY3RTdW1tYXJ5Q2FyZCAmJiAoXG4gICAgICAgICAgICA8U0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Qgb25DbGljaz17aGFuZGxlcnMucHJvamVjdFN1bW1hcnl9PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgICAgPFRlbXBsYXRlR3JhZGllbnRJY29uIGhlaWdodD17MjR9IHdpZHRoPXsyNH0gLz5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT57dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkudGl0bGUnKX08L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICB7dCgnaG9tZU1lbnUucHJvamVjdFN1bW1hcnkuZGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgPC9TQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtzaG93RHluYW1pY1NlY3Rpb24gJiYgKFxuICAgICAgICAgICAgPFNDQ0FJSG9tZUR5bmFtaWNTZWN0aW9uXG4gICAgICAgICAgICAgICRncm93PXtpc01haWFrZXJ9XG4gICAgICAgICAgICAgICRhbGlnblN0YXJ0PXtpc0hlYWRlclRhc2tDb250ZXh0SG9tZSB8fCBpc0xlZnRBbGlnbmVkT3JjaGVzdHJhdG9ySG9tZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3Nob3VsZFNob3dQbGFubmVyRnVhcyA/IChcbiAgICAgICAgICAgICAgICA8RnJlcXVlbnRseVVzZWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicGxhbm5lclwiXG4gICAgICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17aGFuZGxlSG9tZVN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2hlYWRlckhvdXJzRnVhc31cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9e2hlYWRlckhvdXJzRnVhc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtyZW5kZXJSZWNlbnRDb250ZXh0cygpfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0ZhcXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICAgICAgYWdlbnRJZD17YWdlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGZhcXM9e2ZhcXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmYXFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7c2hvdWxkU2hvd0Z1YXMgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmVxdWVudGx5VXNlZEFjdGlvbnNcbiAgICAgICAgICAgICAgICAgIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH1cbiAgICAgICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM9e2Z1YXN9XG4gICAgICAgICAgICAgICAgICBsb2FkaW5nPXtmdWFzQXJlTG9hZGluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNNYWlha2VyID8gPENoYXRBSUhvbWVNYWlha2VyIG9uU3RhcnRDaGF0PXtvblN0YXJ0Q2hhdH0gLz4gOiBudWxsfVxuICAgICAgICAgICAgPC9TQ0NBSUhvbWVEeW5hbWljU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIHtob21lU2Nyb2xsYWJsZUxheW91dCAmJiA8U0NDQUlIb21lR3JhZGllbnRCb3R0b20gJHNob3c9e3Nob3dCb3R0b21HcmFkaWVudH0gLz59XG4gICAgPC9TQ0NBSUhvbWVDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsZUFBZSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMxRixTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUVyQyxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGFBQWEsUUFBUSxnREFBZ0Q7QUFDOUUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFJMUQsU0FDRUMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyx1QkFBdUIsRUFDdkJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQywyQkFBMkIsRUFDM0JDLGtCQUFrQixFQUNsQkMsdUJBQXVCLEVBQ3ZCQyw4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
@@ -33,7 +33,7 @@ var markOpenedSessionAsReadIfVisible = function markOpenedSessionAsReadIfVisible
33
33
  activeChatId = _getChatsStoreState.activeChatId,
34
34
  markChatAsRead = _getChatsStoreState.markChatAsRead;
35
35
  if (!isChatViewVisible || activeChatId !== sessionId) return;
36
- void markChatAsRead(sessionId);
36
+ markChatAsRead(sessionId);
37
37
  };
38
38
  var buildInitialMessagePlaceholder = function buildInitialMessagePlaceholder(userInitialMessage, currentUser) {
39
39
  return [_objectSpread(_objectSpread({
@@ -746,4 +746,4 @@ export var useChatMessages = function useChatMessages(_ref) {
746
746
  handleScroll: handleScroll
747
747
  };
748
748
  };
749
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwidXNlU2Vzc2lvbnNTdG9yZSIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsImdldENoYXRzU3RvcmVTdGF0ZSIsImhhc01lYW5pbmdmdWxVc2VySW5pdGlhbE1lc3NhZ2UiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlckluaXRpYWxNZXNzYWdlJG0iLCJfdXNlckluaXRpYWxNZXNzYWdlJGEiLCJCb29sZWFuIiwibWVzc2FnZSIsInRyaW0iLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImZ1YUlkIiwic2NJZCIsIm1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlIiwic2Vzc2lvbklkIiwiX2dldENoYXRzU3RvcmVTdGF0ZSIsImlzQ2hhdFZpZXdWaXNpYmxlIiwiYWN0aXZlQ2hhdElkIiwibWFya0NoYXRBc1JlYWQiLCJidWlsZEluaXRpYWxNZXNzYWdlUGxhY2Vob2xkZXIiLCJjdXJyZW50VXNlciIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwidXNlciIsIm1lbnRpb25zIiwiY29udGV4dE1lc3NhZ2UiLCJyZXdyaXRlVGFza1VybHNJbkNvbnRlbnQiLCJjb250ZW50IiwidGFiU2VnbWVudCIsInRhc2tVcmxSZWdleCIsIlJlZ0V4cCIsInJlcGxhY2UiLCJ1cmwiLCJ1c2VDaGF0TWVzc2FnZXMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkVycm9yIiwiY2hhdElkIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsb2FkaW5nTWVzc2FnZXMiLCJzZXRMb2FkaW5nTWVzc2FnZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwicHJvamVjdCIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwidGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsInNldElzTG9hZGluZ01vcmVNZXNzYWdlcyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibGFzdEV2YWx1YXRlZEtleSIsInNldExhc3RFdmFsdWF0ZWRLZXkiLCJpc0xvYWRpbmdSZWYiLCJpbml0aWFsTG9hZERvbmUiLCJwcmV2aW91c0NoYXRJZCIsImxvYWRTZXFSZWYiLCJzeW5jTWVzc2FnZXNUb1N0b3JlIiwidGFyZ2V0Q2hhdElkIiwibmV4dE1lc3NhZ2VzIiwibGFzdEV2YWx1YXRlZEtleVZhbHVlIiwiZ2V0U3RhdGUiLCJ1bmRlZmluZWQiLCJwYXRjaFZpZXdDYWNoZSIsInNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEiLCJfcmVmMyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZjIiLCJwcm9qZWN0SWRNZXNzYWdlIiwicHJvamVjdE5hbWVGcm9tU2Vzc2lvbiIsImNsaWVudElkRnJvbVNlc3Npb24iLCJjbGllbnROYW1lRnJvbVNlc3Npb24iLCJ0YXNrSWRGcm9tU2Vzc2lvbiIsInRhc2tOYW1lRnJvbVNlc3Npb24iLCJwcm9qZWN0cyIsImhhc011bHRpQWdlbnRzQWNjZXNzIiwicHJvamVjdElkTnVtIiwiZm91bmRQcm9qZWN0IiwiX2ZvdW5kUHJvamVjdCRjbGllbnQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm5hbWUiLCJOdW1iZXIiLCJhYnJ1cHQiLCJzZW50Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImZpbmQiLCJwIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiY2xpZW50IiwicHJvamVjdElkIiwiU3RyaW5nIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXN0b3JlU2Vzc2lvbkZyb21TdG9yZSIsIl9yZWY0IiwiX2NhbGxlZTIiLCJfY2FjaGUkbGFzdEV2YWx1YXRlZEsiLCJzZXNzaW9uc1N0b3JlIiwiY2FjaGVkTWVzc2FnZXMiLCJjYWNoZSIsIl9jb250ZXh0MiIsImdldE1lc3NhZ2VzIiwiZ2V0Vmlld0NhY2hlIiwiY3VycmVudCIsImFnZW50U25hcHNob3QiLCJjb252ZXJzYXRpb25NZXRhIiwic2Vzc2lvbk1ldGFFdmVudCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiX3gyIiwibG9hZE1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsIm9wdGlvbnMiLCJzZXEiLCJzZWxlY3RBZ2VudEZvclNlc3Npb24iLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsImFnZW50VHlwZUZyb21TZXNzaW9uIiwiYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsInNlc3Npb25NZXRhIiwiZmluYWxNZXNzYWdlcyIsInRhaWwiLCJleGlzdGluZ0lkcyIsImV4dHJhIiwicGFnaW5hdGlvbktleSIsIl90IiwiX2NvbnRleHQzIiwiZm9yY2UiLCJjYW5SZXN0b3JlU2Vzc2lvbiIsImNvbnNvbGUiLCJpbmZvIiwiQ2hhdHMiLCJnZXRDaGF0TWVzc2FnZXMiLCJvZmZzZXQiLCJjYW5jZWxsZWRUZXh0IiwibGFuZyIsImxhbmd1YWdlIiwiYWdlbnRUeXBlIiwiYWdlbnRFbnRpdHkiLCJjbGllbnRJZCIsInRhc2tJZCIsInRhc2tOYW1lIiwiY3VycmVudENoYXRJZCIsImN1cnJlbnRTZXEiLCJpdGVtQ291bnQiLCJ1c2VyUGVybWlzc2lvbnNWaWV3IiwidmlldyIsImFnZW50SW5BZ2VudHNMaXN0IiwiYSIsImVtb2ppIiwidHlwZSIsImlzX2RlbGV0ZWQiLCJkZWxldGVkX2F0IiwiZGVsZXRlZEF0IiwiY29ubmVjdG9ycyIsImFnZW50IiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJwcm9qZWN0X2RlbGV0ZWQiLCJoYXNfbm90X2FjY2VzcyIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJnZXRNZXRhIiwic3RhdHVzIiwiU2V0IiwiZmlsdGVyIiwiaGFzIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2V0Vmlld0NhY2hlIiwiaHlkcmF0ZWRGcm9tQXBpIiwiZmluaXNoIiwiX3gzIiwibG9hZE1vcmVNZXNzYWdlcyIsIl9yZWY2IiwiX2NhbGxlZTQiLCJjb250YWluZXIiLCJvbGRTY3JvbGxIZWlnaHQiLCJvbGRTY3JvbGxUb3AiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQyIiwiaXRlbXNUb01lcmdlIiwibmV3TWVzc2FnZXMiLCJfdDIiLCJfY29udGV4dDQiLCJzY3JvbGxIZWlnaHQiLCJzY3JvbGxUb3AiLCJzbGljZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNvbnRhaW5lclJlZiIsIm5ld1Njcm9sbEhlaWdodCIsImhlaWdodERpZmZlcmVuY2UiLCJfeDQiLCJoYW5kbGVTY3JvbGwiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxQZXJjZW50YWdlIiwiZnJvbUNoYXRJZCIsImNhblJlc3RvcmUiLCJmcm9tIiwidG8iLCJwZW5kaW5nSW5pdGlhbE1lc3NhZ2UiLCJlcnJvciIsImRpZFJld3JpdGVSZWYiLCJuZWVkc1Jld3JpdGUiLCJzb21lIiwibXNnIiwibWF0Y2hlcyIsIm1hdGNoIiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsInJld3JpdHRlbiIsImFkZE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2VJbmRleCIsImZpbmRJbmRleCIsInJlbW92ZU1lc3NhZ2UiLCJtZXNzYWdlSWQiLCJoYXNNb3JlTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgYnVpbGRDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFVzZUNoYXRNZXNzYWdlc1Byb3BzIH0gZnJvbSAnLi91c2VDaGF0TWVzc2FnZXMuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZUZvckRpc3BsYXkgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2UnXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbnNTdG9yZSdcbmltcG9ydCB7IGlzQWN0aXZlU2Vzc2lvblN0YXR1cyB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzJ1xuaW1wb3J0IHsgZ2V0Q2hhdHNTdG9yZVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUvdXNlQ2hhdHNTdG9yZSdcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tICcuLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEsIFNlc3Npb25NZXRhRXZlbnREZXRhaWwgfSBmcm9tICcuLi8uLi9zdG9yZS9zZXNzaW9ucy9zZXNzaW9ucy50eXBlcydcblxudHlwZSBMb2FkTWVzc2FnZXNPcHRpb25zID0ge1xuICAvKiogSWdub3JhIGNhY2hlIGVuIG1lbW9yaWEgeSB2dWVsdmUgYSBwZWRpciBnZXRDaGF0TWVzc2FnZXMuICovXG4gIGZvcmNlPzogYm9vbGVhblxufVxuXG50eXBlIFVzZXJJbml0aWFsTWVzc2FnZSA9IFVzZUNoYXRNZXNzYWdlc1Byb3BzWyd1c2VySW5pdGlhbE1lc3NhZ2UnXVxuXG4vKiogRWwgbW9kYWwgdXNhIGB7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfWAgY29tbyBcInNpbiBtZW5zYWplIGluaWNpYWxcIjsgbm8gZXMgZmFsc3kuICovXG5jb25zdCBoYXNNZWFuaW5nZnVsVXNlckluaXRpYWxNZXNzYWdlID0gKHVzZXJJbml0aWFsTWVzc2FnZT86IFVzZXJJbml0aWFsTWVzc2FnZSk6IGJvb2xlYW4gPT5cbiAgQm9vbGVhbihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAodXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2U/LnRyaW0oKSB8fFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzPy5sZW5ndGggfHxcbiAgICAgIHVzZXJJbml0aWFsTWVzc2FnZS5mdWFJZCB8fFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLnNjSWQpXG4gIClcblxuLyoqIE1hcmNhIGxhIHNlc2nDs24gY29tbyBsZcOtZGEgY3VhbmRvIHRlcm1pbsOzIGRlIGhpZHJhdGFyc2UgeSBzaWd1ZSBzaWVuZG8gbGEgYWN0aXZhIHkgdmlzaWJsZS4gKi9cbmNvbnN0IG1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlID0gKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgaXNDaGF0Vmlld1Zpc2libGUsIGFjdGl2ZUNoYXRJZCwgbWFya0NoYXRBc1JlYWQgfSA9IGdldENoYXRzU3RvcmVTdGF0ZSgpXG4gIGlmICghaXNDaGF0Vmlld1Zpc2libGUgfHwgYWN0aXZlQ2hhdElkICE9PSBzZXNzaW9uSWQpIHJldHVyblxuICB2b2lkIG1hcmtDaGF0QXNSZWFkKHNlc3Npb25JZClcbn1cblxuY29uc3QgYnVpbGRJbml0aWFsTWVzc2FnZVBsYWNlaG9sZGVyID0gKFxuICB1c2VySW5pdGlhbE1lc3NhZ2U6IE5vbk51bGxhYmxlPFVzZXJJbml0aWFsTWVzc2FnZT4sXG4gIGN1cnJlbnRVc2VyOiBVc2VDaGF0TWVzc2FnZXNQcm9wc1snY3VycmVudFVzZXInXVxuKTogQ2hhdE1lc3NhZ2VbXSA9PiBbXG4gIHtcbiAgICBpZDogJ3VzZXItaW5pdGlhbC1tZXNzYWdlJyxcbiAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgIG1lc3NhZ2U6IGZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZUZvckRpc3BsYXkodXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsIHtcbiAgICAgIGZ1YUlkOiB1c2VySW5pdGlhbE1lc3NhZ2UuZnVhSWQsXG4gICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICB9KSxcbiAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgPyB7IGNvbnRleHRNZXNzYWdlOiBidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucykgfVxuICAgICAgOiB7fSksXG4gIH0sXG5dXG5cbmNvbnN0IHJld3JpdGVUYXNrVXJsc0luQ29udGVudCA9IChjb250ZW50OiBzdHJpbmcsIHRhYlNlZ21lbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICByZXR1cm4gY29udGVudC5yZXBsYWNlKHRhc2tVcmxSZWdleCwgdXJsID0+XG4gICAgdXJsLnJlcGxhY2UoL1xcLyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSg/PSR8XFw/KS8sIHRhYlNlZ21lbnQpXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUNoYXRNZXNzYWdlcyA9ICh7XG4gIG9uRXJyb3IsXG4gIGNoYXRJZCxcbiAgY3VycmVudFVzZXIsXG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgYWdlbnRzID0gW10sXG59OiBVc2VDaGF0TWVzc2FnZXNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlcywgc2V0TG9hZGluZ01lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbWVzc2FnZXMsIHNldE1lc3NhZ2VzXSA9IHVzZVN0YXRlPENoYXRNZXNzYWdlW10+KCgpID0+XG4gICAgaGFzTWVhbmluZ2Z1bFVzZXJJbml0aWFsTWVzc2FnZSh1c2VySW5pdGlhbE1lc3NhZ2UpICYmIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgPyBidWlsZEluaXRpYWxNZXNzYWdlUGxhY2Vob2xkZXIodXNlckluaXRpYWxNZXNzYWdlLCBjdXJyZW50VXNlcilcbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuICBjb25zdCBsb2FkU2VxUmVmID0gdXNlUmVmKDApXG5cbiAgY29uc3Qgc3luY01lc3NhZ2VzVG9TdG9yZSA9IHVzZUNhbGxiYWNrKFxuICAgICh0YXJnZXRDaGF0SWQ6IHN0cmluZywgbmV4dE1lc3NhZ2VzOiBDaGF0TWVzc2FnZVtdLCBsYXN0RXZhbHVhdGVkS2V5VmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgIHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5zZXRNZXNzYWdlcyh0YXJnZXRDaGF0SWQsIG5leHRNZXNzYWdlcylcbiAgICAgIGlmIChsYXN0RXZhbHVhdGVkS2V5VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkucGF0Y2hWaWV3Q2FjaGUodGFyZ2V0Q2hhdElkLCB7IGxhc3RFdmFsdWF0ZWRLZXk6IGxhc3RFdmFsdWF0ZWRLZXlWYWx1ZSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICAgdGFza0lkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICB9KSA9PiB7XG4gICAgICAvLyBUYXJlYSBkZSBsYSBjb252ZXJzYWNpw7NuOiBzZSBkZXJpdmEgZGUgbGEgbWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBwYXJhIG1vc3RyYXIgZWwgY2hpcFxuICAgICAgLy8gZGUgbGEgdGFyZWEgKHkgcmVlbnZpYXIgbGEgbWV0YWRhdGEgZW4gY2FkYSBtZW5zYWplKSBzaW4gaW1wb3J0YXIgZGVzZGUgZMOzbmRlIHNlIGFicmEuXG4gICAgICBpZiAodGFza0lkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiB0YXNrTmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldFRhc2soeyBpZDogdGFza0lkRnJvbVNlc3Npb24sIG5hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVyc2FjacOzbiBjb24gY2xpZW50X21ldGFkYXRhOiBzZXRlYXIgY2xpZW50ZSB5IGxpbXBpYXIgcHJveWVjdG9cbiAgICAgIGlmIChjbGllbnRJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgY2xpZW50TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldENsaWVudCh7IGlkOiBOdW1iZXIoY2xpZW50SWRGcm9tU2Vzc2lvbiksIG5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbiB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgaGFzTXVsdGlBZ2VudHNBY2Nlc3MpIHtcbiAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmRQcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZFByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoZm91bmRQcm9qZWN0KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmZXRjaFByb2plY3RzLCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0VGFza11cbiAgKVxuXG4gIGNvbnN0IHJlc3RvcmVTZXNzaW9uRnJvbVN0b3JlID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHRhcmdldENoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzZXNzaW9uc1N0b3JlID0gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpXG4gICAgICBjb25zdCBjYWNoZWRNZXNzYWdlcyA9IHNlc3Npb25zU3RvcmUuZ2V0TWVzc2FnZXModGFyZ2V0Q2hhdElkKVxuICAgICAgY29uc3QgY2FjaGUgPSBzZXNzaW9uc1N0b3JlLmdldFZpZXdDYWNoZSh0YXJnZXRDaGF0SWQpXG5cbiAgICAgIHNldE1lc3NhZ2VzKGNhY2hlZE1lc3NhZ2VzKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShjYWNoZT8ubGFzdEV2YWx1YXRlZEtleSA/PyAwKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSB0cnVlXG5cbiAgICAgIGlmIChjYWNoZT8uYWdlbnRTbmFwc2hvdCkge1xuICAgICAgICBzZWxlY3RBZ2VudChjYWNoZS5hZ2VudFNuYXBzaG90KVxuICAgICAgfVxuXG4gICAgICBpZiAoY2FjaGU/LmNvbnZlcnNhdGlvbk1ldGEpIHtcbiAgICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgICAgcHJvamVjdElkTWVzc2FnZTogY2FjaGUuY29udmVyc2F0aW9uTWV0YS5wcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IGNhY2hlLmNvbnZlcnNhdGlvbk1ldGEucHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZEZyb21TZXNzaW9uOiBjYWNoZS5jb252ZXJzYXRpb25NZXRhLmNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uOiBjYWNoZS5jb252ZXJzYXRpb25NZXRhLmNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbjogY2FjaGUuY29udmVyc2F0aW9uTWV0YS50YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZUZyb21TZXNzaW9uOiBjYWNoZS5jb252ZXJzYXRpb25NZXRhLnRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChjYWNoZT8uc2Vzc2lvbk1ldGFFdmVudCkge1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1jaGF0LXNlc3Npb24tbWV0YScsIHtcbiAgICAgICAgICAgIGRldGFpbDogY2FjaGUuc2Vzc2lvbk1ldGFFdmVudCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIG1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlKHRhcmdldENoYXRJZClcbiAgICB9LFxuICAgIFtzZWxlY3RBZ2VudCwgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YV1cbiAgKVxuXG4gIGNvbnN0IGxvYWRNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvcHRpb25zPzogTG9hZE1lc3NhZ2VzT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKCFvcHRpb25zPy5mb3JjZSAmJiB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuY2FuUmVzdG9yZVNlc3Npb24oY2hhdElkKSkge1xuICAgICAgICBhd2FpdCByZXN0b3JlU2Vzc2lvbkZyb21TdG9yZShjaGF0SWQpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsb2FkU2VxUmVmLmN1cnJlbnQgKz0gMVxuICAgICAgY29uc3Qgc2VxID0gbG9hZFNlcVJlZi5jdXJyZW50XG4gICAgICBjb25zdCB0YXJnZXRDaGF0SWQgPSBjaGF0SWRcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKHRydWUpXG4gICAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlQ2hhdE1lc3NhZ2VzXSBsb2FkTWVzc2FnZXMgc3RhcnQnLCB7IGNoYXRJZDogdGFyZ2V0Q2hhdElkLCBzZXEsIGZvcmNlOiBvcHRpb25zPy5mb3JjZSB9KVxuICAgICAgICBsZXQgYWdlbnRTbmFwc2hvdDogQWdlbnQgfCBudWxsID0gbnVsbFxuICAgICAgICBjb25zdCBzZWxlY3RBZ2VudEZvclNlc3Npb24gPSAobmV4dDogQWdlbnQpID0+IHtcbiAgICAgICAgICBzZWxlY3RBZ2VudChuZXh0KVxuICAgICAgICAgIGFnZW50U25hcHNob3QgPSBuZXh0XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIG5leHRJdGVtLFxuICAgICAgICAgIGFnZW50RGVsZXRlZCxcbiAgICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24sXG4gICAgICAgICAgYWdlbnRUeXBlOiBhZ2VudFR5cGVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBhZ2VudEVudGl0eTogYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbixcbiAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgcHJvamVjdERlbGV0ZWQsXG4gICAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgICAgY2hhdElkOiB0YXJnZXRDaGF0SWQsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgIGNhbmNlbGxlZFRleHQ6IHQoJ2NoYXQuY2FuY2VsbGVkJyksXG4gICAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoc2VxICE9PSBsb2FkU2VxUmVmLmN1cnJlbnQgfHwgdGFyZ2V0Q2hhdElkICE9PSBjaGF0SWQpIHtcbiAgICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIGxvYWRNZXNzYWdlcyBzdGFsZSByZXNwb25zZSBkaXNjYXJkZWQnLCB7XG4gICAgICAgICAgICB0YXJnZXRDaGF0SWQsXG4gICAgICAgICAgICBjdXJyZW50Q2hhdElkOiBjaGF0SWQsXG4gICAgICAgICAgICBzZXEsXG4gICAgICAgICAgICBjdXJyZW50U2VxOiBsb2FkU2VxUmVmLmN1cnJlbnQsXG4gICAgICAgICAgICBpdGVtQ291bnQ6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlQ2hhdE1lc3NhZ2VzXSBsb2FkTWVzc2FnZXMgcmVzdWx0OicsIHtcbiAgICAgICAgICBjaGF0SWQ6IHRhcmdldENoYXRJZCxcbiAgICAgICAgICBpdGVtQ291bnQ6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgICBhZ2VudERlbGV0ZWQ6ICEhYWdlbnREZWxldGVkLFxuICAgICAgICAgIGhhc0FnZW50QWNjZXNzLFxuICAgICAgICAgIGhhc0FnZW50UGVybWlzc2lvbixcbiAgICAgICAgICB1c2VyUGVybWlzc2lvbnNWaWV3OiB1c2VyUGVybWlzc2lvbnM/LnZpZXcsXG4gICAgICAgICAgYWdlbnRJbkFnZW50c0xpc3Q6IGFnZW50Tm9QZXJtaXNzaW9uID8gISFhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKSA6IG51bGwsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGFnZW50RGVsZXRlZCkge1xuICAgICAgICAgIHNlbGVjdEFnZW50Rm9yU2Vzc2lvbih7XG4gICAgICAgICAgICBpZDogYWdlbnREZWxldGVkLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnREZWxldGVkLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnREZWxldGVkLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogJ2N1c3RvbScsXG4gICAgICAgICAgICBpc19kZWxldGVkOiB0cnVlLFxuICAgICAgICAgICAgZGVsZXRlZF9hdDogYWdlbnREZWxldGVkLmRlbGV0ZWRBdCxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbj8uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gZXN0w6EgZW4gbGEgbGlzdGEgcGVybyB0aWVuZSBwZXJtaXNvcywgYWNjZXNvIHkgbm8gZXN0w6EgZWxpbWluYWRvLCBzZXRlYXJsbyBub3JtYWxtZW50ZVxuICAgICAgICAvLyBFeGNsdWlyIGFnZW50ZXMgbm8tY3VzdG9tIHBhcmEgdXN1YXJpb3MgY29uIHJvbGVzIGRlc2hhYmlsaXRhZG9zXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZ2VudE5vUGVybWlzc2lvbiAmJlxuICAgICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgICB1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgICBoYXNBZ2VudEFjY2VzcyAmJlxuICAgICAgICAgIGhhc0FnZW50UGVybWlzc2lvbiAmJlxuICAgICAgICAgICFhZ2VudHMuZmluZChhZ2VudCA9PiBhZ2VudC5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIHNlbGVjdEFnZW50Rm9yU2Vzc2lvbih7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnIHwgJ29yY2hlc3RyYXRvcicsXG4gICAgICAgICAgICBpc19mcm9tX2NvbnZlcnNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgZWwgYWdlbnRlIGVzdMOhIGVuIGxhIGxpc3RhIHkgdGllbmUgYWNjZXNvL3Blcm1pc29zLCBhY3R1YWxpemFyIHByb2plY3RfZGVsZXRlZCAobyBsaW1waWFybG8gYWwgY2FtYmlhciBkZSBjaGF0KVxuICAgICAgICBpZiAoXG4gICAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgICBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBhZ2VudEluTGlzdCA9IGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICAgICAgaWYgKGFnZW50SW5MaXN0KSB7XG4gICAgICAgICAgICBzZWxlY3RBZ2VudEZvclNlc3Npb24oe1xuICAgICAgICAgICAgICAuLi5hZ2VudEluTGlzdCxcbiAgICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7IHByb2plY3RfZGVsZXRlZDogdW5kZWZpbmVkIH0pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gdGllbmUgYWNjZXNvIG8gcGVybWlzb3Mgc2Vnw7puIGxhIHJlc3B1ZXN0YSBkZSBzZXNzaW9ucywgc2VsZWNjaW9uYXJsbyBjb24gZWwgZmxhZyBjb3JyZXNwb25kaWVudGVcbiAgICAgICAgLy8gTGEgdmFsaWRhY2nDs24gYWhvcmEgc2UgYmFzYSBlbiBsYXMgcHJvcGllZGFkZXMgaGFzX2FnZW50X2FjY2VzcyB5IGhhc19hZ2VudF9wZXJtaXNzaW9uIGRlIGxhIHJlc3B1ZXN0YVxuICAgICAgICBpZiAoYWdlbnROb1Blcm1pc3Npb24gJiYgIWFnZW50RGVsZXRlZCkge1xuICAgICAgICAgIGlmICghaGFzQWdlbnRBY2Nlc3MpIHtcbiAgICAgICAgICAgIC8vIENhc28gMTogTm8gdGllbmUgYWNjZXNvIGFsIGFnZW50ZVxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlQ2hhdE1lc3NhZ2VzXSBCUkFOQ0g6IGhhc19ub3RfYWNjZXNzIOKAlCBoYXNBZ2VudEFjY2VzczonLCBoYXNBZ2VudEFjY2VzcylcbiAgICAgICAgICAgIHNlbGVjdEFnZW50Rm9yU2Vzc2lvbih7XG4gICAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgICAgaGFzX25vdF9hY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2UgaWYgKCFoYXNBZ2VudFBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIC8vIENhc28gMjogTm8gdGllbmUgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyL2ludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGVcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gQlJBTkNIOiBoYXNfbm90X3Blcm1pc3Npb25zIOKAlCBoYXNBZ2VudFBlcm1pc3Npb246JywgaGFzQWdlbnRQZXJtaXNzaW9uKVxuICAgICAgICAgICAgc2VsZWN0QWdlbnRGb3JTZXNzaW9uKHtcbiAgICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyB8ICdvcmNoZXN0cmF0b3InLFxuICAgICAgICAgICAgICBoYXNfbm90X3Blcm1pc3Npb25zOiB0cnVlLFxuICAgICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0RGVsZXRlZCkge1xuICAgICAgICAgICAgLy8gQ2FzbyAzOiBFbCBwcm95ZWN0byBkZSBsYSBjb252ZXJzYWNpw7NuIGZ1ZSBlbGltaW5hZG9cbiAgICAgICAgICAgIHNlbGVjdEFnZW50Rm9yU2Vzc2lvbih7XG4gICAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gTWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiAoYWdlbnRfdHlwZSAvIGFnZW50X2VudGl0eSArIGNvbnRleHRvKSBwYXJhIGVsIGNhcnRlbCBkZVxuICAgICAgICAvLyBcImNvbnRpbnVhciBlbiB1biBjaGF0IG51ZXZvXCIgZGVsIGZvb3RlciBjdWFuZG8gc2UgYWJyZSB1bmEgY29udmVyc2FjacOzbiBkZSB1biBjbG9uZSBsZWdhY3kuXG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdtYWlhLWNoYXQtc2Vzc2lvbi1tZXRhJywge1xuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICAgICAgYWdlbnRUeXBlOiBhZ2VudFR5cGVGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgY29uIGVsIHRhYiBkZWwgdXN1YXJpbyAobWUpXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvU2V0ID0gaXRlbXNcbiAgICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgICBjb25zdCB0YWIgPSBhd2FpdCBnZXRUYWJUYXNrRGVmYXVsdCgxKVxuICAgICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgICBpdGVtc1RvU2V0ID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICAvLyBTaSBsYSBzZXNpw7NuIHNpZ3VlIGdlbmVyYW5kbyAoc3RyZWFtIGVuIGJhY2tncm91bmQpLCByZWNvbnN0cnVpbW9zIGVsXG4gICAgICAgIC8vIHRhaWwgZW4gdnVlbG8gKHByZWd1bnRhICsgcGxhY2Vob2xkZXIpIHF1ZSBhw7puIG5vIGVzdMOhIHBlcnNpc3RpZG8gZW4gZWxcbiAgICAgICAgLy8gYmFja2VuZCwgbWVyZ2XDoW5kb2xvIGFsIGhpc3RvcmlhbCBjYXJnYWRvIHNpbiBkdXBsaWNhciBwb3IgaWQuXG4gICAgICAgIGNvbnN0IHNlc3Npb25NZXRhID0gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLmdldE1ldGEoY2hhdElkKVxuICAgICAgICBsZXQgZmluYWxNZXNzYWdlcyA9IGl0ZW1zVG9TZXRcbiAgICAgICAgaWYgKHNlc3Npb25NZXRhICYmIGlzQWN0aXZlU2Vzc2lvblN0YXR1cyhzZXNzaW9uTWV0YS5zdGF0dXMpKSB7XG4gICAgICAgICAgY29uc3QgdGFpbCA9IHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5nZXRNZXNzYWdlcyhjaGF0SWQpXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KGl0ZW1zVG9TZXQubWFwKGl0ZW0gPT4gaXRlbS5pZCkpXG4gICAgICAgICAgY29uc3QgZXh0cmEgPSB0YWlsLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoaXRlbS5pZCkpXG4gICAgICAgICAgaWYgKGV4dHJhLmxlbmd0aCkge1xuICAgICAgICAgICAgZmluYWxNZXNzYWdlcyA9IFsuLi5pdGVtc1RvU2V0LCAuLi5leHRyYV1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb252ZXJzYXRpb25NZXRhOiBTZXNzaW9uQ29udmVyc2F0aW9uTWV0YSA9IHtcbiAgICAgICAgICBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlc3Npb25NZXRhRXZlbnQ6IFNlc3Npb25NZXRhRXZlbnREZXRhaWwgPSB7XG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIGFnZW50VHlwZTogYWdlbnRUeXBlRnJvbVNlc3Npb24sXG4gICAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9XG5cbiAgICAgICAgc2V0TWVzc2FnZXMoZmluYWxNZXNzYWdlcylcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbktleSA9IE51bWJlcihuZXh0SXRlbSlcbiAgICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShwYWdpbmF0aW9uS2V5KVxuICAgICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IHRydWVcblxuICAgICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuc2V0TWVzc2FnZXModGFyZ2V0Q2hhdElkLCBmaW5hbE1lc3NhZ2VzKVxuICAgICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuc2V0Vmlld0NhY2hlKHRhcmdldENoYXRJZCwge1xuICAgICAgICAgIGh5ZHJhdGVkRnJvbUFwaTogdHJ1ZSxcbiAgICAgICAgICBsYXN0RXZhbHVhdGVkS2V5OiBwYWdpbmF0aW9uS2V5LFxuICAgICAgICAgIGNvbnZlcnNhdGlvbk1ldGEsXG4gICAgICAgICAgc2Vzc2lvbk1ldGFFdmVudCxcbiAgICAgICAgICBhZ2VudFNuYXBzaG90LFxuICAgICAgICB9KVxuXG4gICAgICAgIG1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlKHRhcmdldENoYXRJZClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChzZXEgPT09IGxvYWRTZXFSZWYuY3VycmVudCAmJiB0YXJnZXRDaGF0SWQgPT09IGNoYXRJZCkge1xuICAgICAgICAgIG9uRXJyb3I/LigpXG4gICAgICAgIH1cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChzZXEgPT09IGxvYWRTZXFSZWYuY3VycmVudCAmJiB0YXJnZXRDaGF0SWQgPT09IGNoYXRJZCkge1xuICAgICAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgY2hhdElkLFxuICAgICAgY3VycmVudFVzZXIsXG4gICAgICBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhLFxuICAgICAgb25FcnJvcixcbiAgICAgIGdldFRhYlRhc2tEZWZhdWx0LFxuICAgICAgcmVzdG9yZVNlc3Npb25Gcm9tU3RvcmUsXG4gICAgICBzZWxlY3RBZ2VudCxcbiAgICAgIGFnZW50cyxcbiAgICAgIHQsXG4gICAgICBpMThuLmxhbmd1YWdlLFxuICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3LFxuICAgIF1cbiAgKVxuXG4gIGNvbnN0IGxvYWRNb3JlTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmIChpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhbGFzdEV2YWx1YXRlZEtleSB8fCAhY29udGFpbmVyKSByZXR1cm5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXModHJ1ZSlcblxuICAgICAgICBjb25zdCBvbGRTY3JvbGxIZWlnaHQgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3BcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgbmV4dEl0ZW0sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0TWVzc2FnZXMoe1xuICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICBjdXJyZW50VXNlcixcbiAgICAgICAgICBvZmZzZXQ6IGxhc3RFdmFsdWF0ZWRLZXksXG4gICAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgICAgfSlcblxuICAgICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgICBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTaSBoYXkgcHJveWVjdG8gZW4gbGEgY29udmVyc2FjacOzbiwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgY2FyZ2Fkb3NcbiAgICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgICAgbGV0IGl0ZW1zVG9NZXJnZSA9IGl0ZW1zXG4gICAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgICAgaXRlbXNUb01lcmdlID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5tZXNzYWdlcy5zbGljZSgwLCAxKSwgLi4uaXRlbXNUb01lcmdlLCAuLi5tZXNzYWdlcy5zbGljZSgxKV1cbiAgICAgICAgc2V0TWVzc2FnZXMobmV3TWVzc2FnZXMpXG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb25LZXkgPSBOdW1iZXIobmV4dEl0ZW0pXG4gICAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkocGFnaW5hdGlvbktleSlcbiAgICAgICAgc3luY01lc3NhZ2VzVG9TdG9yZShjaGF0SWQsIG5ld01lc3NhZ2VzLCBwYWdpbmF0aW9uS2V5KVxuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IGNvbnRhaW5lclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxIZWlnaHQgPSBjb250YWluZXJSZWYuc2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodERpZmZlcmVuY2UgPSBuZXdTY3JvbGxIZWlnaHQgLSBvbGRTY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29udGFpbmVyUmVmLnNjcm9sbFRvcCA9IG9sZFNjcm9sbFRvcCArIGhlaWdodERpZmZlcmVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgb25FcnJvcj8uKClcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyhmYWxzZSlcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgY2hhdElkLFxuICAgICAgY3VycmVudFVzZXIsXG4gICAgICBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgb25FcnJvcixcbiAgICAgIG1lc3NhZ2VzLFxuICAgICAgZ2V0VGFiVGFza0RlZmF1bHQsXG4gICAgICBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhLFxuICAgICAgc3luY01lc3NhZ2VzVG9TdG9yZSxcbiAgICBdXG4gIClcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjayhcbiAgICAoY29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGlmICghY29udGFpbmVyIHx8IGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFpbml0aWFsTG9hZERvbmUuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0ID4gMCA/IChzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSkgKiAxMDAgOiAwXG5cbiAgICAgIGlmIChzY3JvbGxQZXJjZW50YWdlIDwgMTApIHtcbiAgICAgICAgbG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbG9hZE1vcmVNZXNzYWdlc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoYXRJZCAhPT0gcHJldmlvdXNDaGF0SWQuY3VycmVudCkge1xuICAgICAgY29uc3QgZnJvbUNoYXRJZCA9IHByZXZpb3VzQ2hhdElkLmN1cnJlbnRcbiAgICAgIGNvbnN0IGNhblJlc3RvcmUgPSB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuY2FuUmVzdG9yZVNlc3Npb24oY2hhdElkKVxuICAgICAgY29uc29sZS5pbmZvKCdbdXNlQ2hhdE1lc3NhZ2VzXSBzZXNzaW9uIHN3aXRjaCcsIHsgZnJvbTogZnJvbUNoYXRJZCwgdG86IGNoYXRJZCwgY2FuUmVzdG9yZSB9KVxuXG4gICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBwcmV2aW91c0NoYXRJZC5jdXJyZW50ID0gY2hhdElkXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KDApXG4gICAgICBsb2FkU2VxUmVmLmN1cnJlbnQgKz0gMVxuXG4gICAgICByZWZldGNoVGFiVGFza0RlZmF1bHQoKVxuXG4gICAgICBjb25zdCBwZW5kaW5nSW5pdGlhbE1lc3NhZ2UgPSBoYXNNZWFuaW5nZnVsVXNlckluaXRpYWxNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZSlcblxuICAgICAgaWYgKCFwZW5kaW5nSW5pdGlhbE1lc3NhZ2UgJiYgY2FuUmVzdG9yZSkge1xuICAgICAgICByZXN0b3JlU2Vzc2lvbkZyb21TdG9yZShjaGF0SWQpLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdXNlQ2hhdE1lc3NhZ2VzXSByZXN0b3JlU2Vzc2lvbkZyb21TdG9yZSBmYWlsZWQnLCBlcnJvcilcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldE1lc3NhZ2VzKFxuICAgICAgICBwZW5kaW5nSW5pdGlhbE1lc3NhZ2UgJiYgdXNlckluaXRpYWxNZXNzYWdlXG4gICAgICAgICAgPyBidWlsZEluaXRpYWxNZXNzYWdlUGxhY2Vob2xkZXIodXNlckluaXRpYWxNZXNzYWdlLCBjdXJyZW50VXNlcilcbiAgICAgICAgICA6IFtdXG4gICAgICApXG5cbiAgICAgIC8vIExpbXBpYXIgZWwgZXN0YWRvIGRlbCBwcm95ZWN0byB5IGxhIHRhcmVhIGN1YW5kbyBjYW1iaWEgZGUgY29udmVyc2FjacOzblxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG5cbiAgICAgIGlmICghcGVuZGluZ0luaXRpYWxNZXNzYWdlKSB7XG4gICAgICAgIGxvYWRNZXNzYWdlcygpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgY2hhdElkLFxuICAgIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgICBjdXJyZW50VXNlcixcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgcmVzdG9yZVNlc3Npb25Gcm9tU3RvcmUsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIHNldFByb2plY3QsXG4gICAgc2V0VGFzayxcbiAgICByZWZldGNoVGFiVGFza0RlZmF1bHQsXG4gIF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICAgIHN5bmNNZXNzYWdlc1RvU3RvcmUoY2hhdElkLCByZXdyaXR0ZW4pXG4gIH0sIFt0YWJUYXNrRGVmYXVsdCwgcHJvamVjdD8uaWQsIG1lc3NhZ2VzLCBjaGF0SWQsIHN5bmNNZXNzYWdlc1RvU3RvcmVdKVxuXG4gIGNvbnN0IGFkZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZTogQ2hhdE1lc3NhZ2UpID0+IHtcbiAgICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2VJbmRleCA9IHByZXYuZmluZEluZGV4KG1zZyA9PiBtc2cuaWQgPT09IG1lc3NhZ2UuaWQpXG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTWVzc2FnZUluZGV4ID49IDApIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICAgIG5ld01lc3NhZ2VzW2V4aXN0aW5nTWVzc2FnZUluZGV4XSA9IG1lc3NhZ2VcbiAgICAgICAgICBzeW5jTWVzc2FnZXNUb1N0b3JlKGNoYXRJZCwgbmV3TWVzc2FnZXMpXG4gICAgICAgICAgcmV0dXJuIG5ld01lc3NhZ2VzXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ucHJldiwgbWVzc2FnZV1cbiAgICAgICAgc3luY01lc3NhZ2VzVG9TdG9yZShjaGF0SWQsIG5ld01lc3NhZ2VzKVxuICAgICAgICByZXR1cm4gbmV3TWVzc2FnZXNcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY2hhdElkLCBzeW5jTWVzc2FnZXNUb1N0b3JlXVxuICApXG5cbiAgY29uc3QgcmVtb3ZlTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgIChtZXNzYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgc2V0TWVzc2FnZXMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gcHJldi5maWx0ZXIobXNnID0+IG1zZy5pZCAhPT0gbWVzc2FnZUlkKVxuICAgICAgICBzeW5jTWVzc2FnZXNUb1N0b3JlKGNoYXRJZCwgbmV3TWVzc2FnZXMpXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfSlcbiAgICB9LFxuICAgIFtjaGF0SWQsIHN5bmNNZXNzYWdlc1RvU3RvcmVdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICBtZXNzYWdlcyxcbiAgICBoYXNNb3JlTWVzc2FnZXM6ICEhbGFzdEV2YWx1YXRlZEtleSxcbiAgICBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsXG4gICAgbG9hZE1lc3NhZ2VzLFxuICAgIGxvYWRNb3JlTWVzc2FnZXMsXG4gICAgYWRkTWVzc2FnZSxcbiAgICByZW1vdmVNZXNzYWdlLFxuICAgIGhhbmRsZVNjcm9sbCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQSxTQUFT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
749
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwidXNlU2Vzc2lvbnNTdG9yZSIsImlzQWN0aXZlU2Vzc2lvblN0YXR1cyIsImdldENoYXRzU3RvcmVTdGF0ZSIsImhhc01lYW5pbmdmdWxVc2VySW5pdGlhbE1lc3NhZ2UiLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJfdXNlckluaXRpYWxNZXNzYWdlJG0iLCJfdXNlckluaXRpYWxNZXNzYWdlJGEiLCJCb29sZWFuIiwibWVzc2FnZSIsInRyaW0iLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImZ1YUlkIiwic2NJZCIsIm1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlIiwic2Vzc2lvbklkIiwiX2dldENoYXRzU3RvcmVTdGF0ZSIsImlzQ2hhdFZpZXdWaXNpYmxlIiwiYWN0aXZlQ2hhdElkIiwibWFya0NoYXRBc1JlYWQiLCJidWlsZEluaXRpYWxNZXNzYWdlUGxhY2Vob2xkZXIiLCJjdXJyZW50VXNlciIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwidXNlciIsIm1lbnRpb25zIiwiY29udGV4dE1lc3NhZ2UiLCJyZXdyaXRlVGFza1VybHNJbkNvbnRlbnQiLCJjb250ZW50IiwidGFiU2VnbWVudCIsInRhc2tVcmxSZWdleCIsIlJlZ0V4cCIsInJlcGxhY2UiLCJ1cmwiLCJ1c2VDaGF0TWVzc2FnZXMiLCJfcmVmIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkVycm9yIiwiY2hhdElkIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsb2FkaW5nTWVzc2FnZXMiLCJzZXRMb2FkaW5nTWVzc2FnZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJfdXNlUHJvamVjdHMiLCJmZXRjaFByb2plY3RzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwicHJvamVjdCIsIl91c2VUYWJUYXNrRGVmYXVsdCIsImdldFRhYlRhc2tEZWZhdWx0IiwidGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTG9hZGluZ01vcmVNZXNzYWdlcyIsInNldElzTG9hZGluZ01vcmVNZXNzYWdlcyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibGFzdEV2YWx1YXRlZEtleSIsInNldExhc3RFdmFsdWF0ZWRLZXkiLCJpc0xvYWRpbmdSZWYiLCJpbml0aWFsTG9hZERvbmUiLCJwcmV2aW91c0NoYXRJZCIsImxvYWRTZXFSZWYiLCJzeW5jTWVzc2FnZXNUb1N0b3JlIiwidGFyZ2V0Q2hhdElkIiwibmV4dE1lc3NhZ2VzIiwibGFzdEV2YWx1YXRlZEtleVZhbHVlIiwiZ2V0U3RhdGUiLCJ1bmRlZmluZWQiLCJwYXRjaFZpZXdDYWNoZSIsInNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEiLCJfcmVmMyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZjIiLCJwcm9qZWN0SWRNZXNzYWdlIiwicHJvamVjdE5hbWVGcm9tU2Vzc2lvbiIsImNsaWVudElkRnJvbVNlc3Npb24iLCJjbGllbnROYW1lRnJvbVNlc3Npb24iLCJ0YXNrSWRGcm9tU2Vzc2lvbiIsInRhc2tOYW1lRnJvbVNlc3Npb24iLCJwcm9qZWN0cyIsImhhc011bHRpQWdlbnRzQWNjZXNzIiwicHJvamVjdElkTnVtIiwiZm91bmRQcm9qZWN0IiwiX2ZvdW5kUHJvamVjdCRjbGllbnQiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIm5hbWUiLCJOdW1iZXIiLCJhYnJ1cHQiLCJzZW50Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImZpbmQiLCJwIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiY2xpZW50IiwicHJvamVjdElkIiwiU3RyaW5nIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXN0b3JlU2Vzc2lvbkZyb21TdG9yZSIsIl9yZWY0IiwiX2NhbGxlZTIiLCJfY2FjaGUkbGFzdEV2YWx1YXRlZEsiLCJzZXNzaW9uc1N0b3JlIiwiY2FjaGVkTWVzc2FnZXMiLCJjYWNoZSIsIl9jb250ZXh0MiIsImdldE1lc3NhZ2VzIiwiZ2V0Vmlld0NhY2hlIiwiY3VycmVudCIsImFnZW50U25hcHNob3QiLCJjb252ZXJzYXRpb25NZXRhIiwic2Vzc2lvbk1ldGFFdmVudCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiX3gyIiwibG9hZE1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsIm9wdGlvbnMiLCJzZXEiLCJzZWxlY3RBZ2VudEZvclNlc3Npb24iLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsImFnZW50VHlwZUZyb21TZXNzaW9uIiwiYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsInNlc3Npb25NZXRhIiwiZmluYWxNZXNzYWdlcyIsInRhaWwiLCJleGlzdGluZ0lkcyIsImV4dHJhIiwicGFnaW5hdGlvbktleSIsIl90IiwiX2NvbnRleHQzIiwiZm9yY2UiLCJjYW5SZXN0b3JlU2Vzc2lvbiIsImNvbnNvbGUiLCJpbmZvIiwiQ2hhdHMiLCJnZXRDaGF0TWVzc2FnZXMiLCJvZmZzZXQiLCJjYW5jZWxsZWRUZXh0IiwibGFuZyIsImxhbmd1YWdlIiwiYWdlbnRUeXBlIiwiYWdlbnRFbnRpdHkiLCJjbGllbnRJZCIsInRhc2tJZCIsInRhc2tOYW1lIiwiY3VycmVudENoYXRJZCIsImN1cnJlbnRTZXEiLCJpdGVtQ291bnQiLCJ1c2VyUGVybWlzc2lvbnNWaWV3IiwidmlldyIsImFnZW50SW5BZ2VudHNMaXN0IiwiYSIsImVtb2ppIiwidHlwZSIsImlzX2RlbGV0ZWQiLCJkZWxldGVkX2F0IiwiZGVsZXRlZEF0IiwiY29ubmVjdG9ycyIsImFnZW50IiwiaXNfZnJvbV9jb252ZXJzYXRpb24iLCJwcm9qZWN0X2RlbGV0ZWQiLCJoYXNfbm90X2FjY2VzcyIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJnZXRNZXRhIiwic3RhdHVzIiwiU2V0IiwiZmlsdGVyIiwiaGFzIiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic2V0Vmlld0NhY2hlIiwiaHlkcmF0ZWRGcm9tQXBpIiwiZmluaXNoIiwiX3gzIiwibG9hZE1vcmVNZXNzYWdlcyIsIl9yZWY2IiwiX2NhbGxlZTQiLCJjb250YWluZXIiLCJvbGRTY3JvbGxIZWlnaHQiLCJvbGRTY3JvbGxUb3AiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQyIiwiaXRlbXNUb01lcmdlIiwibmV3TWVzc2FnZXMiLCJfdDIiLCJfY29udGV4dDQiLCJzY3JvbGxIZWlnaHQiLCJzY3JvbGxUb3AiLCJzbGljZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNvbnRhaW5lclJlZiIsIm5ld1Njcm9sbEhlaWdodCIsImhlaWdodERpZmZlcmVuY2UiLCJfeDQiLCJoYW5kbGVTY3JvbGwiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxQZXJjZW50YWdlIiwiZnJvbUNoYXRJZCIsImNhblJlc3RvcmUiLCJmcm9tIiwidG8iLCJwZW5kaW5nSW5pdGlhbE1lc3NhZ2UiLCJlcnJvciIsImRpZFJld3JpdGVSZWYiLCJuZWVkc1Jld3JpdGUiLCJzb21lIiwibXNnIiwibWF0Y2hlcyIsIm1hdGNoIiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsInJld3JpdHRlbiIsImFkZE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2VJbmRleCIsImZpbmRJbmRleCIsInJlbW92ZU1lc3NhZ2UiLCJtZXNzYWdlSWQiLCJoYXNNb3JlTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VQcm9qZWN0cyB9IGZyb20gJy4uL3VzZVByb2plY3RzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgYnVpbGRDb250ZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB7IFVzZUNoYXRNZXNzYWdlc1Byb3BzIH0gZnJvbSAnLi91c2VDaGF0TWVzc2FnZXMuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vdXNlVCdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgdXNlVGFiVGFza0RlZmF1bHQgfSBmcm9tICcuLi91c2VUYWJUYXNrRGVmYXVsdCdcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZUZvckRpc3BsYXkgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2UnXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvc2Vzc2lvbnMvdXNlU2Vzc2lvbnNTdG9yZSdcbmltcG9ydCB7IGlzQWN0aXZlU2Vzc2lvblN0YXR1cyB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25zLnR5cGVzJ1xuaW1wb3J0IHsgZ2V0Q2hhdHNTdG9yZVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUvdXNlQ2hhdHNTdG9yZSdcbmltcG9ydCB0eXBlIHsgQWdlbnQgfSBmcm9tICcuLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB0eXBlIHsgU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEsIFNlc3Npb25NZXRhRXZlbnREZXRhaWwgfSBmcm9tICcuLi8uLi9zdG9yZS9zZXNzaW9ucy9zZXNzaW9ucy50eXBlcydcblxudHlwZSBMb2FkTWVzc2FnZXNPcHRpb25zID0ge1xuICAvKiogSWdub3JhIGNhY2hlIGVuIG1lbW9yaWEgeSB2dWVsdmUgYSBwZWRpciBnZXRDaGF0TWVzc2FnZXMuICovXG4gIGZvcmNlPzogYm9vbGVhblxufVxuXG50eXBlIFVzZXJJbml0aWFsTWVzc2FnZSA9IFVzZUNoYXRNZXNzYWdlc1Byb3BzWyd1c2VySW5pdGlhbE1lc3NhZ2UnXVxuXG4vKiogRWwgbW9kYWwgdXNhIGB7IG1lc3NhZ2U6ICcnLCBhdHRhY2htZW50czogW10gfWAgY29tbyBcInNpbiBtZW5zYWplIGluaWNpYWxcIjsgbm8gZXMgZmFsc3kuICovXG5jb25zdCBoYXNNZWFuaW5nZnVsVXNlckluaXRpYWxNZXNzYWdlID0gKHVzZXJJbml0aWFsTWVzc2FnZT86IFVzZXJJbml0aWFsTWVzc2FnZSk6IGJvb2xlYW4gPT5cbiAgQm9vbGVhbihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAodXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2U/LnRyaW0oKSB8fFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzPy5sZW5ndGggfHxcbiAgICAgIHVzZXJJbml0aWFsTWVzc2FnZS5mdWFJZCB8fFxuICAgICAgdXNlckluaXRpYWxNZXNzYWdlLnNjSWQpXG4gIClcblxuLyoqIE1hcmNhIGxhIHNlc2nDs24gY29tbyBsZcOtZGEgY3VhbmRvIHRlcm1pbsOzIGRlIGhpZHJhdGFyc2UgeSBzaWd1ZSBzaWVuZG8gbGEgYWN0aXZhIHkgdmlzaWJsZS4gKi9cbmNvbnN0IG1hcmtPcGVuZWRTZXNzaW9uQXNSZWFkSWZWaXNpYmxlID0gKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgaXNDaGF0Vmlld1Zpc2libGUsIGFjdGl2ZUNoYXRJZCwgbWFya0NoYXRBc1JlYWQgfSA9IGdldENoYXRzU3RvcmVTdGF0ZSgpXG4gIGlmICghaXNDaGF0Vmlld1Zpc2libGUgfHwgYWN0aXZlQ2hhdElkICE9PSBzZXNzaW9uSWQpIHJldHVyblxuICBtYXJrQ2hhdEFzUmVhZChzZXNzaW9uSWQpXG59XG5cbmNvbnN0IGJ1aWxkSW5pdGlhbE1lc3NhZ2VQbGFjZWhvbGRlciA9IChcbiAgdXNlckluaXRpYWxNZXNzYWdlOiBOb25OdWxsYWJsZTxVc2VySW5pdGlhbE1lc3NhZ2U+LFxuICBjdXJyZW50VXNlcjogVXNlQ2hhdE1lc3NhZ2VzUHJvcHNbJ2N1cnJlbnRVc2VyJ11cbik6IENoYXRNZXNzYWdlW10gPT4gW1xuICB7XG4gICAgaWQ6ICd1c2VyLWluaXRpYWwtbWVzc2FnZScsXG4gICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICBtZXNzYWdlOiBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5KHVzZXJJbml0aWFsTWVzc2FnZS5tZXNzYWdlLCB7XG4gICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgc2NJZDogdXNlckluaXRpYWxNZXNzYWdlLnNjSWQsXG4gICAgfSksXG4gICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgIC4uLihidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucylcbiAgICAgID8geyBjb250ZXh0TWVzc2FnZTogYnVpbGRDb250ZXh0TWVzc2FnZSh1c2VySW5pdGlhbE1lc3NhZ2UubWVudGlvbnMpIH1cbiAgICAgIDoge30pLFxuICB9LFxuXVxuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPigoKSA9PlxuICAgIGhhc01lYW5pbmdmdWxVc2VySW5pdGlhbE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlKSAmJiB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gYnVpbGRJbml0aWFsTWVzc2FnZVBsYWNlaG9sZGVyKHVzZXJJbml0aWFsTWVzc2FnZSwgY3VycmVudFVzZXIpXG4gICAgICA6IFtdXG4gIClcbiAgY29uc3QgeyBmZXRjaFByb2plY3RzIH0gPSB1c2VQcm9qZWN0cygpXG4gIGNvbnN0IHsgc2VsZWN0QWdlbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50LCBzZXRUYXNrLCBwcm9qZWN0IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyBnZXRUYWJUYXNrRGVmYXVsdCwgdGFiVGFza0RlZmF1bHQsIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdCB9ID0gdXNlVGFiVGFza0RlZmF1bHQoKVxuICBjb25zdCBbaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLCBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtsYXN0RXZhbHVhdGVkS2V5LCBzZXRMYXN0RXZhbHVhdGVkS2V5XSA9IHVzZVN0YXRlPG51bWJlciB8IHVuZGVmaW5lZD4oMClcbiAgY29uc3QgaXNMb2FkaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpbml0aWFsTG9hZERvbmUgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHByZXZpb3VzQ2hhdElkID0gdXNlUmVmKGNoYXRJZClcbiAgY29uc3QgbG9hZFNlcVJlZiA9IHVzZVJlZigwKVxuXG4gIGNvbnN0IHN5bmNNZXNzYWdlc1RvU3RvcmUgPSB1c2VDYWxsYmFjayhcbiAgICAodGFyZ2V0Q2hhdElkOiBzdHJpbmcsIG5leHRNZXNzYWdlczogQ2hhdE1lc3NhZ2VbXSwgbGFzdEV2YWx1YXRlZEtleVZhbHVlPzogbnVtYmVyKSA9PiB7XG4gICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuc2V0TWVzc2FnZXModGFyZ2V0Q2hhdElkLCBuZXh0TWVzc2FnZXMpXG4gICAgICBpZiAobGFzdEV2YWx1YXRlZEtleVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnBhdGNoVmlld0NhY2hlKHRhcmdldENoYXRJZCwgeyBsYXN0RXZhbHVhdGVkS2V5OiBsYXN0RXZhbHVhdGVkS2V5VmFsdWUgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtdXG4gIClcblxuICBjb25zdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgIHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICB9OiB7XG4gICAgICBwcm9qZWN0SWRNZXNzYWdlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICBjbGllbnROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tJZEZyb21TZXNzaW9uOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgfSkgPT4ge1xuICAgICAgLy8gVGFyZWEgZGUgbGEgY29udmVyc2FjacOzbjogc2UgZGVyaXZhIGRlIGxhIG1ldGFkYXRhIGRlIGxhIHNlc3Npb24gcGFyYSBtb3N0cmFyIGVsIGNoaXBcbiAgICAgIC8vIGRlIGxhIHRhcmVhICh5IHJlZW52aWFyIGxhIG1ldGFkYXRhIGVuIGNhZGEgbWVuc2FqZSkgc2luIGltcG9ydGFyIGRlc2RlIGTDs25kZSBzZSBhYnJhLlxuICAgICAgaWYgKHRhc2tJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgdGFza05hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRUYXNrKHsgaWQ6IHRhc2tJZEZyb21TZXNzaW9uLCBuYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUYXNrKG51bGwpXG4gICAgICB9XG5cbiAgICAgIC8vIENvbnZlcnNhY2nDs24gY29uIGNsaWVudF9tZXRhZGF0YTogc2V0ZWFyIGNsaWVudGUgeSBsaW1waWFyIHByb3llY3RvXG4gICAgICBpZiAoY2xpZW50SWRGcm9tU2Vzc2lvbiAhPSBudWxsICYmIGNsaWVudE5hbWVGcm9tU2Vzc2lvbikge1xuICAgICAgICBzZXRDbGllbnQoeyBpZDogTnVtYmVyKGNsaWVudElkRnJvbVNlc3Npb24pLCBuYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2plY3RzID0gYXdhaXQgZmV0Y2hQcm9qZWN0cyhwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgY29uc3QgaGFzTXVsdGlBZ2VudHNBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG5cbiAgICAgIGlmIChwcm9qZWN0SWRNZXNzYWdlICYmIGhhc011bHRpQWdlbnRzQWNjZXNzKSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RJZE51bSA9IE51bWJlcihwcm9qZWN0SWRNZXNzYWdlKVxuICAgICAgICBjb25zdCBmb3VuZFByb2plY3QgPSBwcm9qZWN0cz8uZmluZChwID0+IE51bWJlcihwLmlkKSA9PT0gcHJvamVjdElkTnVtKVxuXG4gICAgICAgIGlmIChmb3VuZFByb2plY3QpIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IGZvdW5kUHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogZm91bmRQcm9qZWN0LmNsaWVudD8ubmFtZSB8fCAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKGZvdW5kUHJvamVjdC5pZCksXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRQcm9qZWN0KGZvdW5kUHJvamVjdClcbiAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KHtcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogJycsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoeyBpZDogcHJvamVjdElkTnVtLCBuYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICB9XG4gICAgfSxcbiAgICBbZmV0Y2hQcm9qZWN0cywgc2V0Q2xpZW50LCBzZXRDaGlwc1Byb2plY3QsIHNldFByb2plY3QsIHNldFRhc2tdXG4gIClcblxuICBjb25zdCByZXN0b3JlU2Vzc2lvbkZyb21TdG9yZSA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jICh0YXJnZXRDaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2Vzc2lvbnNTdG9yZSA9IHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKVxuICAgICAgY29uc3QgY2FjaGVkTWVzc2FnZXMgPSBzZXNzaW9uc1N0b3JlLmdldE1lc3NhZ2VzKHRhcmdldENoYXRJZClcbiAgICAgIGNvbnN0IGNhY2hlID0gc2Vzc2lvbnNTdG9yZS5nZXRWaWV3Q2FjaGUodGFyZ2V0Q2hhdElkKVxuXG4gICAgICBzZXRNZXNzYWdlcyhjYWNoZWRNZXNzYWdlcylcbiAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkoY2FjaGU/Lmxhc3RFdmFsdWF0ZWRLZXkgPz8gMClcbiAgICAgIGluaXRpYWxMb2FkRG9uZS5jdXJyZW50ID0gdHJ1ZVxuXG4gICAgICBpZiAoY2FjaGU/LmFnZW50U25hcHNob3QpIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoY2FjaGUuYWdlbnRTbmFwc2hvdClcbiAgICAgIH1cblxuICAgICAgaWYgKGNhY2hlPy5jb252ZXJzYXRpb25NZXRhKSB7XG4gICAgICAgIGF3YWl0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEoe1xuICAgICAgICAgIHByb2plY3RJZE1lc3NhZ2U6IGNhY2hlLmNvbnZlcnNhdGlvbk1ldGEucHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uOiBjYWNoZS5jb252ZXJzYXRpb25NZXRhLnByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbjogY2FjaGUuY29udmVyc2F0aW9uTWV0YS5jbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogY2FjaGUuY29udmVyc2F0aW9uTWV0YS5jbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkRnJvbVNlc3Npb246IGNhY2hlLmNvbnZlcnNhdGlvbk1ldGEudGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbjogY2FjaGUuY29udmVyc2F0aW9uTWV0YS50YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoY2FjaGU/LnNlc3Npb25NZXRhRXZlbnQpIHtcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ21haWEtY2hhdC1zZXNzaW9uLW1ldGEnLCB7XG4gICAgICAgICAgICBkZXRhaWw6IGNhY2hlLnNlc3Npb25NZXRhRXZlbnQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBtYXJrT3BlbmVkU2Vzc2lvbkFzUmVhZElmVmlzaWJsZSh0YXJnZXRDaGF0SWQpXG4gICAgfSxcbiAgICBbc2VsZWN0QWdlbnQsIHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGFdXG4gIClcblxuICBjb25zdCBsb2FkTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAob3B0aW9ucz86IExvYWRNZXNzYWdlc09wdGlvbnMpID0+IHtcbiAgICAgIGlmICghb3B0aW9ucz8uZm9yY2UgJiYgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLmNhblJlc3RvcmVTZXNzaW9uKGNoYXRJZCkpIHtcbiAgICAgICAgYXdhaXQgcmVzdG9yZVNlc3Npb25Gcm9tU3RvcmUoY2hhdElkKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbG9hZFNlcVJlZi5jdXJyZW50ICs9IDFcbiAgICAgIGNvbnN0IHNlcSA9IGxvYWRTZXFSZWYuY3VycmVudFxuICAgICAgY29uc3QgdGFyZ2V0Q2hhdElkID0gY2hhdElkXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldExvYWRpbmdNZXNzYWdlcyh0cnVlKVxuICAgICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gbG9hZE1lc3NhZ2VzIHN0YXJ0JywgeyBjaGF0SWQ6IHRhcmdldENoYXRJZCwgc2VxLCBmb3JjZTogb3B0aW9ucz8uZm9yY2UgfSlcbiAgICAgICAgbGV0IGFnZW50U25hcHNob3Q6IEFnZW50IHwgbnVsbCA9IG51bGxcbiAgICAgICAgY29uc3Qgc2VsZWN0QWdlbnRGb3JTZXNzaW9uID0gKG5leHQ6IEFnZW50KSA9PiB7XG4gICAgICAgICAgc2VsZWN0QWdlbnQobmV4dClcbiAgICAgICAgICBhZ2VudFNuYXBzaG90ID0gbmV4dFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgICBhZ2VudERlbGV0ZWQsXG4gICAgICAgICAgYWdlbnROb1Blcm1pc3Npb24sXG4gICAgICAgICAgaGFzQWdlbnRBY2Nlc3MsXG4gICAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uLFxuICAgICAgICAgIGFnZW50VHlwZTogYWdlbnRUeXBlRnJvbVNlc3Npb24sXG4gICAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWRNZXNzYWdlLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHByb2plY3REZWxldGVkLFxuICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0TWVzc2FnZXMoe1xuICAgICAgICAgIGNoYXRJZDogdGFyZ2V0Q2hhdElkLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICBjYW5jZWxsZWRUZXh0OiB0KCdjaGF0LmNhbmNlbGxlZCcpLFxuICAgICAgICAgIGxhbmc6IG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSksXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHNlcSAhPT0gbG9hZFNlcVJlZi5jdXJyZW50IHx8IHRhcmdldENoYXRJZCAhPT0gY2hhdElkKSB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlQ2hhdE1lc3NhZ2VzXSBsb2FkTWVzc2FnZXMgc3RhbGUgcmVzcG9uc2UgZGlzY2FyZGVkJywge1xuICAgICAgICAgICAgdGFyZ2V0Q2hhdElkLFxuICAgICAgICAgICAgY3VycmVudENoYXRJZDogY2hhdElkLFxuICAgICAgICAgICAgc2VxLFxuICAgICAgICAgICAgY3VycmVudFNlcTogbG9hZFNlcVJlZi5jdXJyZW50LFxuICAgICAgICAgICAgaXRlbUNvdW50OiBpdGVtcy5sZW5ndGgsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gbG9hZE1lc3NhZ2VzIHJlc3VsdDonLCB7XG4gICAgICAgICAgY2hhdElkOiB0YXJnZXRDaGF0SWQsXG4gICAgICAgICAgaXRlbUNvdW50OiBpdGVtcy5sZW5ndGgsXG4gICAgICAgICAgYWdlbnROb1Blcm1pc3Npb24sXG4gICAgICAgICAgYWdlbnREZWxldGVkOiAhIWFnZW50RGVsZXRlZCxcbiAgICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24sXG4gICAgICAgICAgdXNlclBlcm1pc3Npb25zVmlldzogdXNlclBlcm1pc3Npb25zPy52aWV3LFxuICAgICAgICAgIGFnZW50SW5BZ2VudHNMaXN0OiBhZ2VudE5vUGVybWlzc2lvbiA/ICEhYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZCkgOiBudWxsLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgICBzZWxlY3RBZ2VudEZvclNlc3Npb24oe1xuICAgICAgICAgICAgaWQ6IGFnZW50RGVsZXRlZC5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50RGVsZXRlZC5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50RGVsZXRlZC5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgaXNfZGVsZXRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGV0ZWRfYXQ6IGFnZW50RGVsZXRlZC5kZWxldGVkQXQsXG4gICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24/LmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIGVzdMOhIGVuIGxhIGxpc3RhIHBlcm8gdGllbmUgcGVybWlzb3MsIGFjY2VzbyB5IG5vIGVzdMOhIGVsaW1pbmFkbywgc2V0ZWFybG8gbm9ybWFsbWVudGVcbiAgICAgICAgLy8gRXhjbHVpciBhZ2VudGVzIG5vLWN1c3RvbSBwYXJhIHVzdWFyaW9zIGNvbiByb2xlcyBkZXNoYWJpbGl0YWRvc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgICAhYWdlbnREZWxldGVkICYmXG4gICAgICAgICAgdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgICBoYXNBZ2VudFBlcm1pc3Npb24gJiZcbiAgICAgICAgICAhYWdlbnRzLmZpbmQoYWdlbnQgPT4gYWdlbnQuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICApIHtcbiAgICAgICAgICBzZWxlY3RBZ2VudEZvclNlc3Npb24oe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyB8ICdvcmNoZXN0cmF0b3InLFxuICAgICAgICAgICAgaXNfZnJvbV9jb252ZXJzYXRpb246IHRydWUsXG4gICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpIGVsIGFnZW50ZSBlc3TDoSBlbiBsYSBsaXN0YSB5IHRpZW5lIGFjY2Vzby9wZXJtaXNvcywgYWN0dWFsaXphciBwcm9qZWN0X2RlbGV0ZWQgKG8gbGltcGlhcmxvIGFsIGNhbWJpYXIgZGUgY2hhdClcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICAgIGhhc0FnZW50QWNjZXNzICYmXG4gICAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgICAgYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgYWdlbnRJbkxpc3QgPSBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICAgIGlmIChhZ2VudEluTGlzdCkge1xuICAgICAgICAgICAgc2VsZWN0QWdlbnRGb3JTZXNzaW9uKHtcbiAgICAgICAgICAgICAgLi4uYWdlbnRJbkxpc3QsXG4gICAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDogeyBwcm9qZWN0X2RlbGV0ZWQ6IHVuZGVmaW5lZCB9KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIHRpZW5lIGFjY2VzbyBvIHBlcm1pc29zIHNlZ8O6biBsYSByZXNwdWVzdGEgZGUgc2Vzc2lvbnMsIHNlbGVjY2lvbmFybG8gY29uIGVsIGZsYWcgY29ycmVzcG9uZGllbnRlXG4gICAgICAgIC8vIExhIHZhbGlkYWNpw7NuIGFob3JhIHNlIGJhc2EgZW4gbGFzIHByb3BpZWRhZGVzIGhhc19hZ2VudF9hY2Nlc3MgeSBoYXNfYWdlbnRfcGVybWlzc2lvbiBkZSBsYSByZXNwdWVzdGFcbiAgICAgICAgaWYgKGFnZW50Tm9QZXJtaXNzaW9uICYmICFhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgICBpZiAoIWhhc0FnZW50QWNjZXNzKSB7XG4gICAgICAgICAgICAvLyBDYXNvIDE6IE5vIHRpZW5lIGFjY2VzbyBhbCBhZ2VudGVcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gQlJBTkNIOiBoYXNfbm90X2FjY2VzcyDigJQgaGFzQWdlbnRBY2Nlc3M6JywgaGFzQWdlbnRBY2Nlc3MpXG4gICAgICAgICAgICBzZWxlY3RBZ2VudEZvclNlc3Npb24oe1xuICAgICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnIHwgJ29yY2hlc3RyYXRvcicsXG4gICAgICAgICAgICAgIGhhc19ub3RfYWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICghaGFzQWdlbnRQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICAvLyBDYXNvIDI6IE5vIHRpZW5lIHBlcm1pc29zIHBhcmEgdmlzdWFsaXphci9pbnRlcmFjdHVhciBjb24gZWwgYWdlbnRlXG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIEJSQU5DSDogaGFzX25vdF9wZXJtaXNzaW9ucyDigJQgaGFzQWdlbnRQZXJtaXNzaW9uOicsIGhhc0FnZW50UGVybWlzc2lvbilcbiAgICAgICAgICAgIHNlbGVjdEFnZW50Rm9yU2Vzc2lvbih7XG4gICAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgICAgaGFzX25vdF9wZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSBpZiAocHJvamVjdERlbGV0ZWQpIHtcbiAgICAgICAgICAgIC8vIENhc28gMzogRWwgcHJveWVjdG8gZGUgbGEgY29udmVyc2FjacOzbiBmdWUgZWxpbWluYWRvXG4gICAgICAgICAgICBzZWxlY3RBZ2VudEZvclNlc3Npb24oe1xuICAgICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnIHwgJ29yY2hlc3RyYXRvcicsXG4gICAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAgIHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEoe1xuICAgICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIE1ldGFkYXRhIGRlIGxhIHNlc3Npb24gKGFnZW50X3R5cGUgLyBhZ2VudF9lbnRpdHkgKyBjb250ZXh0bykgcGFyYSBlbCBjYXJ0ZWwgZGVcbiAgICAgICAgLy8gXCJjb250aW51YXIgZW4gdW4gY2hhdCBudWV2b1wiIGRlbCBmb290ZXIgY3VhbmRvIHNlIGFicmUgdW5hIGNvbnZlcnNhY2nDs24gZGUgdW4gY2xvbmUgbGVnYWN5LlxuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1jaGF0LXNlc3Npb24tbWV0YScsIHtcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgICAgIGFnZW50VHlwZTogYWdlbnRUeXBlRnJvbVNlc3Npb24sXG4gICAgICAgICAgICAgIGFnZW50RW50aXR5OiBhZ2VudEVudGl0eUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGNvbiBlbCB0YWIgZGVsIHVzdWFyaW8gKG1lKVxuICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgICBsZXQgaXRlbXNUb1NldCA9IGl0ZW1zXG4gICAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgICBjb25zdCB0YWJTZWdtZW50ID0gdGFiID8gYC8ke3RhYn1gIDogJy9kZXRhaWwnXG4gICAgICAgICAgaXRlbXNUb1NldCA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgLy8gU2kgbGEgc2VzacOzbiBzaWd1ZSBnZW5lcmFuZG8gKHN0cmVhbSBlbiBiYWNrZ3JvdW5kKSwgcmVjb25zdHJ1aW1vcyBlbFxuICAgICAgICAvLyB0YWlsIGVuIHZ1ZWxvIChwcmVndW50YSArIHBsYWNlaG9sZGVyKSBxdWUgYcO6biBubyBlc3TDoSBwZXJzaXN0aWRvIGVuIGVsXG4gICAgICAgIC8vIGJhY2tlbmQsIG1lcmdlw6FuZG9sbyBhbCBoaXN0b3JpYWwgY2FyZ2FkbyBzaW4gZHVwbGljYXIgcG9yIGlkLlxuICAgICAgICBjb25zdCBzZXNzaW9uTWV0YSA9IHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5nZXRNZXRhKGNoYXRJZClcbiAgICAgICAgbGV0IGZpbmFsTWVzc2FnZXMgPSBpdGVtc1RvU2V0XG4gICAgICAgIGlmIChzZXNzaW9uTWV0YSAmJiBpc0FjdGl2ZVNlc3Npb25TdGF0dXMoc2Vzc2lvbk1ldGEuc3RhdHVzKSkge1xuICAgICAgICAgIGNvbnN0IHRhaWwgPSB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuZ2V0TWVzc2FnZXMoY2hhdElkKVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChpdGVtc1RvU2V0Lm1hcChpdGVtID0+IGl0ZW0uaWQpKVxuICAgICAgICAgIGNvbnN0IGV4dHJhID0gdGFpbC5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGl0ZW0uaWQpKVxuICAgICAgICAgIGlmIChleHRyYS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbmFsTWVzc2FnZXMgPSBbLi4uaXRlbXNUb1NldCwgLi4uZXh0cmFdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udmVyc2F0aW9uTWV0YTogU2Vzc2lvbkNvbnZlcnNhdGlvbk1ldGEgPSB7XG4gICAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZXNzaW9uTWV0YUV2ZW50OiBTZXNzaW9uTWV0YUV2ZW50RGV0YWlsID0ge1xuICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICBhZ2VudFR5cGU6IGFnZW50VHlwZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGFnZW50RW50aXR5OiBhZ2VudEVudGl0eUZyb21TZXNzaW9uLFxuICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkOiB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfVxuXG4gICAgICAgIHNldE1lc3NhZ2VzKGZpbmFsTWVzc2FnZXMpXG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb25LZXkgPSBOdW1iZXIobmV4dEl0ZW0pXG4gICAgICAgIHNldExhc3RFdmFsdWF0ZWRLZXkocGFnaW5hdGlvbktleSlcbiAgICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSB0cnVlXG5cbiAgICAgICAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnNldE1lc3NhZ2VzKHRhcmdldENoYXRJZCwgZmluYWxNZXNzYWdlcylcbiAgICAgICAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnNldFZpZXdDYWNoZSh0YXJnZXRDaGF0SWQsIHtcbiAgICAgICAgICBoeWRyYXRlZEZyb21BcGk6IHRydWUsXG4gICAgICAgICAgbGFzdEV2YWx1YXRlZEtleTogcGFnaW5hdGlvbktleSxcbiAgICAgICAgICBjb252ZXJzYXRpb25NZXRhLFxuICAgICAgICAgIHNlc3Npb25NZXRhRXZlbnQsXG4gICAgICAgICAgYWdlbnRTbmFwc2hvdCxcbiAgICAgICAgfSlcblxuICAgICAgICBtYXJrT3BlbmVkU2Vzc2lvbkFzUmVhZElmVmlzaWJsZSh0YXJnZXRDaGF0SWQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoc2VxID09PSBsb2FkU2VxUmVmLmN1cnJlbnQgJiYgdGFyZ2V0Q2hhdElkID09PSBjaGF0SWQpIHtcbiAgICAgICAgICBvbkVycm9yPy4oKVxuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoc2VxID09PSBsb2FkU2VxUmVmLmN1cnJlbnQgJiYgdGFyZ2V0Q2hhdElkID09PSBjaGF0SWQpIHtcbiAgICAgICAgICBzZXRMb2FkaW5nTWVzc2FnZXMoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGNoYXRJZCxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSxcbiAgICAgIG9uRXJyb3IsXG4gICAgICBnZXRUYWJUYXNrRGVmYXVsdCxcbiAgICAgIHJlc3RvcmVTZXNzaW9uRnJvbVN0b3JlLFxuICAgICAgc2VsZWN0QWdlbnQsXG4gICAgICBhZ2VudHMsXG4gICAgICB0LFxuICAgICAgaTE4bi5sYW5ndWFnZSxcbiAgICAgIHVzZXJQZXJtaXNzaW9ucz8udmlldyxcbiAgICBdXG4gIClcblxuICBjb25zdCBsb2FkTW9yZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoaXNMb2FkaW5nUmVmLmN1cnJlbnQgfHwgIWxhc3RFdmFsdWF0ZWRLZXkgfHwgIWNvbnRhaW5lcikgcmV0dXJuXG4gICAgICB0cnkge1xuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKHRydWUpXG5cbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxuICAgICAgICBjb25zdCBvbGRTY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIG5leHRJdGVtLFxuICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkOiB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICAgIGxhbmc6IG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSksXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIGNhcmdhZG9zXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvTWVyZ2UgPSBpdGVtc1xuICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGl0ZW1zVG9NZXJnZSA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMuc2xpY2UoMCwgMSksIC4uLml0ZW1zVG9NZXJnZSwgLi4ubWVzc2FnZXMuc2xpY2UoMSldXG4gICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKVxuICAgICAgICBjb25zdCBwYWdpbmF0aW9uS2V5ID0gTnVtYmVyKG5leHRJdGVtKVxuICAgICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KHBhZ2luYXRpb25LZXkpXG4gICAgICAgIHN5bmNNZXNzYWdlc1RvU3RvcmUoY2hhdElkLCBuZXdNZXNzYWdlcywgcGFnaW5hdGlvbktleSlcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJSZWYgPSBjb250YWluZXJcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3U2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyUmVmLnNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmZXJlbmNlID0gbmV3U2Nyb2xsSGVpZ2h0IC0gb2xkU2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlZi5zY3JvbGxUb3AgPSBvbGRTY3JvbGxUb3AgKyBoZWlnaHREaWZmZXJlbmNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG9uRXJyb3I/LigpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMoZmFsc2UpXG4gICAgICAgIGlzTG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGNoYXRJZCxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgIG9uRXJyb3IsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIGdldFRhYlRhc2tEZWZhdWx0LFxuICAgICAgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSxcbiAgICAgIHN5bmNNZXNzYWdlc1RvU3RvcmUsXG4gICAgXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoIWNvbnRhaW5lciB8fCBpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhaW5pdGlhbExvYWREb25lLmN1cnJlbnQpIHJldHVyblxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3Qgc2Nyb2xsUGVyY2VudGFnZSA9IHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDAgPyAoc2Nyb2xsVG9wIC8gKHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCkpICogMTAwIDogMFxuXG4gICAgICBpZiAoc2Nyb2xsUGVyY2VudGFnZSA8IDEwKSB7XG4gICAgICAgIGxvYWRNb3JlTWVzc2FnZXMoY29udGFpbmVyKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvYWRNb3JlTWVzc2FnZXNdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGF0SWQgIT09IHByZXZpb3VzQ2hhdElkLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IGZyb21DaGF0SWQgPSBwcmV2aW91c0NoYXRJZC5jdXJyZW50XG4gICAgICBjb25zdCBjYW5SZXN0b3JlID0gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLmNhblJlc3RvcmVTZXNzaW9uKGNoYXRJZClcbiAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gc2Vzc2lvbiBzd2l0Y2gnLCB7IGZyb206IGZyb21DaGF0SWQsIHRvOiBjaGF0SWQsIGNhblJlc3RvcmUgfSlcblxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgbG9hZFNlcVJlZi5jdXJyZW50ICs9IDFcblxuICAgICAgcmVmZXRjaFRhYlRhc2tEZWZhdWx0KClcblxuICAgICAgY29uc3QgcGVuZGluZ0luaXRpYWxNZXNzYWdlID0gaGFzTWVhbmluZ2Z1bFVzZXJJbml0aWFsTWVzc2FnZSh1c2VySW5pdGlhbE1lc3NhZ2UpXG5cbiAgICAgIGlmICghcGVuZGluZ0luaXRpYWxNZXNzYWdlICYmIGNhblJlc3RvcmUpIHtcbiAgICAgICAgcmVzdG9yZVNlc3Npb25Gcm9tU3RvcmUoY2hhdElkKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW3VzZUNoYXRNZXNzYWdlc10gcmVzdG9yZVNlc3Npb25Gcm9tU3RvcmUgZmFpbGVkJywgZXJyb3IpXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRNZXNzYWdlcyhcbiAgICAgICAgcGVuZGluZ0luaXRpYWxNZXNzYWdlICYmIHVzZXJJbml0aWFsTWVzc2FnZVxuICAgICAgICAgID8gYnVpbGRJbml0aWFsTWVzc2FnZVBsYWNlaG9sZGVyKHVzZXJJbml0aWFsTWVzc2FnZSwgY3VycmVudFVzZXIpXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8geSBsYSB0YXJlYSBjdWFuZG8gY2FtYmlhIGRlIGNvbnZlcnNhY2nDs25cbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuXG4gICAgICBpZiAoIXBlbmRpbmdJbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBsb2FkTWVzc2FnZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIGNoYXRJZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgY3VycmVudFVzZXIsXG4gICAgbG9hZE1lc3NhZ2VzLFxuICAgIHJlc3RvcmVTZXNzaW9uRnJvbVN0b3JlLFxuICAgIHNldENoaXBzUHJvamVjdCxcbiAgICBzZXRQcm9qZWN0LFxuICAgIHNldFRhc2ssXG4gICAgcmVmZXRjaFRhYlRhc2tEZWZhdWx0LFxuICBdKVxuXG4gIC8vIEN1YW5kbyB0YWJUYXNrRGVmYXVsdCBwYXNhIGEgZXN0YXIgZGlzcG9uaWJsZSBkZXNwdcOpcyBkZSBjYXJnYXIsIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIHlhIGNhcmdhZG9zLlxuICAvLyBSZWYgcGFyYSBldml0YXIgYnVjbGU6IHNldE1lc3NhZ2VzKHJld3JpdHRlbikgY2FtYmlhIG1lc3NhZ2VzIHkgcmUtZWplY3V0YSBlbCBlZmVjdG87IHNvbG8gcmVlc2NyaWJpbW9zIHVuYSB2ZXogcG9yIGxvdGUuXG4gIGNvbnN0IGRpZFJld3JpdGVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0YWJUYXNrRGVmYXVsdCB8fCAhcHJvamVjdD8uaWQgfHwgbWVzc2FnZXMubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgICBjb25zdCB0YWJTZWdtZW50ID0gYC8ke3RhYlRhc2tEZWZhdWx0fWBcbiAgICBjb25zdCBuZWVkc1Jld3JpdGUgPSBtZXNzYWdlcy5zb21lKG1zZyA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbXNnLm1lc3NhZ2UgfHwgJydcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKHRhc2tVcmxSZWdleClcbiAgICAgIGlmICghbWF0Y2hlcz8ubGVuZ3RoKSByZXR1cm4gZmFsc2VcbiAgICAgIHJldHVybiBtYXRjaGVzLnNvbWUodXJsID0+ICF1cmwuZW5kc1dpdGgoYC8ke3RhYlRhc2tEZWZhdWx0fWApICYmICF1cmwuaW5jbHVkZXMoYC8ke3RhYlRhc2tEZWZhdWx0fT9gKSlcbiAgICB9KVxuICAgIGlmICghbmVlZHNSZXdyaXRlKSB7XG4gICAgICBkaWRSZXdyaXRlUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChkaWRSZXdyaXRlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IHRydWVcbiAgICBjb25zdCByZXdyaXR0ZW4gPSBtZXNzYWdlcy5tYXAobXNnID0+ICh7XG4gICAgICAuLi5tc2csXG4gICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQobXNnLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgIH0pKVxuICAgIHNldE1lc3NhZ2VzKHJld3JpdHRlbilcbiAgICBzeW5jTWVzc2FnZXNUb1N0b3JlKGNoYXRJZCwgcmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlcywgY2hhdElkLCBzeW5jTWVzc2FnZXNUb1N0b3JlXSlcblxuICBjb25zdCBhZGRNZXNzYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB7XG4gICAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICAgIGlmIChleGlzdGluZ01lc3NhZ2VJbmRleCA+PSAwKSB7XG4gICAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ucHJldl1cbiAgICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgICAgc3luY01lc3NhZ2VzVG9TdG9yZShjaGF0SWQsIG5ld01lc3NhZ2VzKVxuICAgICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gWy4uLnByZXYsIG1lc3NhZ2VdXG4gICAgICAgIHN5bmNNZXNzYWdlc1RvU3RvcmUoY2hhdElkLCBuZXdNZXNzYWdlcylcbiAgICAgICAgcmV0dXJuIG5ld01lc3NhZ2VzXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2NoYXRJZCwgc3luY01lc3NhZ2VzVG9TdG9yZV1cbiAgKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZClcbiAgICAgICAgc3luY01lc3NhZ2VzVG9TdG9yZShjaGF0SWQsIG5ld01lc3NhZ2VzKVxuICAgICAgICByZXR1cm4gbmV3TWVzc2FnZXNcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbY2hhdElkLCBzeW5jTWVzc2FnZXNUb1N0b3JlXVxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBsb2FkaW5nTWVzc2FnZXMsXG4gICAgbWVzc2FnZXMsXG4gICAgaGFzTW9yZU1lc3NhZ2VzOiAhIWxhc3RFdmFsdWF0ZWRLZXksXG4gICAgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLFxuICAgIGxvYWRNZXNzYWdlcyxcbiAgICBsb2FkTW9yZU1lc3NhZ2VzLFxuICAgIGFkZE1lc3NhZ2UsXG4gICAgcmVtb3ZlTWVzc2FnZSxcbiAgICBoYW5kbGVTY3JvbGwsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0EsU0FBU0EsV0FB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
@@ -6,6 +6,7 @@ import { getFrequentlyUsedActions } from '../services/maia/Actions/getFrequently
6
6
  import { useT } from './useT';
7
7
  import { mapBackendLang } from '../utils/mapBackendLang';
8
8
  export var mapMaiaSectionToFuasApiSection = function mapMaiaSectionToFuasApiSection(section) {
9
+ if (section === 'home_with_hours') return 'home_with_hours';
9
10
  if (section === 'task') return 'tasks';
10
11
  if (section === 'planner') return 'planner';
11
12
  return 'home';
@@ -90,4 +91,4 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
90
91
  handleGetFrequentlyUsedActions: handleGetFrequentlyUsedActions
91
92
  };
92
93
  };
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZVQiLCJtYXBCYWNrZW5kTGFuZyIsIm1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiIsInNlY3Rpb24iLCJ1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJhZ2VudElkIiwibWFpYVNlY3Rpb24iLCJlbnRpdHlUeXBlIiwiX3VzZVQiLCJpMThuIiwibGFuZyIsImxhbmd1YWdlIiwiYXBpU2VjdGlvbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbnMiLCJzZXRBY3Rpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsIkVycm9yIiwiY29uc29sZSIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQge1xuICBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbixcbn0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgbWFwQmFja2VuZExhbmcgfSBmcm9tICcuLi91dGlscy9tYXBCYWNrZW5kTGFuZydcblxuZXhwb3J0IGNvbnN0IG1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiA9IChzZWN0aW9uOiBTZWN0aW9uKTogRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbiA9PiB7XG4gIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiAndGFza3MnXG4gIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicpIHJldHVybiAncGxhbm5lcidcbiAgcmV0dXJuICdob21lJ1xufVxuXG5leHBvcnQgY29uc3QgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zID0gKGFnZW50SWQ/OiBzdHJpbmcsIG1haWFTZWN0aW9uPzogU2VjdGlvbiwgZW50aXR5VHlwZT86IHN0cmluZykgPT4ge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCBsYW5nID0gbWFwQmFja2VuZExhbmcoaTE4bi5sYW5ndWFnZSlcbiAgY29uc3QgYXBpU2VjdGlvbiA9IHVzZU1lbW8oKCkgPT4gbWFwTWFpYVNlY3Rpb25Ub0Z1YXNBcGlTZWN0aW9uKG1haWFTZWN0aW9uID8/ICdoZWFkZXInKSwgW21haWFTZWN0aW9uXSlcbiAgY29uc3QgW2FjdGlvbnMsIHNldEFjdGlvbnNdID0gdXNlU3RhdGU8QWN0aW9uW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhaWQ6IHN0cmluZykgPT4ge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zKHsgYWdlbnRJZDogYWlkLCBsYW5nLCBzZWN0aW9uOiBhcGlTZWN0aW9uLCBlbnRpdHlUeXBlIH0pXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgIUFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gc2VydmVyJylcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3Rpb25zKHJlc3BvbnNlLmRhdGEpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgICAgc2V0RXJyb3IobWVzc2FnZSlcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnM6JywgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsYW5nLCBhcGlTZWN0aW9uLCBlbnRpdHlUeXBlXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRBY3Rpb25zKFtdKVxuICAgIHNldEVycm9yKG51bGwpXG4gICAgaWYgKGFnZW50SWQpIHtcbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyhhZ2VudElkKVxuICAgIH1cbiAgfSwgW2FnZW50SWQsIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc10pXG5cbiAgcmV0dXJuIHtcbiAgICBhY3Rpb25zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBRWpFLFNBQ0VDLHdCQUF3QixRQUVuQixtREFBbUQ7QUFFMUQsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFDN0IsU0FBU0MsY0FBYyxRQUFRLHlCQUF5QjtBQUV4RCxPQUFPLElBQU1DLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQUlDLE9BQWdCLEVBQXNDO0VBQ25HLElBQUlBLE9BQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxPQUFPO0VBQ3RDLElBQUlBLE9BQU8sS0FBSyxTQUFTLEVBQUUsT0FBTyxTQUFTO0VBQzNDLE9BQU8sTUFBTTtBQUNmLENBQUM7QUFFRCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlDLE9BQWdCLEVBQUVDLFdBQXFCLEVBQUVDLFVBQW1CLEVBQUs7RUFDeEcsSUFBQUMsS0FBQSxHQUFpQlIsSUFBSSxDQUFDLENBQUM7SUFBZlMsSUFBSSxHQUFBRCxLQUFBLENBQUpDLElBQUk7RUFDWixJQUFNQyxJQUFJLEdBQUdULGNBQWMsQ0FBQ1EsSUFBSSxDQUFDRSxRQUFRLENBQUM7RUFDMUMsSUFBTUMsVUFBVSxHQUFHZixPQUFPLENBQUM7SUFBQSxPQUFNSyw4QkFBOEIsQ0FBQ0ksV0FBVyxhQUFYQSxXQUFXLGNBQVhBLFdBQVcsR0FBSSxRQUFRLENBQUM7RUFBQSxHQUFFLENBQUNBLFdBQVcsQ0FBQyxDQUFDO0VBQ3hHLElBQUFPLFNBQUEsR0FBOEJmLFFBQVEsQ0FBVyxFQUFFLENBQUM7SUFBQWdCLFVBQUEs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
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZVQiLCJtYXBCYWNrZW5kTGFuZyIsIm1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiIsInNlY3Rpb24iLCJ1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJhZ2VudElkIiwibWFpYVNlY3Rpb24iLCJlbnRpdHlUeXBlIiwiX3VzZVQiLCJpMThuIiwibGFuZyIsImxhbmd1YWdlIiwiYXBpU2VjdGlvbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbnMiLCJzZXRBY3Rpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzZW50IiwiQXJyYXkiLCJpc0FycmF5IiwiZGF0YSIsIkVycm9yIiwiY29uc29sZSIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQge1xuICBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbixcbn0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgbWFwQmFja2VuZExhbmcgfSBmcm9tICcuLi91dGlscy9tYXBCYWNrZW5kTGFuZydcblxuZXhwb3J0IHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb24gPSBTZWN0aW9uIHwgJ2hvbWVfd2l0aF9ob3VycydcblxuZXhwb3J0IGNvbnN0IG1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiA9IChcbiAgc2VjdGlvbjogRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb25cbik6IEZyZXF1ZW50bHlVc2VkQWN0aW9uc0FwaVNlY3Rpb24gPT4ge1xuICBpZiAoc2VjdGlvbiA9PT0gJ2hvbWVfd2l0aF9ob3VycycpIHJldHVybiAnaG9tZV93aXRoX2hvdXJzJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3Rhc2snKSByZXR1cm4gJ3Rhc2tzJ1xuICBpZiAoc2VjdGlvbiA9PT0gJ3BsYW5uZXInKSByZXR1cm4gJ3BsYW5uZXInXG4gIHJldHVybiAnaG9tZSdcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9IChcbiAgYWdlbnRJZD86IHN0cmluZyxcbiAgbWFpYVNlY3Rpb24/OiBGcmVxdWVudGx5VXNlZEFjdGlvbnNNYWlhU2VjdGlvbixcbiAgZW50aXR5VHlwZT86IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IGxhbmcgPSBtYXBCYWNrZW5kTGFuZyhpMThuLmxhbmd1YWdlKVxuICBjb25zdCBhcGlTZWN0aW9uID0gdXNlTWVtbygoKSA9PiBtYXBNYWlhU2VjdGlvblRvRnVhc0FwaVNlY3Rpb24obWFpYVNlY3Rpb24gPz8gJ2hlYWRlcicpLCBbbWFpYVNlY3Rpb25dKVxuICBjb25zdCBbYWN0aW9ucywgc2V0QWN0aW9uc10gPSB1c2VTdGF0ZTxBY3Rpb25bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFpZDogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMoeyBhZ2VudElkOiBhaWQsIGxhbmcsIHNlY3Rpb246IGFwaVNlY3Rpb24sIGVudGl0eVR5cGUgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBzZXJ2ZXInKVxuICAgICAgICB9XG4gICAgICAgIHNldEFjdGlvbnMocmVzcG9uc2UuZGF0YSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJ1xuICAgICAgICBzZXRFcnJvcihtZXNzYWdlKVxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBmcmVxdWVudGx5IHVzZWQgYWN0aW9uczonLCBlcnIpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xhbmcsIGFwaVNlY3Rpb24sIGVudGl0eVR5cGVdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEFjdGlvbnMoW10pXG4gICAgc2V0RXJyb3IobnVsbClcbiAgICBpZiAoYWdlbnRJZCkge1xuICAgICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zKGFnZW50SWQpXG4gICAgfVxuICB9LCBbYWdlbnRJZCwgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zXSlcblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoYW5kbGVHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFFakUsU0FDRUMsd0JBQXdCLFFBRW5CLG1EQUFtRDtBQUUxRCxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQUM3QixTQUFTQyxjQUFjLFFBQVEseUJBQXlCO0FBSXhELE9BQU8sSUFBTUMsOEJBQThCLEdBQUcsU0FBakNBLDhCQUE4QkEsQ0FDekNDLE9BQXlDLEVBQ0w7RUFDcEMsSUFBSUEsT0FBTyxLQUFLLGlCQUFpQixFQUFFLE9BQU8saUJBQWlCO0VBQzNELElBQUlBLE9BQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxPQUFPO0VBQ3RDLElBQUlBLE9BQU8sS0FBSyxTQUFTLEVBQUUsT0FBTyxTQUFTO0VBQzNDLE9BQU8sTUFBTTtBQUNmLENBQUM7QUFFRCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQ25DQyxPQUFnQixFQUNoQkMsV0FBOEMsRUFDOUNDLFVBQW1CLEVBQ2hCO0VBQ0gsSUFBQUMsS0FBQSxHQUFpQlIsSUFBSSxDQUFDLENBQUM7SUFBZlMsSUFBSSxHQUFB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
@@ -43,4 +43,4 @@ export var getFrequentlyUsedActions = /*#__PURE__*/function () {
43
43
  return _ref.apply(this, arguments);
44
44
  };
45
45
  }();
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJwYXJhbXMiLCJhZ2VudElkIiwibGFuZyIsInNlY3Rpb24iLCJlbnRpdHlUeXBlIiwicXVlcnlQYXJhbXMiLCJyZXNwb25zZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiVVJMU2VhcmNoUGFyYW1zIiwic2V0IiwicGF0aCIsImNvbmNhdCIsInRvU3RyaW5nIiwibWV0aG9kIiwic2VudCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJqc29uIiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0gJ2hvbWUnIHwgJ3Rhc2tzJyB8ICdwbGFubmVyJ1xuXG50eXBlIEdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc1BhcmFtcyA9IHtcbiAgYWdlbnRJZDogc3RyaW5nXG4gIGxhbmc/OiBzdHJpbmdcbiAgc2VjdGlvbjogRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvblxuICAvKiogdGlwbyBkZSBjb250ZXh0byAvIHNlY3Rpb24gaG9tZSAoY2xpZW50IHwgcHJvamVjdCB8IHRhc2sgfCBwbGFubmVyKSAqL1xuICBlbnRpdHlUeXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMgPSBhc3luYyAocGFyYW1zOiBHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnNQYXJhbXMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgYWdlbnRJZCwgbGFuZywgc2VjdGlvbiwgZW50aXR5VHlwZSB9ID0gcGFyYW1zXG5cbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgaWYgKGxhbmcpIHtcbiAgICBxdWVyeVBhcmFtcy5zZXQoJ2xhbmcnLCBsYW5nKVxuICB9XG4gIHF1ZXJ5UGFyYW1zLnNldCgnc2VjdGlvbicsIHNlY3Rpb24pXG4gIGlmIChlbnRpdHlUeXBlKSB7XG4gICAgcXVlcnlQYXJhbXMuc2V0KCdlbnRpdHlfdHlwZScsIGVudGl0eVR5cGUpXG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2FnZW50SWR9L2ZyZXF1ZW50bHktdXNlZC1hY3Rpb25zPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICB9XG5cbiAgcmV0dXJuIChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIEFjdGlvblJlc3BvbnNlXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFhckMsT0FBTyxJQUFNQyx3QkFBd0I7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPQyxNQUFzQztJQUFBLElBQUFDLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxPQUFBLEVBQUFDLFVBQUEsRUFBQUMsV0FBQSxFQUFBQyxRQUFBO0lBQUEsT0FBQVQsbUJBQUEsQ0FBQVUsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUMzRVQsT0FBTyxHQUFnQ0QsTUFBTSxDQUE3Q0MsT0FBTyxFQUFFQyxJQUFJLEdBQTBCRixNQUFNLENBQXBDRSxJQUFJLEVBQUVDLE9BQU8sR0FBaUJILE1BQU0sQ0FBOUJHLE9BQU8sRUFBRUMsVUFBVSxHQUFLSixNQUFNLENBQXJCSSxVQUFVO1VBRXBDQyxXQUFXLEdBQUcsSUFBSU0sZUFBZSxDQUFDLENBQUM7VUFDekMsSUFBSVQsSUFBSSxFQUFFO1lBQ1JHLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLE1BQU0sRUFBRVYsSUFBSSxDQUFDO1VBQy9CO1VBQ0FHLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLFNBQVMsRUFBRVQsT0FBTyxDQUFDO1VBQ25DLElBQUlDLFVBQVUsRUFBRTtZQUNkQyxXQUFXLENBQUNPLEdBQUcsQ0FBQyxhQUFhLEVBQUVSLFVBQVUsQ0FBQztVQUM1QztVQUFDSSxRQUFBLENBQUFFLElBQUE7VUFBQSxPQUVzQmpCLFNBQVMsQ0FBQztZQUMvQm9CLElBQUksWUFBQUMsTUFBQSxDQUFZYixPQUFPLCtCQUFBYSxNQUFBLENBQTRCVCxXQUFXLENBQUNVLFFBQVEsQ0FBQyxDQUFDLENBQUU7WUFDM0VDLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQztRQUFBO1VBSElWLFFBQVEsR0FBQUUsUUFBQSxDQUFBUyxJQUFBO1VBQUEsSUFLVFgsUUFBUSxDQUFDWSxFQUFFO1lBQUFWLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxNQUNSLElBQUlTLEtBQUssd0JBQUFMLE1BQUEsQ0FBd0JSLFFBQVEsQ0FBQ2MsTUFBTSxDQUFFLENBQUM7UUFBQTtVQUFBWixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUc3Q0osUUFBUSxDQUFDZSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQUEsT0FBQWIsUUFBQSxDQUFBYyxNQUFBLFdBQUFkLFFBQUEsQ0FBQVMsSUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBVCxRQUFBLENBQUFlLElBQUE7TUFBQTtJQUFBLEdBQUF4QixPQUFBO0VBQUEsQ0FDOUI7RUFBQSxnQkF0QllMLHdCQUF3QkEsQ0FBQThCLEVBQUE7SUFBQSxPQUFBN0IsSUFBQSxDQUFBOEIsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXNCcEMiLCJpZ25vcmVMaXN0IjpbXX0=
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJwYXJhbXMiLCJhZ2VudElkIiwibGFuZyIsInNlY3Rpb24iLCJlbnRpdHlUeXBlIiwicXVlcnlQYXJhbXMiLCJyZXNwb25zZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiVVJMU2VhcmNoUGFyYW1zIiwic2V0IiwicGF0aCIsImNvbmNhdCIsInRvU3RyaW5nIiwibWV0aG9kIiwic2VudCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJqc29uIiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0gJ2hvbWUnIHwgJ2hvbWVfd2l0aF9ob3VycycgfCAndGFza3MnIHwgJ3BsYW5uZXInXG5cbnR5cGUgR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zUGFyYW1zID0ge1xuICBhZ2VudElkOiBzdHJpbmdcbiAgbGFuZz86IHN0cmluZ1xuICBzZWN0aW9uOiBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uXG4gIC8qKiB0aXBvIGRlIGNvbnRleHRvIC8gc2VjdGlvbiBob21lIChjbGllbnQgfCBwcm9qZWN0IHwgdGFzayB8IHBsYW5uZXIpICovXG4gIGVudGl0eVR5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9IGFzeW5jIChwYXJhbXM6IEdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc1BhcmFtcyk6IFByb21pc2U8QWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgeyBhZ2VudElkLCBsYW5nLCBzZWN0aW9uLCBlbnRpdHlUeXBlIH0gPSBwYXJhbXNcblxuICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICBpZiAobGFuZykge1xuICAgIHF1ZXJ5UGFyYW1zLnNldCgnbGFuZycsIGxhbmcpXG4gIH1cbiAgcXVlcnlQYXJhbXMuc2V0KCdzZWN0aW9uJywgc2VjdGlvbilcbiAgaWYgKGVudGl0eVR5cGUpIHtcbiAgICBxdWVyeVBhcmFtcy5zZXQoJ2VudGl0eV90eXBlJywgZW50aXR5VHlwZSlcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vZnJlcXVlbnRseS11c2VkLWFjdGlvbnM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gIH1cblxuICByZXR1cm4gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgQWN0aW9uUmVzcG9uc2Vcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQWFyQyxPQUFPLElBQU1DLHdCQUF3QjtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLE1BQXNDO0lBQUEsSUFBQUMsT0FBQSxFQUFBQyxJQUFBLEVBQUFDLE9BQUEsRUFBQUMsVUFBQSxFQUFBQyxXQUFBLEVBQUFDLFFBQUE7SUFBQSxPQUFBVCxtQkFBQSxDQUFBVSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQzNFVCxPQUFPLEdBQWdDRCxNQUFNLENBQTdDQyxPQUFPLEVBQUVDLElBQUksR0FBMEJGLE1BQU0sQ0FBcENFLElBQUksRUFBRUMsT0FBTyxHQUFpQkgsTUFBTSxDQUE5QkcsT0FBTyxFQUFFQyxVQUFVLEdBQUtKLE1BQU0sQ0FBckJJLFVBQVU7VUFFcENDLFdBQVcsR0FBRyxJQUFJTSxlQUFlLENBQUMsQ0FBQztVQUN6QyxJQUFJVCxJQUFJLEVBQUU7WUFDUkcsV0FBVyxDQUFDTyxHQUFHLENBQUMsTUFBTSxFQUFFVixJQUFJLENBQUM7VUFDL0I7VUFDQUcsV0FBVyxDQUFDTyxHQUFHLENBQUMsU0FBUyxFQUFFVCxPQUFPLENBQUM7VUFDbkMsSUFBSUMsVUFBVSxFQUFFO1lBQ2RDLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLGFBQWEsRUFBRVIsVUFBVSxDQUFDO1VBQzVDO1VBQUNJLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BRXNCakIsU0FBUyxDQUFDO1lBQy9Cb0IsSUFBSSxZQUFBQyxNQUFBLENBQVliLE9BQU8sK0JBQUFhLE1BQUEsQ0FBNEJULFdBQVcsQ0FBQ1UsUUFBUSxDQUFDLENBQUMsQ0FBRTtZQUMzRUMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7VUFISVYsUUFBUSxHQUFBRSxRQUFBLENBQUFTLElBQUE7VUFBQSxJQUtUWCxRQUFRLENBQUNZLEVBQUU7WUFBQVYsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSVMsS0FBSyx3QkFBQUwsTUFBQSxDQUF3QlIsUUFBUSxDQUFDYyxNQUFNLENBQUUsQ0FBQztRQUFBO1VBQUFaLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BRzdDSixRQUFRLENBQUNlLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBQSxPQUFBYixRQUFBLENBQUFjLE1BQUEsV0FBQWQsUUFBQSxDQUFBUyxJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFULFFBQUEsQ0FBQWUsSUFBQTtNQUFBO0lBQUEsR0FBQXhCLE9BQUE7RUFBQSxDQUM5QjtFQUFBLGdCQXRCWUwsd0JBQXdCQSxDQUFBOEIsRUFBQTtJQUFBLE9BQUE3QixJQUFBLENBQUE4QixLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBc0JwQyIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.104-1",
3
+ "version": "2.11.105",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {
@@ -1,54 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- /** Títulos canónicos por idioma — deben coincidir con la DB de acciones MAIA. */
3
- export var MANAGER_HOURS_HOME_FUA_TITLES = {
4
- log_worked_hours: {
5
- es: 'Cargar horas trabajadas',
6
- en: 'Log worked hours',
7
- br: 'Registrar horas trabalhadas',
8
- fr: 'Enregistrer les heures travaillées'
9
- },
10
- create_task: {
11
- es: 'Crear tarea',
12
- en: 'Create task',
13
- br: 'Criar tarefa',
14
- fr: 'Créer une tâche'
15
- },
16
- summarize_task: {
17
- es: 'Resumir tarea',
18
- en: 'Summarize task',
19
- br: 'Resumir tarefa',
20
- fr: 'Résumer la tâche'
21
- }
22
- };
23
- export var MANAGER_HOURS_HOME_FUA_ORDER = ['log_worked_hours', 'create_task', 'summarize_task'];
24
- var normalizeFuaTitle = function normalizeFuaTitle(title) {
25
- return title.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[^a-z0-9\s]+/g, ' ').replace(/\s+/g, ' ').trim();
26
- };
27
- var TITLE_TO_FUA_TYPE = Object.fromEntries(Object.entries(MANAGER_HOURS_HOME_FUA_TITLES).flatMap(function (_ref) {
28
- var _ref2 = _slicedToArray(_ref, 2),
29
- type = _ref2[0],
30
- titles = _ref2[1];
31
- return Object.values(titles).map(function (title) {
32
- return [normalizeFuaTitle(title), type];
33
- });
34
- }));
35
- var resolveManagerHoursHomeFuaType = function resolveManagerHoursHomeFuaType(action) {
36
- var _TITLE_TO_FUA_TYPE$no;
37
- return (_TITLE_TO_FUA_TYPE$no = TITLE_TO_FUA_TYPE[normalizeFuaTitle(action.title)]) !== null && _TITLE_TO_FUA_TYPE$no !== void 0 ? _TITLE_TO_FUA_TYPE$no : null;
38
- };
39
-
40
- /** Selecciona las 3 FUAs fijas del home manager con agente horas, en orden de producto. */
41
- export var selectManagerHoursHomeFuas = function selectManagerHoursHomeFuas(actions) {
42
- var byType = new Map();
43
- actions.forEach(function (action) {
44
- var type = resolveManagerHoursHomeFuaType(action);
45
- if (type && !byType.has(type)) {
46
- byType.set(type, action);
47
- }
48
- });
49
- return MANAGER_HOURS_HOME_FUA_ORDER.flatMap(function (type) {
50
- var action = byType.get(type);
51
- return action ? [action] : [];
52
- });
53
- };
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQU5BR0VSX0hPVVJTX0hPTUVfRlVBX1RJVExFUyIsImxvZ193b3JrZWRfaG91cnMiLCJlcyIsImVuIiwiYnIiLCJmciIsImNyZWF0ZV90YXNrIiwic3VtbWFyaXplX3Rhc2siLCJNQU5BR0VSX0hPVVJTX0hPTUVfRlVBX09SREVSIiwibm9ybWFsaXplRnVhVGl0bGUiLCJ0aXRsZSIsInRvTG93ZXJDYXNlIiwibm9ybWFsaXplIiwicmVwbGFjZSIsInRyaW0iLCJUSVRMRV9UT19GVUFfVFlQRSIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsImZsYXRNYXAiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheSIsInR5cGUiLCJ0aXRsZXMiLCJ2YWx1ZXMiLCJtYXAiLCJyZXNvbHZlTWFuYWdlckhvdXJzSG9tZUZ1YVR5cGUiLCJhY3Rpb24iLCJfVElUTEVfVE9fRlVBX1RZUEUkbm8iLCJzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyIsImFjdGlvbnMiLCJieVR5cGUiLCJNYXAiLCJmb3JFYWNoIiwiaGFzIiwic2V0IiwiZ2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21hbmFnZXJIb3Vyc0hvbWVGdWFzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMvQWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBNYW5hZ2VySG91cnNIb21lRnVhVHlwZSA9ICdsb2dfd29ya2VkX2hvdXJzJyB8ICdjcmVhdGVfdGFzaycgfCAnc3VtbWFyaXplX3Rhc2snXG5cbnR5cGUgTWFuYWdlckhvdXJzSG9tZUZ1YVRpdGxlc0J5TGFuZyA9IHsgZXM6IHN0cmluZzsgZW46IHN0cmluZzsgYnI6IHN0cmluZzsgZnI6IHN0cmluZyB9XG5cbi8qKiBUw610dWxvcyBjYW7Ds25pY29zIHBvciBpZGlvbWEg4oCUIGRlYmVuIGNvaW5jaWRpciBjb24gbGEgREIgZGUgYWNjaW9uZXMgTUFJQS4gKi9cbmV4cG9ydCBjb25zdCBNQU5BR0VSX0hPVVJTX0hPTUVfRlVBX1RJVExFUzogUmVjb3JkPE1hbmFnZXJIb3Vyc0hvbWVGdWFUeXBlLCBNYW5hZ2VySG91cnNIb21lRnVhVGl0bGVzQnlMYW5nPiA9IHtcbiAgbG9nX3dvcmtlZF9ob3Vyczoge1xuICAgIGVzOiAnQ2FyZ2FyIGhvcmFzIHRyYWJhamFkYXMnLFxuICAgIGVuOiAnTG9nIHdvcmtlZCBob3VycycsXG4gICAgYnI6ICdSZWdpc3RyYXIgaG9yYXMgdHJhYmFsaGFkYXMnLFxuICAgIGZyOiAnRW5yZWdpc3RyZXIgbGVzIGhldXJlcyB0cmF2YWlsbMOpZXMnLFxuICB9LFxuICBjcmVhdGVfdGFzazoge1xuICAgIGVzOiAnQ3JlYXIgdGFyZWEnLFxuICAgIGVuOiAnQ3JlYXRlIHRhc2snLFxuICAgIGJyOiAnQ3JpYXIgdGFyZWZhJyxcbiAgICBmcjogJ0Nyw6llciB1bmUgdMOiY2hlJyxcbiAgfSxcbiAgc3VtbWFyaXplX3Rhc2s6IHtcbiAgICBlczogJ1Jlc3VtaXIgdGFyZWEnLFxuICAgIGVuOiAnU3VtbWFyaXplIHRhc2snLFxuICAgIGJyOiAnUmVzdW1pciB0YXJlZmEnLFxuICAgIGZyOiAnUsOpc3VtZXIgbGEgdMOiY2hlJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IE1BTkFHRVJfSE9VUlNfSE9NRV9GVUFfT1JERVI6IE1hbmFnZXJIb3Vyc0hvbWVGdWFUeXBlW10gPSBbXG4gICdsb2dfd29ya2VkX2hvdXJzJyxcbiAgJ2NyZWF0ZV90YXNrJyxcbiAgJ3N1bW1hcml6ZV90YXNrJyxcbl1cblxuY29uc3Qgbm9ybWFsaXplRnVhVGl0bGUgPSAodGl0bGU6IHN0cmluZyk6IHN0cmluZyA9PlxuICB0aXRsZVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XFxzXSsvZywgJyAnKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csICcgJylcbiAgICAudHJpbSgpXG5cbmNvbnN0IFRJVExFX1RPX0ZVQV9UWVBFOiBSZWNvcmQ8c3RyaW5nLCBNYW5hZ2VySG91cnNIb21lRnVhVHlwZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKE1BTkFHRVJfSE9VUlNfSE9NRV9GVUFfVElUTEVTKS5mbGF0TWFwKChbdHlwZSwgdGl0bGVzXSkgPT5cbiAgICBPYmplY3QudmFsdWVzKHRpdGxlcykubWFwKHRpdGxlID0+IFtub3JtYWxpemVGdWFUaXRsZSh0aXRsZSksIHR5cGUgYXMgTWFuYWdlckhvdXJzSG9tZUZ1YVR5cGVdKVxuICApXG4pXG5cbmNvbnN0IHJlc29sdmVNYW5hZ2VySG91cnNIb21lRnVhVHlwZSA9IChhY3Rpb246IFBpY2s8QWN0aW9uLCAndGl0bGUnPik6IE1hbmFnZXJIb3Vyc0hvbWVGdWFUeXBlIHwgbnVsbCA9PlxuICBUSVRMRV9UT19GVUFfVFlQRVtub3JtYWxpemVGdWFUaXRsZShhY3Rpb24udGl0bGUpXSA/PyBudWxsXG5cbi8qKiBTZWxlY2Npb25hIGxhcyAzIEZVQXMgZmlqYXMgZGVsIGhvbWUgbWFuYWdlciBjb24gYWdlbnRlIGhvcmFzLCBlbiBvcmRlbiBkZSBwcm9kdWN0by4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RNYW5hZ2VySG91cnNIb21lRnVhcyA9IChhY3Rpb25zOiBBY3Rpb25bXSk6IEFjdGlvbltdID0+IHtcbiAgY29uc3QgYnlUeXBlID0gbmV3IE1hcDxNYW5hZ2VySG91cnNIb21lRnVhVHlwZSwgQWN0aW9uPigpXG5cbiAgYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgY29uc3QgdHlwZSA9IHJlc29sdmVNYW5hZ2VySG91cnNIb21lRnVhVHlwZShhY3Rpb24pXG4gICAgaWYgKHR5cGUgJiYgIWJ5VHlwZS5oYXModHlwZSkpIHtcbiAgICAgIGJ5VHlwZS5zZXQodHlwZSwgYWN0aW9uKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gTUFOQUdFUl9IT1VSU19IT01FX0ZVQV9PUkRFUi5mbGF0TWFwKHR5cGUgPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IGJ5VHlwZS5nZXQodHlwZSlcbiAgICByZXR1cm4gYWN0aW9uID8gW2FjdGlvbl0gOiBbXVxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBTUE7QUFDQSxPQUFPLElBQU1BLDZCQUErRixHQUFHO0VBQzdHQyxnQkFBZ0IsRUFBRTtJQUNoQkMsRUFBRSxFQUFFLHlCQUF5QjtJQUM3QkMsRUFBRSxFQUFFLGtCQUFrQjtJQUN0QkMsRUFBRSxFQUFFLDZCQUE2QjtJQUNqQ0MsRUFBRSxFQUFFO0VBQ04sQ0FBQztFQUNEQyxXQUFXLEVBQUU7SUFDWEosRUFBRSxFQUFFLGFBQWE7SUFDakJDLEVBQUUsRUFBRSxhQUFhO0lBQ2pCQyxFQUFFLEVBQUUsY0FBYztJQUNsQkMsRUFBRSxFQUFFO0VBQ04sQ0FBQztFQUNERSxjQUFjLEVBQUU7SUFDZEwsRUFBRSxFQUFFLGVBQWU7SUFDbkJDLEVBQUUsRUFBRSxnQkFBZ0I7SUFDcEJDLEVBQUUsRUFBRSxnQkFBZ0I7SUFDcEJDLEVBQUUsRUFBRTtFQUNOO0FBQ0YsQ0FBQztBQUVELE9BQU8sSUFBTUcsNEJBQXVELEdBQUcsQ0FDckUsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsQ0FDakI7QUFFRCxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxLQUFhO0VBQUEsT0FDdENBLEtBQUssQ0FDRkMsV0FBVyxDQUFDLENBQUMsQ0FDYkMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNoQkMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUMvQkEsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FDN0JBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQ3BCQyxJQUFJLENBQUMsQ0FBQztBQUFBO0FBRVgsSUFBTUMsaUJBQTBELEdBQUdDLE1BQU0sQ0FBQ0MsV0FBVyxDQUNuRkQsTUFBTSxDQUFDRSxPQUFPLENBQUNsQiw2QkFBNkIsQ0FBQyxDQUFDbUIsT0FBTyxDQUFDLFVBQUFDLElBQUE7RUFBQSxJQUFBQyxLQUFBLEdBQUFDLGNBQUEsQ0FBQUYsSUFBQTtJQUFFRyxJQUFJLEdBQUFGLEtBQUE7SUFBRUcsTUFBTSxHQUFBSCxLQUFBO0VBQUEsT0FDbEVMLE1BQU0sQ0FBQ1MsTUFBTSxDQUFDRCxNQUFNLENBQUMsQ0FBQ0UsR0FBRyxDQUFDLFVBQUFoQixLQUFLO0lBQUEsT0FBSSxDQUFDRCxpQkFBaUIsQ0FBQ0MsS0FBSyxDQUFDLEVBQUVhLElBQUksQ0FBNEI7RUFBQSxFQUFDO0FBQUEsQ0FDakcsQ0FDRixDQUFDO0FBRUQsSUFBTUksOEJBQThCLEdBQUcsU0FBakNBLDhCQUE4QkEsQ0FBSUMsTUFBNkI7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLFFBQUFBLHFCQUFBLEdBQ25FZCxpQkFBaUIsQ0FBQ04saUJBQWlCLENBQUNtQixNQUFNLENBQUNsQixLQUFLLENBQUMsQ0FBQyxjQUFBbUIscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxJQUFJO0FBQUE7O0FBRTVEO0FBQ0EsT0FBTyxJQUFNQywwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTBCQSxDQUFJQyxPQUFpQixFQUFlO0VBQ3pFLElBQU1DLE1BQU0sR0FBRyxJQUFJQyxHQUFHLENBQWtDLENBQUM7RUFFekRGLE9BQU8sQ0FBQ0csT0FBTyxDQUFDLFVBQUFOLE1BQU0sRUFBSTtJQUN4QixJQUFNTCxJQUFJLEdBQUdJLDhCQUE4QixDQUFDQyxNQUFNLENBQUM7SUFDbkQsSUFBSUwsSUFBSSxJQUFJLENBQUNTLE1BQU0sQ0FBQ0csR0FBRyxDQUFDWixJQUFJLENBQUMsRUFBRTtNQUM3QlMsTUFBTSxDQUFDSSxHQUFHLENBQUNiLElBQUksRUFBRUssTUFBTSxDQUFDO0lBQzFCO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsT0FBT3BCLDRCQUE0QixDQUFDVyxPQUFPLENBQUMsVUFBQUksSUFBSSxFQUFJO0lBQ2xELElBQU1LLE1BQU0sR0FBR0ksTUFBTSxDQUFDSyxHQUFHLENBQUNkLElBQUksQ0FBQztJQUMvQixPQUFPSyxNQUFNLEdBQUcsQ0FBQ0EsTUFBTSxDQUFDLEdBQUcsRUFBRTtFQUMvQixDQUFDLENBQUM7QUFDSixDQUFDIiwiaWdub3JlTGlzdCI6W119