@projectcor/maia-components 2.11.73 → 2.11.74

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.
@@ -3,6 +3,7 @@ import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'r
3
3
  import { InformationCircle } from '@projectcor/icons/lib/components/InformationCircle';
4
4
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
5
5
  import { useT } from '../../../hooks/useT';
6
+ import { getMentionTabPrefix } from '../../../utils/contextMentionTriggers';
6
7
  import { ContextMentionItem } from '../ContextMentionItem';
7
8
  import { Loader } from '../Loader';
8
9
  import { SCMPContainer, SCMPDivider, SCMPDividerWrapper, SCMPRecentsLabel, SCMPRecentsRow, SCMPRecentsTitle, SCMPList, SCMPStateWrapper, SCMPKeyboardHint, SCMPTab, SCMPTabsGroup, SCMPTabsRow, SCMPLoadMoreRow, SCMPSearchRow, SCMPSearchInput } from './ContextMentionPopover.styles';
@@ -188,11 +189,11 @@ export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref)
188
189
  })
189
190
  }) : null, /*#__PURE__*/_jsxs(SCMPTabsRow, {
190
191
  children: [/*#__PURE__*/_jsx(SCMPTabsGroup, {
191
- children: allowedTypes.map(function (type, tabIndex) {
192
+ children: allowedTypes.map(function (type) {
192
193
  var label = t(TAB_I18N_KEYS[type], {
193
194
  defaultValue: TAB_FALLBACKS[type]
194
195
  });
195
- var atPrefix = hideTabPrefix ? '' : '@'.repeat(tabIndex + 1);
196
+ var atPrefix = hideTabPrefix ? '' : getMentionTabPrefix(type);
196
197
  return /*#__PURE__*/_jsxs(SCMPTab, {
197
198
  type: "button",
198
199
  "aria-label": atPrefix ? "".concat(atPrefix, " ").concat(label) : label,
@@ -221,4 +222,4 @@ export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref)
221
222
  });
222
223
  });
223
224
  ContextMentionPopover.displayName = 'ContextMentionPopover';
224
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUIiwiQ29udGV4dE1lbnRpb25JdGVtIiwiTG9hZGVyIiwiU0NNUENvbnRhaW5lciIsIlNDTVBEaXZpZGVyIiwiU0NNUERpdmlkZXJXcmFwcGVyIiwiU0NNUFJlY2VudHNMYWJlbCIsIlNDTVBSZWNlbnRzUm93IiwiU0NNUFJlY2VudHNUaXRsZSIsIlNDTVBMaXN0IiwiU0NNUFN0YXRlV3JhcHBlciIsIlNDTVBLZXlib2FyZEhpbnQiLCJTQ01QVGFiIiwiU0NNUFRhYnNHcm91cCIsIlNDTVBUYWJzUm93IiwiU0NNUExvYWRNb3JlUm93IiwiU0NNUFNlYXJjaFJvdyIsIlNDTVBTZWFyY2hJbnB1dCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJUQUJfSTE4Tl9LRVlTIiwiY2xpZW50IiwicHJvamVjdCIsInRhc2siLCJ1c2VyIiwibWNwIiwiVEFCX0ZBTExCQUNLUyIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIl9yZWYiLCJyZWYiLCJhbGxvd2VkVHlwZXMiLCJhY3RpdmVUeXBlIiwib25UeXBlQ2hhbmdlIiwiaXRlbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoaWRlUmVjZW50c0xhYmVsIiwiaGFzTW9yZSIsImlzTG9hZGluZ01vcmUiLCJvblJlYWNoTGlzdEVuZCIsInNlYXJjaFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJjb250cm9sbGVkSW5kZXgiLCJhY3RpdmVJbmRleCIsIm9uQWN0aXZlSW5kZXhDaGFuZ2UiLCJpc0tleWJvYXJkTmF2QWN0aXZlIiwib25Nb3VzZU1vdmVJbkxpc3QiLCJzdHlsZSIsImtleWJvYXJkSGludCIsInNob3dTZWFyY2hJbnB1dCIsInNlYXJjaFBsYWNlaG9sZGVyIiwib25TZWFyY2hDaGFuZ2UiLCJvblJlcXVlc3RDbG9zZSIsImhpZGVUYWJQcmVmaXgiLCJfdXNlVCIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbnRlcm5hbEluZGV4Iiwic2V0SW50ZXJuYWxJbmRleCIsImxpc3RSZWYiLCJ1cGRhdGVBY3RpdmVJbmRleCIsImlkeCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwiY3VycmVudCIsImxlbmd0aCIsIl9pdGVtRWxzJGFjdGl2ZUluZGV4IiwibGlzdEVsIiwiaXRlbUVscyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiaGFuZGxlU2VhcmNoS2V5RG93biIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJpdGVtIiwiZW1wdHlNZXNzYWdlIiwidHJpbSIsInF1ZXJ5IiwiZGVmYXVsdFZhbHVlIiwiY29uY2F0IiwicmVuZGVyQm9keSIsImNoaWxkcmVuIiwidW5kZWZpbmVkIiwib25Nb3VzZU1vdmUiLCJvblNjcm9sbCIsImVsIiwiY3VycmVudFRhcmdldCIsInRocmVzaG9sZCIsIm5lYXJCb3R0b20iLCJzY3JvbGxUb3AiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJtYXAiLCJ3aWR0aCIsImFjdGl2ZSIsIm9uU2VsZWN0Iiwib25Ib3ZlciIsInR5cGUiLCJpZCIsInNpemUiLCJyb2xlIiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJhdXRvRm9jdXMiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJvbktleURvd24iLCJ0YWJJbmRleCIsImxhYmVsIiwiYXRQcmVmaXgiLCJyZXBlYXQiLCIkYWN0aXZlIiwidGl0bGUiLCJoZWlnaHQiLCJjb2xvciIsImRpc3BsYXlOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyL0NvbnRleHRNZW50aW9uUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1NTUHJvcGVydGllcywgZm9yd2FyZFJlZiwgS2V5Ym9hcmRFdmVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSW5mb3JtYXRpb25DaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9JbmZvcm1hdGlvbkNpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uSXRlbSBhcyBDb250ZXh0TWVudGlvbkl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkl0ZW0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi9Mb2FkZXInXG5pbXBvcnQge1xuICBTQ01QQ29udGFpbmVyLFxuICBTQ01QRGl2aWRlcixcbiAgU0NNUERpdmlkZXJXcmFwcGVyLFxuICBTQ01QUmVjZW50c0xhYmVsLFxuICBTQ01QUmVjZW50c1JvdyxcbiAgU0NNUFJlY2VudHNUaXRsZSxcbiAgU0NNUExpc3QsXG4gIFNDTVBTdGF0ZVdyYXBwZXIsXG4gIFNDTVBLZXlib2FyZEhpbnQsXG4gIFNDTVBUYWIsXG4gIFNDTVBUYWJzR3JvdXAsXG4gIFNDTVBUYWJzUm93LFxuICBTQ01QTG9hZE1vcmVSb3csXG4gIFNDTVBTZWFyY2hSb3csXG4gIFNDTVBTZWFyY2hJbnB1dCxcbn0gZnJvbSAnLi9Db250ZXh0TWVudGlvblBvcG92ZXIuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvblBvcG92ZXJQcm9wcyA9IHtcbiAgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdXG4gIGFjdGl2ZVR5cGU6IENvbnRleHRFbnRpdHlUeXBlXG4gIG9uVHlwZUNoYW5nZTogKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKSA9PiB2b2lkXG4gIGl0ZW1zOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlW11cbiAgbG9hZGluZzogYm9vbGVhblxuICBlcnJvcjogYm9vbGVhblxuICBoaWRlUmVjZW50c0xhYmVsPzogYm9vbGVhblxuICBoYXNNb3JlPzogYm9vbGVhblxuICBpc0xvYWRpbmdNb3JlPzogYm9vbGVhblxuICBvblJlYWNoTGlzdEVuZD86ICgpID0+IHZvaWRcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xuICBvbkl0ZW1TZWxlY3RlZDogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbiAgLyoqIMONbmRpY2UgcHJlc2VsZWNjaW9uYWRvIChuYXZlZ2FjacOzbiBwb3IgdGVjbGFkbyBleHRlcm5hKS4gU2kgbm8gc2UgcGFzYSwgc2UgbWFuZWphIGludGVybmFtZW50ZS4gKi9cbiAgYWN0aXZlSW5kZXg/OiBudW1iZXJcbiAgb25BY3RpdmVJbmRleENoYW5nZT86IChpZHg6IG51bWJlcikgPT4gdm9pZFxuICBpc0tleWJvYXJkTmF2QWN0aXZlPzogYm9vbGVhblxuICBvbk1vdXNlTW92ZUluTGlzdD86ICgpID0+IHZvaWRcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzXG4gIGtleWJvYXJkSGludD86IHN0cmluZ1xuICAvKipcbiAgICogTW9kbyBcInBpblwiIChzZWd1bmRvIHB1bnRvIGRlIGVudHJhZGEsIFJGQyDCpzYpOiByZW5kZXJpemEgdW4gaW5wdXQgZGUgYsO6c3F1ZWRhIHByb3Bpb1xuICAgKiAoZW4gbWVuY2lvbmVzIGVsIHRleHRvIGxvIHByb3ZlZSBlbCBlZGl0b3IpLiBIYWJpbGl0YSBuYXZlZ2FjacOzbiBwb3IgdGVjbGFkbyBpbnRlcm5hLlxuICAgKi9cbiAgc2hvd1NlYXJjaElucHV0PzogYm9vbGVhblxuICAvKiogUGxhY2Vob2xkZXIgZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbi4gKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIENhbWJpb3MgZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbiAoY29udHJvbGFkbyBwb3IgYHNlYXJjaFZhbHVlYCkuICovXG4gIG9uU2VhcmNoQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWRcbiAgLyoqIEVzY2FwZSBkZW50cm8gZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbi4gKi9cbiAgb25SZXF1ZXN0Q2xvc2U/OiAoKSA9PiB2b2lkXG4gIC8qKiBPY3VsdGEgZWwgcHJlZmlqbyBgQGAvYEBAYCBkZSBsYXMgdGFicyAobm8gYXBsaWNhIGVuIG1vZG8gcGluKS4gKi9cbiAgaGlkZVRhYlByZWZpeD86IGJvb2xlYW5cbn1cblxuY29uc3QgVEFCX0kxOE5fS0VZUzogUmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+ID0ge1xuICBjbGllbnQ6ICdjb250ZXh0TWVudGlvbi50YWJzLmNsaWVudCcsXG4gIHByb2plY3Q6ICdjb250ZXh0TWVudGlvbi50YWJzLnByb2plY3QnLFxuICB0YXNrOiAnY29udGV4dE1lbnRpb24udGFicy50YXNrJyxcbiAgdXNlcjogJ2NvbnRleHRNZW50aW9uLnRhYnMudXNlcicsXG4gIG1jcDogJ2NvbnRleHRNZW50aW9uLnRhYnMubWNwJyxcbn1cblxuY29uc3QgVEFCX0ZBTExCQUNLUzogUmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+ID0ge1xuICBjbGllbnQ6ICdDbGllbnRlJyxcbiAgcHJvamVjdDogJ1Byb3llY3RvJyxcbiAgdGFzazogJ1RhcmVhJyxcbiAgdXNlcjogJ1VzdWFyaW8nLFxuICBtY3A6ICdDb25lY3RvcmVzJyxcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uUG9wb3ZlciA9IGZvcndhcmRSZWY8SFRNTERpdkVsZW1lbnQsIENvbnRleHRNZW50aW9uUG9wb3ZlclByb3BzPihcbiAgKFxuICAgIHtcbiAgICAgIGFsbG93ZWRUeXBlcyxcbiAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICBvblR5cGVDaGFuZ2UsXG4gICAgICBpdGVtcyxcbiAgICAgIGxvYWRpbmcsXG4gICAgICBlcnJvcixcbiAgICAgIGhpZGVSZWNlbnRzTGFiZWwsXG4gICAgICBoYXNNb3JlLFxuICAgICAgaXNMb2FkaW5nTW9yZSxcbiAgICAgIG9uUmVhY2hMaXN0RW5kLFxuICAgICAgc2VhcmNoVmFsdWUsXG4gICAgICBvbkl0ZW1TZWxlY3RlZCxcbiAgICAgIGFjdGl2ZUluZGV4OiBjb250cm9sbGVkSW5kZXgsXG4gICAgICBvbkFjdGl2ZUluZGV4Q2hhbmdlLFxuICAgICAgaXNLZXlib2FyZE5hdkFjdGl2ZSxcbiAgICAgIG9uTW91c2VNb3ZlSW5MaXN0LFxuICAgICAgc3R5bGUsXG4gICAgICBrZXlib2FyZEhpbnQsXG4gICAgICBzaG93U2VhcmNoSW5wdXQsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcixcbiAgICAgIG9uU2VhcmNoQ2hhbmdlLFxuICAgICAgb25SZXF1ZXN0Q2xvc2UsXG4gICAgICBoaWRlVGFiUHJlZml4LFxuICAgIH0sXG4gICAgcmVmXG4gICkgPT4ge1xuICAgIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gICAgY29uc3QgW2ludGVybmFsSW5kZXgsIHNldEludGVybmFsSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgICBjb25zdCBhY3RpdmVJbmRleCA9IGNvbnRyb2xsZWRJbmRleCA/PyBpbnRlcm5hbEluZGV4XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICAgIGNvbnN0IHVwZGF0ZUFjdGl2ZUluZGV4ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaWR4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKG9uQWN0aXZlSW5kZXhDaGFuZ2UpIG9uQWN0aXZlSW5kZXhDaGFuZ2UoaWR4KVxuICAgICAgICBlbHNlIHNldEludGVybmFsSW5kZXgoaWR4KVxuICAgICAgfSxcbiAgICAgIFtvbkFjdGl2ZUluZGV4Q2hhbmdlXVxuICAgIClcblxuICAgIC8vIFJlc2V0IGFsIGNhbWJpYXIgZGUgdGFiIG8gY2FudGlkYWQgZGUgcmVzdWx0YWRvcyAobm8gZW4gbG9hZCBtb3JlKVxuICAgIGNvbnN0IHByZXZJc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2SXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gaXNMb2FkaW5nTW9yZSA/PyBmYWxzZVxuICAgICAgfVxuICAgIH0sIFtpc0xvYWRpbmdNb3JlXSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAocHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICB1cGRhdGVBY3RpdmVJbmRleCgwKVxuICAgIH0sIFthY3RpdmVUeXBlLCBpdGVtcy5sZW5ndGgsIHVwZGF0ZUFjdGl2ZUluZGV4XSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0RWwgPSBsaXN0UmVmLmN1cnJlbnRcbiAgICAgIGlmICghbGlzdEVsIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG4gICAgICBjb25zdCBpdGVtRWxzID0gbGlzdEVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW1lbnRpb24taXRlbV0nKVxuICAgICAgaXRlbUVsc1thY3RpdmVJbmRleF0/LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JyB9KVxuICAgIH0sIFthY3RpdmVJbmRleCwgaXRlbXMubGVuZ3RoXSlcblxuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB1cGRhdGVBY3RpdmVJbmRleChpdGVtcy5sZW5ndGggPiAwID8gTWF0aC5taW4oYWN0aXZlSW5kZXggKyAxLCBpdGVtcy5sZW5ndGggLSAxKSA6IDApXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIHVwZGF0ZUFjdGl2ZUluZGV4KE1hdGgubWF4KGFjdGl2ZUluZGV4IC0gMSwgMCkpXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbYWN0aXZlSW5kZXhdXG4gICAgICAgICAgaWYgKGl0ZW0pIG9uSXRlbVNlbGVjdGVkKGl0ZW0pXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgb25SZXF1ZXN0Q2xvc2U/LigpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbaXRlbXMsIGFjdGl2ZUluZGV4LCB1cGRhdGVBY3RpdmVJbmRleCwgb25JdGVtU2VsZWN0ZWQsIG9uUmVxdWVzdENsb3NlXVxuICAgIClcblxuICAgIGNvbnN0IGVtcHR5TWVzc2FnZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaFZhbHVlLnRyaW0oKSkge1xuICAgICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkud2l0aFF1ZXJ5Jywge1xuICAgICAgICAgIHF1ZXJ5OiBzZWFyY2hWYWx1ZSxcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6IGBObyBoYXkgcmVzdWx0YWRvcyBwYXJhIFwiJHtzZWFyY2hWYWx1ZX1cImAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkucmVjZW50cycsIHsgZGVmYXVsdFZhbHVlOiAnRW1wZXrDoSBhIGVzY3JpYmlyIHBhcmEgYnVzY2FyJyB9KVxuICAgIH0sIFtzZWFyY2hWYWx1ZSwgdF0pXG5cbiAgICBjb25zdCByZW5kZXJCb2R5ID0gKCkgPT4ge1xuICAgICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPnt0KCdjb250ZXh0TWVudGlvbi5sb2FkaW5nJywgeyBkZWZhdWx0VmFsdWU6ICdCdXNjYW5kby4uLicgfSl9PC9TQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgfVxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgICAgICB7dCgnY29udGV4dE1lbnRpb24uZXJyb3InLCB7IGRlZmF1bHRWYWx1ZTogJ0h1Ym8gdW4gcHJvYmxlbWEgYWwgYnVzY2FyJyB9KX1cbiAgICAgICAgICA8L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPntlbXB0eU1lc3NhZ2V9PC9TQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNDTVBMaXN0XG4gICAgICAgICAgcmVmPXtsaXN0UmVmfVxuICAgICAgICAgIGRhdGEta2V5Ym9hcmQtbmF2PXtpc0tleWJvYXJkTmF2QWN0aXZlIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbk1vdXNlTW92ZT17b25Nb3VzZU1vdmVJbkxpc3R9XG4gICAgICAgICAgb25TY3JvbGw9e2UgPT4ge1xuICAgICAgICAgICAgaWYgKCFvblJlYWNoTGlzdEVuZCB8fCAhaGFzTW9yZSB8fCBpc0xvYWRpbmdNb3JlKSByZXR1cm5cbiAgICAgICAgICAgIGNvbnN0IGVsID0gZS5jdXJyZW50VGFyZ2V0XG4gICAgICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSAyNFxuICAgICAgICAgICAgY29uc3QgbmVhckJvdHRvbSA9IGVsLnNjcm9sbFRvcCArIGVsLmNsaWVudEhlaWdodCA+PSBlbC5zY3JvbGxIZWlnaHQgLSB0aHJlc2hvbGRcbiAgICAgICAgICAgIGlmIChuZWFyQm90dG9tKSB7XG4gICAgICAgICAgICAgIG9uUmVhY2hMaXN0RW5kKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgeyFzZWFyY2hWYWx1ZS50cmltKCkgJiYgYWN0aXZlVHlwZSAhPT0gJ3VzZXInICYmICFoaWRlUmVjZW50c0xhYmVsID8gKFxuICAgICAgICAgICAgPFNDTVBSZWNlbnRzUm93PlxuICAgICAgICAgICAgICA8U0NNUFJlY2VudHNUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNUFJlY2VudHNMYWJlbD57dCgnY29udGV4dE1lbnRpb24ucmVjZW50c1RpdGxlJywgeyBkZWZhdWx0VmFsdWU6ICdSZWNpZW50ZXMnIH0pfTwvU0NNUFJlY2VudHNMYWJlbD5cbiAgICAgICAgICAgICAgPC9TQ01QUmVjZW50c1RpdGxlPlxuICAgICAgICAgICAgPC9TQ01QUmVjZW50c1Jvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpZHgpID0+IChcbiAgICAgICAgICAgIDxkaXYga2V5PXtgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gfSBkYXRhLW1lbnRpb24taXRlbSBzdHlsZT17eyB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgICAgICAgICA8Q29udGV4dE1lbnRpb25JdGVtXG4gICAgICAgICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICAgICAgICBhY3RpdmU9e2lkeCA9PT0gYWN0aXZlSW5kZXh9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uSXRlbVNlbGVjdGVkfVxuICAgICAgICAgICAgICAgIG9uSG92ZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICghaXNLZXlib2FyZE5hdkFjdGl2ZSkgdXBkYXRlQWN0aXZlSW5kZXgoaWR4KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgICB7aXNMb2FkaW5nTW9yZSA/IChcbiAgICAgICAgICAgIDxTQ01QTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgIDxMb2FkZXIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgICAgICAgIDwvU0NNUExvYWRNb3JlUm93PlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1NDTVBMaXN0PlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNUENvbnRhaW5lclxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDb250ZXh0IG1lbnRpb24gcGlja2VyXCJcbiAgICAgICAgb25Nb3VzZURvd249e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgID5cbiAgICAgICAge3Nob3dTZWFyY2hJbnB1dCA/IChcbiAgICAgICAgICA8U0NNUFNlYXJjaFJvdz5cbiAgICAgICAgICAgIHsvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvbm8tYXV0b2ZvY3VzICovfVxuICAgICAgICAgICAgPFNDTVBTZWFyY2hJbnB1dFxuICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gb25TZWFyY2hDaGFuZ2U/LihlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlU2VhcmNoS2V5RG93bn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ01QU2VhcmNoUm93PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDTVBUYWJzUm93PlxuICAgICAgICAgIDxTQ01QVGFic0dyb3VwPlxuICAgICAgICAgICAge2FsbG93ZWRUeXBlcy5tYXAoKHR5cGUsIHRhYkluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdChUQUJfSTE4Tl9LRVlTW3R5cGVdLCB7IGRlZmF1bHRWYWx1ZTogVEFCX0ZBTExCQUNLU1t0eXBlXSB9KVxuICAgICAgICAgICAgICBjb25zdCBhdFByZWZpeCA9IGhpZGVUYWJQcmVmaXggPyAnJyA6ICdAJy5yZXBlYXQodGFiSW5kZXggKyAxKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTQ01QVGFiXG4gICAgICAgICAgICAgICAgICBrZXk9e3R5cGV9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2F0UHJlZml4ID8gYCR7YXRQcmVmaXh9ICR7bGFiZWx9YCA6IGxhYmVsfVxuICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17dHlwZSA9PT0gYWN0aXZlVHlwZX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgb25UeXBlQ2hhbmdlKHR5cGUpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHthdFByZWZpeH1cbiAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICA8L1NDTVBUYWI+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvU0NNUFRhYnNHcm91cD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17a2V5Ym9hcmRIaW50IHx8ICcnfT5cbiAgICAgICAgICAgIDxTQ01QS2V5Ym9hcmRIaW50PlxuICAgICAgICAgICAgICA8SW5mb3JtYXRpb25DaXJjbGUgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgPC9TQ01QS2V5Ym9hcmRIaW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ01QVGFic1Jvdz5cbiAgICAgICAgPFNDTVBEaXZpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8U0NNUERpdmlkZXIgLz5cbiAgICAgICAgPC9TQ01QRGl2aWRlcldyYXBwZXI+XG4gICAgICAgIHtyZW5kZXJCb2R5KCl9XG4gICAgICA8L1NDTVBDb250YWluZXI+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uUG9wb3Zlci5kaXNwbGF5TmFtZSA9ICdDb250ZXh0TWVudGlvblBvcG92ZXInXG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUF3QkEsVUFBVSxFQUFpQkMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNuSCxTQUFTQyxpQkFBaUIsUUFBUSxvREFBb0Q7QUFDdEYsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLGtCQUFrQixRQUFRLHVCQUF1QjtBQUMxRCxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUNsQyxTQUNFQyxhQUFhLEVBQ2JDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGNBQWMs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
225
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUIiwiZ2V0TWVudGlvblRhYlByZWZpeCIsIkNvbnRleHRNZW50aW9uSXRlbSIsIkxvYWRlciIsIlNDTVBDb250YWluZXIiLCJTQ01QRGl2aWRlciIsIlNDTVBEaXZpZGVyV3JhcHBlciIsIlNDTVBSZWNlbnRzTGFiZWwiLCJTQ01QUmVjZW50c1JvdyIsIlNDTVBSZWNlbnRzVGl0bGUiLCJTQ01QTGlzdCIsIlNDTVBTdGF0ZVdyYXBwZXIiLCJTQ01QS2V5Ym9hcmRIaW50IiwiU0NNUFRhYiIsIlNDTVBUYWJzR3JvdXAiLCJTQ01QVGFic1JvdyIsIlNDTVBMb2FkTW9yZVJvdyIsIlNDTVBTZWFyY2hSb3ciLCJTQ01QU2VhcmNoSW5wdXQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiVEFCX0kxOE5fS0VZUyIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwidXNlciIsIm1jcCIsIlRBQl9GQUxMQkFDS1MiLCJDb250ZXh0TWVudGlvblBvcG92ZXIiLCJfcmVmIiwicmVmIiwiYWxsb3dlZFR5cGVzIiwiYWN0aXZlVHlwZSIsIm9uVHlwZUNoYW5nZSIsIml0ZW1zIiwibG9hZGluZyIsImVycm9yIiwiaGlkZVJlY2VudHNMYWJlbCIsImhhc01vcmUiLCJpc0xvYWRpbmdNb3JlIiwib25SZWFjaExpc3RFbmQiLCJzZWFyY2hWYWx1ZSIsIm9uSXRlbVNlbGVjdGVkIiwiY29udHJvbGxlZEluZGV4IiwiYWN0aXZlSW5kZXgiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwiaXNLZXlib2FyZE5hdkFjdGl2ZSIsIm9uTW91c2VNb3ZlSW5MaXN0Iiwic3R5bGUiLCJrZXlib2FyZEhpbnQiLCJzaG93U2VhcmNoSW5wdXQiLCJzZWFyY2hQbGFjZWhvbGRlciIsIm9uU2VhcmNoQ2hhbmdlIiwib25SZXF1ZXN0Q2xvc2UiLCJoaWRlVGFiUHJlZml4IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW50ZXJuYWxJbmRleCIsInNldEludGVybmFsSW5kZXgiLCJsaXN0UmVmIiwidXBkYXRlQWN0aXZlSW5kZXgiLCJpZHgiLCJwcmV2SXNMb2FkaW5nTW9yZVJlZiIsImN1cnJlbnQiLCJsZW5ndGgiLCJfaXRlbUVscyRhY3RpdmVJbmRleCIsImxpc3RFbCIsIml0ZW1FbHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwic2Nyb2xsSW50b1ZpZXciLCJibG9jayIsImhhbmRsZVNlYXJjaEtleURvd24iLCJlIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJNYXRoIiwibWluIiwibWF4IiwiaXRlbSIsImVtcHR5TWVzc2FnZSIsInRyaW0iLCJxdWVyeSIsImRlZmF1bHRWYWx1ZSIsImNvbmNhdCIsInJlbmRlckJvZHkiLCJjaGlsZHJlbiIsInVuZGVmaW5lZCIsIm9uTW91c2VNb3ZlIiwib25TY3JvbGwiLCJlbCIsImN1cnJlbnRUYXJnZXQiLCJ0aHJlc2hvbGQiLCJuZWFyQm90dG9tIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibWFwIiwid2lkdGgiLCJhY3RpdmUiLCJvblNlbGVjdCIsIm9uSG92ZXIiLCJ0eXBlIiwiaWQiLCJzaXplIiwicm9sZSIsIm9uTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiYXV0b0ZvY3VzIiwidmFsdWUiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwidGFyZ2V0Iiwib25LZXlEb3duIiwibGFiZWwiLCJhdFByZWZpeCIsIiRhY3RpdmUiLCJ0aXRsZSIsImhlaWdodCIsImNvbG9yIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvblBvcG92ZXIvQ29udGV4dE1lbnRpb25Qb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDU1NQcm9wZXJ0aWVzLCBmb3J3YXJkUmVmLCBLZXlib2FyZEV2ZW50LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBJbmZvcm1hdGlvbkNpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0luZm9ybWF0aW9uQ2lyY2xlJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb25JdGVtIGFzIENvbnRleHRNZW50aW9uSXRlbVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IGdldE1lbnRpb25UYWJQcmVmaXggfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvblRyaWdnZXJzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25JdGVtIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25JdGVtJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vTG9hZGVyJ1xuaW1wb3J0IHtcbiAgU0NNUENvbnRhaW5lcixcbiAgU0NNUERpdmlkZXIsXG4gIFNDTVBEaXZpZGVyV3JhcHBlcixcbiAgU0NNUFJlY2VudHNMYWJlbCxcbiAgU0NNUFJlY2VudHNSb3csXG4gIFNDTVBSZWNlbnRzVGl0bGUsXG4gIFNDTVBMaXN0LFxuICBTQ01QU3RhdGVXcmFwcGVyLFxuICBTQ01QS2V5Ym9hcmRIaW50LFxuICBTQ01QVGFiLFxuICBTQ01QVGFic0dyb3VwLFxuICBTQ01QVGFic1JvdyxcbiAgU0NNUExvYWRNb3JlUm93LFxuICBTQ01QU2VhcmNoUm93LFxuICBTQ01QU2VhcmNoSW5wdXQsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25Qb3BvdmVyUHJvcHMgPSB7XG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXVxuICBhY3RpdmVUeXBlOiBDb250ZXh0RW50aXR5VHlwZVxuICBvblR5cGVDaGFuZ2U6ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4gdm9pZFxuICBpdGVtczogQ29udGV4dE1lbnRpb25JdGVtVHlwZVtdXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgZXJyb3I6IGJvb2xlYW5cbiAgaGlkZVJlY2VudHNMYWJlbD86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaXNMb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgb25SZWFjaExpc3RFbmQ/OiAoKSA9PiB2b2lkXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmdcbiAgb25JdGVtU2VsZWN0ZWQ6IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG4gIC8qKiDDjW5kaWNlIHByZXNlbGVjY2lvbmFkbyAobmF2ZWdhY2nDs24gcG9yIHRlY2xhZG8gZXh0ZXJuYSkuIFNpIG5vIHNlIHBhc2EsIHNlIG1hbmVqYSBpbnRlcm5hbWVudGUuICovXG4gIGFjdGl2ZUluZGV4PzogbnVtYmVyXG4gIG9uQWN0aXZlSW5kZXhDaGFuZ2U/OiAoaWR4OiBudW1iZXIpID0+IHZvaWRcbiAgaXNLZXlib2FyZE5hdkFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZU1vdmVJbkxpc3Q/OiAoKSA9PiB2b2lkXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllc1xuICBrZXlib2FyZEhpbnQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIE1vZG8gXCJwaW5cIiAoc2VndW5kbyBwdW50byBkZSBlbnRyYWRhLCBSRkMgwqc2KTogcmVuZGVyaXphIHVuIGlucHV0IGRlIGLDunNxdWVkYSBwcm9waW9cbiAgICogKGVuIG1lbmNpb25lcyBlbCB0ZXh0byBsbyBwcm92ZWUgZWwgZWRpdG9yKS4gSGFiaWxpdGEgbmF2ZWdhY2nDs24gcG9yIHRlY2xhZG8gaW50ZXJuYS5cbiAgICovXG4gIHNob3dTZWFyY2hJbnB1dD86IGJvb2xlYW5cbiAgLyoqIFBsYWNlaG9sZGVyIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4uICovXG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBDYW1iaW9zIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4gKGNvbnRyb2xhZG8gcG9yIGBzZWFyY2hWYWx1ZWApLiAqL1xuICBvblNlYXJjaENoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkXG4gIC8qKiBFc2NhcGUgZGVudHJvIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4uICovXG4gIG9uUmVxdWVzdENsb3NlPzogKCkgPT4gdm9pZFxuICAvKiogT2N1bHRhIGVsIHByZWZpam8gYEBgL2BAQGAgZGUgbGFzIHRhYnMgKG5vIGFwbGljYSBlbiBtb2RvIHBpbikuICovXG4gIGhpZGVUYWJQcmVmaXg/OiBib29sZWFuXG59XG5cbmNvbnN0IFRBQl9JMThOX0tFWVM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPiA9IHtcbiAgY2xpZW50OiAnY29udGV4dE1lbnRpb24udGFicy5jbGllbnQnLFxuICBwcm9qZWN0OiAnY29udGV4dE1lbnRpb24udGFicy5wcm9qZWN0JyxcbiAgdGFzazogJ2NvbnRleHRNZW50aW9uLnRhYnMudGFzaycsXG4gIHVzZXI6ICdjb250ZXh0TWVudGlvbi50YWJzLnVzZXInLFxuICBtY3A6ICdjb250ZXh0TWVudGlvbi50YWJzLm1jcCcsXG59XG5cbmNvbnN0IFRBQl9GQUxMQkFDS1M6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPiA9IHtcbiAgY2xpZW50OiAnQ2xpZW50ZScsXG4gIHByb2plY3Q6ICdQcm95ZWN0bycsXG4gIHRhc2s6ICdUYXJlYScsXG4gIHVzZXI6ICdVc3VhcmlvJyxcbiAgbWNwOiAnQ29uZWN0b3JlcycsXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvblBvcG92ZXIgPSBmb3J3YXJkUmVmPEhUTUxEaXZFbGVtZW50LCBDb250ZXh0TWVudGlvblBvcG92ZXJQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBhbGxvd2VkVHlwZXMsXG4gICAgICBhY3RpdmVUeXBlLFxuICAgICAgb25UeXBlQ2hhbmdlLFxuICAgICAgaXRlbXMsXG4gICAgICBsb2FkaW5nLFxuICAgICAgZXJyb3IsXG4gICAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgICAgaGFzTW9yZSxcbiAgICAgIGlzTG9hZGluZ01vcmUsXG4gICAgICBvblJlYWNoTGlzdEVuZCxcbiAgICAgIHNlYXJjaFZhbHVlLFxuICAgICAgb25JdGVtU2VsZWN0ZWQsXG4gICAgICBhY3RpdmVJbmRleDogY29udHJvbGxlZEluZGV4LFxuICAgICAgb25BY3RpdmVJbmRleENoYW5nZSxcbiAgICAgIGlzS2V5Ym9hcmROYXZBY3RpdmUsXG4gICAgICBvbk1vdXNlTW92ZUluTGlzdCxcbiAgICAgIHN0eWxlLFxuICAgICAga2V5Ym9hcmRIaW50LFxuICAgICAgc2hvd1NlYXJjaElucHV0LFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgICBvblNlYXJjaENoYW5nZSxcbiAgICAgIG9uUmVxdWVzdENsb3NlLFxuICAgICAgaGlkZVRhYlByZWZpeCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICAgIGNvbnN0IFtpbnRlcm5hbEluZGV4LCBzZXRJbnRlcm5hbEluZGV4XSA9IHVzZVN0YXRlKDApXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBjb250cm9sbGVkSW5kZXggPz8gaW50ZXJuYWxJbmRleFxuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgICBjb25zdCB1cGRhdGVBY3RpdmVJbmRleCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChvbkFjdGl2ZUluZGV4Q2hhbmdlKSBvbkFjdGl2ZUluZGV4Q2hhbmdlKGlkeClcbiAgICAgICAgZWxzZSBzZXRJbnRlcm5hbEluZGV4KGlkeClcbiAgICAgIH0sXG4gICAgICBbb25BY3RpdmVJbmRleENoYW5nZV1cbiAgICApXG5cbiAgICAvLyBSZXNldCBhbCBjYW1iaWFyIGRlIHRhYiBvIGNhbnRpZGFkIGRlIHJlc3VsdGFkb3MgKG5vIGVuIGxvYWQgbW9yZSlcbiAgICBjb25zdCBwcmV2SXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgcHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IGlzTG9hZGluZ01vcmUgPz8gZmFsc2VcbiAgICAgIH1cbiAgICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoMClcbiAgICB9LCBbYWN0aXZlVHlwZSwgaXRlbXMubGVuZ3RoLCB1cGRhdGVBY3RpdmVJbmRleF0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdEVsID0gbGlzdFJlZi5jdXJyZW50XG4gICAgICBpZiAoIWxpc3RFbCB8fCBpdGVtcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgICAgY29uc3QgaXRlbUVscyA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tZW50aW9uLWl0ZW1dJylcbiAgICAgIGl0ZW1FbHNbYWN0aXZlSW5kZXhdPy5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSlcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGl0ZW1zLmxlbmd0aF0pXG5cbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoaXRlbXMubGVuZ3RoID4gMCA/IE1hdGgubWluKGFjdGl2ZUluZGV4ICsgMSwgaXRlbXMubGVuZ3RoIC0gMSkgOiAwKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB1cGRhdGVBY3RpdmVJbmRleChNYXRoLm1heChhY3RpdmVJbmRleCAtIDEsIDApKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2FjdGl2ZUluZGV4XVxuICAgICAgICAgIGlmIChpdGVtKSBvbkl0ZW1TZWxlY3RlZChpdGVtKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPy4oKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2l0ZW1zLCBhY3RpdmVJbmRleCwgdXBkYXRlQWN0aXZlSW5kZXgsIG9uSXRlbVNlbGVjdGVkLCBvblJlcXVlc3RDbG9zZV1cbiAgICApXG5cbiAgICBjb25zdCBlbXB0eU1lc3NhZ2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LndpdGhRdWVyeScsIHtcbiAgICAgICAgICBxdWVyeTogc2VhcmNoVmFsdWUsXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBgTm8gaGF5IHJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVmFsdWV9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LnJlY2VudHMnLCB7IGRlZmF1bHRWYWx1ZTogJ0VtcGV6w6EgYSBlc2NyaWJpciBwYXJhIGJ1c2NhcicgfSlcbiAgICB9LCBbc2VhcmNoVmFsdWUsIHRdKVxuXG4gICAgY29uc3QgcmVuZGVyQm9keSA9ICgpID0+IHtcbiAgICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiA8U0NNUFN0YXRlV3JhcHBlcj57dCgnY29udGV4dE1lbnRpb24ubG9hZGluZycsIHsgZGVmYXVsdFZhbHVlOiAnQnVzY2FuZG8uLi4nIH0pfTwvU0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgIH1cbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgICAgICAge3QoJ2NvbnRleHRNZW50aW9uLmVycm9yJywgeyBkZWZhdWx0VmFsdWU6ICdIdWJvIHVuIHByb2JsZW1hIGFsIGJ1c2NhcicgfSl9XG4gICAgICAgICAgPC9TQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgICApXG4gICAgICB9XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiA8U0NNUFN0YXRlV3JhcHBlcj57ZW1wdHlNZXNzYWdlfTwvU0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01QTGlzdFxuICAgICAgICAgIHJlZj17bGlzdFJlZn1cbiAgICAgICAgICBkYXRhLWtleWJvYXJkLW5hdj17aXNLZXlib2FyZE5hdkFjdGl2ZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgb25Nb3VzZU1vdmU9e29uTW91c2VNb3ZlSW5MaXN0fVxuICAgICAgICAgIG9uU2Nyb2xsPXtlID0+IHtcbiAgICAgICAgICAgIGlmICghb25SZWFjaExpc3RFbmQgfHwgIWhhc01vcmUgfHwgaXNMb2FkaW5nTW9yZSkgcmV0dXJuXG4gICAgICAgICAgICBjb25zdCBlbCA9IGUuY3VycmVudFRhcmdldFxuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMjRcbiAgICAgICAgICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxUb3AgKyBlbC5jbGllbnRIZWlnaHQgPj0gZWwuc2Nyb2xsSGVpZ2h0IC0gdGhyZXNob2xkXG4gICAgICAgICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICAgICAgICBvblJlYWNoTGlzdEVuZCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHshc2VhcmNoVmFsdWUudHJpbSgpICYmIGFjdGl2ZVR5cGUgIT09ICd1c2VyJyAmJiAhaGlkZVJlY2VudHNMYWJlbCA/IChcbiAgICAgICAgICAgIDxTQ01QUmVjZW50c1Jvdz5cbiAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzTGFiZWw+e3QoJ2NvbnRleHRNZW50aW9uLnJlY2VudHNUaXRsZScsIHsgZGVmYXVsdFZhbHVlOiAnUmVjaWVudGVzJyB9KX08L1NDTVBSZWNlbnRzTGFiZWw+XG4gICAgICAgICAgICAgIDwvU0NNUFJlY2VudHNUaXRsZT5cbiAgICAgICAgICAgIDwvU0NNUFJlY2VudHNSb3c+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17YCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YH0gZGF0YS1tZW50aW9uLWl0ZW0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgICAgICAgPENvbnRleHRNZW50aW9uSXRlbVxuICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtpZHggPT09IGFjdGl2ZUluZGV4fVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkl0ZW1TZWxlY3RlZH1cbiAgICAgICAgICAgICAgICBvbkhvdmVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWlzS2V5Ym9hcmROYXZBY3RpdmUpIHVwZGF0ZUFjdGl2ZUluZGV4KGlkeClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAge2lzTG9hZGluZ01vcmUgPyAoXG4gICAgICAgICAgICA8U0NNUExvYWRNb3JlUm93PlxuICAgICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBMb2FkTW9yZVJvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01QTGlzdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBDb250YWluZXJcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ29udGV4dCBtZW50aW9uIHBpY2tlclwiXG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIHtzaG93U2VhcmNoSW5wdXQgPyAoXG4gICAgICAgICAgPFNDTVBTZWFyY2hSb3c+XG4gICAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L25vLWF1dG9mb2N1cyAqL31cbiAgICAgICAgICAgIDxTQ01QU2VhcmNoSW5wdXRcbiAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uU2VhcmNoQ2hhbmdlPy4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZVNlYXJjaEtleURvd259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NNUFNlYXJjaFJvdz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ01QVGFic1Jvdz5cbiAgICAgICAgICA8U0NNUFRhYnNHcm91cD5cbiAgICAgICAgICAgIHthbGxvd2VkVHlwZXMubWFwKHR5cGUgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHQoVEFCX0kxOE5fS0VZU1t0eXBlXSwgeyBkZWZhdWx0VmFsdWU6IFRBQl9GQUxMQkFDS1NbdHlwZV0gfSlcbiAgICAgICAgICAgICAgY29uc3QgYXRQcmVmaXggPSBoaWRlVGFiUHJlZml4ID8gJycgOiBnZXRNZW50aW9uVGFiUHJlZml4KHR5cGUpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFNDTVBUYWJcbiAgICAgICAgICAgICAgICAgIGtleT17dHlwZX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YXRQcmVmaXggPyBgJHthdFByZWZpeH0gJHtsYWJlbH1gIDogbGFiZWx9XG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXt0eXBlID09PSBhY3RpdmVUeXBlfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBvblR5cGVDaGFuZ2UodHlwZSlcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2F0UHJlZml4fVxuICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvU0NNUFRhYj5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ01QVGFic0dyb3VwPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtrZXlib2FyZEhpbnQgfHwgJyd9PlxuICAgICAgICAgICAgPFNDTVBLZXlib2FyZEhpbnQ+XG4gICAgICAgICAgICAgIDxJbmZvcm1hdGlvbkNpcmNsZSB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPVwiIzgwODA4MFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBLZXlib2FyZEhpbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDTVBUYWJzUm93PlxuICAgICAgICA8U0NNUERpdmlkZXJXcmFwcGVyPlxuICAgICAgICAgIDxTQ01QRGl2aWRlciAvPlxuICAgICAgICA8L1NDTVBEaXZpZGVyV3JhcHBlcj5cbiAgICAgICAge3JlbmRlckJvZHkoKX1cbiAgICAgIDwvU0NNUENvbnRhaW5lcj5cbiAgICApXG4gIH1cbilcblxuQ29udGV4dE1lbnRpb25Qb3BvdmVyLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXdCQSxVQUFVLEVBQWlCQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ25ILFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFFMUMsU0FBU0MsbUJBQW1CLFFBQVEsdUNBQXVDO0FBQzNFLFNBQVNDLGtCQUFrQixRQUFRLHVC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
@@ -243,7 +243,9 @@ export var useChatMessages = function useChatMessages(_ref) {
243
243
  return a.id === agentNoPermission.id;
244
244
  });
245
245
  if (agentInList) {
246
- selectAgent(_objectSpread(_objectSpread({}, agentInList), projectDeleted ? {
246
+ selectAgent(_objectSpread(_objectSpread(_objectSpread({}, agentInList), agentNoPermission.connectors ? {
247
+ connectors: agentNoPermission.connectors
248
+ } : {}), projectDeleted ? {
247
249
  project_deleted: {
248
250
  name: projectDeleted.name
249
251
  }
@@ -566,4 +568,4 @@ export var useChatMessages = function useChatMessages(_ref) {
566
568
  handleScroll: handleScroll
567
569
  };
568
570
  };
569
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwicmV3cml0ZVRhc2tVcmxzSW5Db250ZW50IiwiY29udGVudCIsInRhYlNlZ21lbnQiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwidXJsIiwidXNlQ2hhdE1lc3NhZ2VzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25FcnJvciIsImNoYXRJZCIsImN1cnJlbnRVc2VyIiwidXNlckluaXRpYWxNZXNzYWdlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlciIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwiX3VzZVN0YXRlMyIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwibWVzc2FnZSIsImZ1YUlkIiwic2NJZCIsImF0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJjb250ZXh0TWVzc2FnZSIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInByb2plY3QiLCJfdXNlVGFiVGFza0RlZmF1bHQiLCJnZXRUYWJUYXNrRGVmYXVsdCIsInRhYlRhc2tEZWZhdWx0IiwicmVmZXRjaFRhYlRhc2tEZWZhdWx0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxhc3RFdmFsdWF0ZWRLZXkiLCJzZXRMYXN0RXZhbHVhdGVkS2V5IiwiaXNMb2FkaW5nUmVmIiwiaW5pdGlhbExvYWREb25lIiwicHJldmlvdXNDaGF0SWQiLCJzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYyIiwicHJvamVjdElkTWVzc2FnZSIsInByb2plY3ROYW1lRnJvbVNlc3Npb24iLCJjbGllbnRJZEZyb21TZXNzaW9uIiwiY2xpZW50TmFtZUZyb21TZXNzaW9uIiwidGFza0lkRnJvbVNlc3Npb24iLCJ0YXNrTmFtZUZyb21TZXNzaW9uIiwicHJvamVjdHMiLCJoYXNNdWx0aUFnZW50c0FjY2VzcyIsInByb2plY3RJZE51bSIsImZvdW5kUHJvamVjdCIsIl9mb3VuZFByb2plY3QkY2xpZW50Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJuYW1lIiwiTnVtYmVyIiwiYWJydXB0Iiwic2VudCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJmaW5kIiwicCIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1lc3NhZ2VzIiwiX2NhbGxlZTIiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsImFnZW50VHlwZUZyb21TZXNzaW9uIiwiYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsIl90IiwiX2NvbnRleHQyIiwiY3VycmVudCIsIkNoYXRzIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwib2Zmc2V0IiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5ndWFnZSIsImFnZW50VHlwZSIsImFnZW50RW50aXR5IiwiY2xpZW50SWQiLCJ0YXNrSWQiLCJ0YXNrTmFtZSIsImNvbnNvbGUiLCJpbmZvIiwidXNlclBlcm1pc3Npb25zVmlldyIsInZpZXciLCJhZ2VudEluQWdlbnRzTGlzdCIsImEiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsImNvbm5lY3RvcnMiLCJhZ2VudCIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwicHJvamVjdF9kZWxldGVkIiwidW5kZWZpbmVkIiwiaGFzX25vdF9hY2Nlc3MiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJmaW5pc2giLCJsb2FkTW9yZU1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsImNvbnRhaW5lciIsIm9sZFNjcm9sbEhlaWdodCIsIm9sZFNjcm9sbFRvcCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJpdGVtc1RvTWVyZ2UiLCJuZXdNZXNzYWdlcyIsIl90MiIsIl9jb250ZXh0MyIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY29udGFpbmVyUmVmIiwibmV3U2Nyb2xsSGVpZ2h0IiwiaGVpZ2h0RGlmZmVyZW5jZSIsIl94MiIsImhhbmRsZVNjcm9sbCIsImNsaWVudEhlaWdodCIsInNjcm9sbFBlcmNlbnRhZ2UiLCJkaWRSZXdyaXRlUmVmIiwibGVuZ3RoIiwibmVlZHNSZXdyaXRlIiwic29tZSIsIm1zZyIsIm1hdGNoZXMiLCJtYXRjaCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJyZXdyaXR0ZW4iLCJhZGRNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlSW5kZXgiLCJmaW5kSW5kZXgiLCJyZW1vdmVNZXNzYWdlIiwibWVzc2FnZUlkIiwiZmlsdGVyIiwiaGFzTW9yZU1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdHMgfSBmcm9tICcuLi91c2VQcm9qZWN0cydcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGJ1aWxkQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBVc2VDaGF0TWVzc2FnZXNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdE1lc3NhZ2VzLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVRhYlRhc2tEZWZhdWx0IH0gZnJvbSAnLi4vdXNlVGFiVGFza0RlZmF1bHQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlRm9yRGlzcGxheSh1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSwge1xuICAgICAgICAgICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICAgdGFza0lkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICB9KSA9PiB7XG4gICAgICAvLyBUYXJlYSBkZSBsYSBjb252ZXJzYWNpw7NuOiBzZSBkZXJpdmEgZGUgbGEgbWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBwYXJhIG1vc3RyYXIgZWwgY2hpcFxuICAgICAgLy8gZGUgbGEgdGFyZWEgKHkgcmVlbnZpYXIgbGEgbWV0YWRhdGEgZW4gY2FkYSBtZW5zYWplKSBzaW4gaW1wb3J0YXIgZGVzZGUgZMOzbmRlIHNlIGFicmEuXG4gICAgICBpZiAodGFza0lkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiB0YXNrTmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldFRhc2soeyBpZDogdGFza0lkRnJvbVNlc3Npb24sIG5hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVyc2FjacOzbiBjb24gY2xpZW50X21ldGFkYXRhOiBzZXRlYXIgY2xpZW50ZSB5IGxpbXBpYXIgcHJveWVjdG9cbiAgICAgIGlmIChjbGllbnRJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgY2xpZW50TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldENsaWVudCh7IGlkOiBOdW1iZXIoY2xpZW50SWRGcm9tU2Vzc2lvbiksIG5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbiB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgaGFzTXVsdGlBZ2VudHNBY2Nlc3MpIHtcbiAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmRQcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZFByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoZm91bmRQcm9qZWN0KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmZXRjaFByb2plY3RzLCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0VGFza11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKHRydWUpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBjb25zdCB7XG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgYWdlbnREZWxldGVkLFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MsXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbixcbiAgICAgICAgYWdlbnRUeXBlOiBhZ2VudFR5cGVGcm9tU2Vzc2lvbixcbiAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3REZWxldGVkLFxuICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgIGNoYXRJZCxcbiAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgY2FuY2VsbGVkVGV4dDogdCgnY2hhdC5jYW5jZWxsZWQnKSxcbiAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgIH0pXG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIGxvYWRNZXNzYWdlcyByZXN1bHQ6Jywge1xuICAgICAgICBjaGF0SWQsXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgICAgICBhZ2VudERlbGV0ZWQ6ICEhYWdlbnREZWxldGVkLFxuICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uLFxuICAgICAgICB1c2VyUGVybWlzc2lvbnNWaWV3OiB1c2VyUGVybWlzc2lvbnM/LnZpZXcsXG4gICAgICAgIGFnZW50SW5BZ2VudHNMaXN0OiBhZ2VudE5vUGVybWlzc2lvbiA/ICEhYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZCkgOiBudWxsLFxuICAgICAgfSlcblxuICAgICAgaWYgKGFnZW50RGVsZXRlZCkge1xuICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgaWQ6IGFnZW50RGVsZXRlZC5pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudERlbGV0ZWQubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnREZWxldGVkLmVtb2ppLFxuICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgIGlzX2RlbGV0ZWQ6IHRydWUsXG4gICAgICAgICAgZGVsZXRlZF9hdDogYWdlbnREZWxldGVkLmRlbGV0ZWRBdCxcbiAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24/LmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIGVzdMOhIGVuIGxhIGxpc3RhIHBlcm8gdGllbmUgcGVybWlzb3MsIGFjY2VzbyB5IG5vIGVzdMOhIGVsaW1pbmFkbywgc2V0ZWFybG8gbm9ybWFsbWVudGVcbiAgICAgIC8vIEV4Y2x1aXIgYWdlbnRlcyBuby1jdXN0b20gcGFyYSB1c3VhcmlvcyBjb24gcm9sZXMgZGVzaGFiaWxpdGFkb3NcbiAgICAgIGlmIChcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICB1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudHMuZmluZChhZ2VudCA9PiBhZ2VudC5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICBpc19mcm9tX2NvbnZlcnNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgZXN0w6EgZW4gbGEgbGlzdGEgeSB0aWVuZSBhY2Nlc28vcGVybWlzb3MsIGFjdHVhbGl6YXIgcHJvamVjdF9kZWxldGVkIChvIGxpbXBpYXJsbyBhbCBjYW1iaWFyIGRlIGNoYXQpXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgIGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgYWdlbnRJbkxpc3QgPSBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICBpZiAoYWdlbnRJbkxpc3QpIHtcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICAuLi5hZ2VudEluTGlzdCxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDogeyBwcm9qZWN0X2RlbGV0ZWQ6IHVuZGVmaW5lZCB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNpIGVsIGFnZW50ZSBubyB0aWVuZSBhY2Nlc28gbyBwZXJtaXNvcyBzZWfDum4gbGEgcmVzcHVlc3RhIGRlIHNlc3Npb25zLCBzZWxlY2Npb25hcmxvIGNvbiBlbCBmbGFnIGNvcnJlc3BvbmRpZW50ZVxuICAgICAgLy8gTGEgdmFsaWRhY2nDs24gYWhvcmEgc2UgYmFzYSBlbiBsYXMgcHJvcGllZGFkZXMgaGFzX2FnZW50X2FjY2VzcyB5IGhhc19hZ2VudF9wZXJtaXNzaW9uIGRlIGxhIHJlc3B1ZXN0YVxuICAgICAgaWYgKGFnZW50Tm9QZXJtaXNzaW9uICYmICFhZ2VudERlbGV0ZWQpIHtcbiAgICAgICAgaWYgKCFoYXNBZ2VudEFjY2Vzcykge1xuICAgICAgICAgIC8vIENhc28gMTogTm8gdGllbmUgYWNjZXNvIGFsIGFnZW50ZVxuICAgICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gQlJBTkNIOiBoYXNfbm90X2FjY2VzcyDigJQgaGFzQWdlbnRBY2Nlc3M6JywgaGFzQWdlbnRBY2Nlc3MpXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyB8ICdvcmNoZXN0cmF0b3InLFxuICAgICAgICAgICAgaGFzX25vdF9hY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmICghaGFzQWdlbnRQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgLy8gQ2FzbyAyOiBObyB0aWVuZSBwZXJtaXNvcyBwYXJhIHZpc3VhbGl6YXIvaW50ZXJhY3R1YXIgY29uIGVsIGFnZW50ZVxuICAgICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUNoYXRNZXNzYWdlc10gQlJBTkNIOiBoYXNfbm90X3Blcm1pc3Npb25zIOKAlCBoYXNBZ2VudFBlcm1pc3Npb246JywgaGFzQWdlbnRQZXJtaXNzaW9uKVxuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgIGhhc19ub3RfcGVybWlzc2lvbnM6IHRydWUsXG4gICAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKHByb2plY3REZWxldGVkID8geyBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9IH0gOiB7fSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIGlmIChwcm9qZWN0RGVsZXRlZCkge1xuICAgICAgICAgIC8vIENhc28gMzogRWwgcHJveWVjdG8gZGUgbGEgY29udmVyc2FjacOzbiBmdWUgZWxpbWluYWRvXG4gICAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgICAgaWQ6IGFnZW50Tm9QZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgbmFtZTogYWdlbnROb1Blcm1pc3Npb24ubmFtZSxcbiAgICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICAgIHR5cGU6IGFnZW50Tm9QZXJtaXNzaW9uLnR5cGUgYXMgJ3BtJyB8ICdjdXN0b20nIHwgJ2Nsb25lJyB8ICdvcmNoZXN0cmF0b3InLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhKHtcbiAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0pXG5cbiAgICAgIC8vIE1ldGFkYXRhIGRlIGxhIHNlc3Npb24gKGFnZW50X3R5cGUgLyBhZ2VudF9lbnRpdHkgKyBjb250ZXh0bykgcGFyYSBlbCBjYXJ0ZWwgZGVcbiAgICAgIC8vIFwiY29udGludWFyIGVuIHVuIGNoYXQgbnVldm9cIiBkZWwgZm9vdGVyIGN1YW5kbyBzZSBhYnJlIHVuYSBjb252ZXJzYWNpw7NuIGRlIHVuIGNsb25lIGxlZ2FjeS5cbiAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1jaGF0LXNlc3Npb24tbWV0YScsIHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIGNoYXRJZCxcbiAgICAgICAgICAgIGFnZW50VHlwZTogYWdlbnRUeXBlRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBhZ2VudEVudGl0eTogYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgICAgdGFza05hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgY29uIGVsIHRhYiBkZWwgdXN1YXJpbyAobWUpXG4gICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgbGV0IGl0ZW1zVG9TZXQgPSBpdGVtc1xuICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgY29uc3QgdGFiID0gYXdhaXQgZ2V0VGFiVGFza0RlZmF1bHQoMSlcbiAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICBpdGVtc1RvU2V0ID0gaXRlbXMubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICB9KSlcbiAgICAgIH1cbiAgICAgIHNldE1lc3NhZ2VzKGl0ZW1zVG9TZXQpXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcj8uKClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGZhbHNlKVxuICAgIH1cbiAgfSwgW2NoYXRJZCwgY3VycmVudFVzZXIsIHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEsIG9uRXJyb3IsIGdldFRhYlRhc2tEZWZhdWx0XSlcblxuICBjb25zdCBsb2FkTW9yZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoaXNMb2FkaW5nUmVmLmN1cnJlbnQgfHwgIWxhc3RFdmFsdWF0ZWRLZXkgfHwgIWNvbnRhaW5lcikgcmV0dXJuXG4gICAgICB0cnkge1xuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKHRydWUpXG5cbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsSGVpZ2h0ID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxuICAgICAgICBjb25zdCBvbGRTY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIG5leHRJdGVtLFxuICAgICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnROYW1lOiBjbGllbnROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza0lkOiB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzKHtcbiAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgb2Zmc2V0OiBsYXN0RXZhbHVhdGVkS2V5LFxuICAgICAgICAgIGxhbmc6IG1hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSksXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgICBwcm9qZWN0TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gU2kgaGF5IHByb3llY3RvIGVuIGxhIGNvbnZlcnNhY2nDs24sIHJlZXNjcmliaXIgVVJMcyBkZSB0YXJlYXMgZW4gbG9zIG1lbnNhamVzIGNhcmdhZG9zXG4gICAgICAgIGNvbnN0IGNvbnRleHRQcm9qZWN0SWQgPSBwcm9qZWN0SWRNZXNzYWdlID8gcGFyc2VJbnQoU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLCAxMCkgOiBudWxsXG4gICAgICAgIGxldCBpdGVtc1RvTWVyZ2UgPSBpdGVtc1xuICAgICAgICBpZiAoY29udGV4dFByb2plY3RJZCkge1xuICAgICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgICAgY29uc3QgdGFiU2VnbWVudCA9IHRhYiA/IGAvJHt0YWJ9YCA6ICcvZGV0YWlsJ1xuICAgICAgICAgIGl0ZW1zVG9NZXJnZSA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KGl0ZW0ubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgICAgICAgfSkpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3TWVzc2FnZXMgPSBbLi4ubWVzc2FnZXMuc2xpY2UoMCwgMSksIC4uLml0ZW1zVG9NZXJnZSwgLi4ubWVzc2FnZXMuc2xpY2UoMSldXG4gICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKVxuICAgICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KE51bWJlcihuZXh0SXRlbSkpXG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVmID0gY29udGFpbmVyXG4gICAgICAgICAgICBpZiAoY29udGFpbmVyUmVmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld1Njcm9sbEhlaWdodCA9IGNvbnRhaW5lclJlZi5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0RGlmZmVyZW5jZSA9IG5ld1Njcm9sbEhlaWdodCAtIG9sZFNjcm9sbEhlaWdodFxuICAgICAgICAgICAgICBjb250YWluZXJSZWYuc2Nyb2xsVG9wID0gb2xkU2Nyb2xsVG9wICsgaGVpZ2h0RGlmZmVyZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBvbkVycm9yPy4oKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nTW9yZU1lc3NhZ2VzKGZhbHNlKVxuICAgICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBbY2hhdElkLCBjdXJyZW50VXNlciwgbGFzdEV2YWx1YXRlZEtleSwgb25FcnJvciwgbWVzc2FnZXMsIGdldFRhYlRhc2tEZWZhdWx0LCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhXVxuICApXG5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBpZiAoIWNvbnRhaW5lciB8fCBpc0xvYWRpbmdSZWYuY3VycmVudCB8fCAhaW5pdGlhbExvYWREb25lLmN1cnJlbnQpIHJldHVyblxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgICAgY29uc3Qgc2Nyb2xsUGVyY2VudGFnZSA9IHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCA+IDAgPyAoc2Nyb2xsVG9wIC8gKHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCkpICogMTAwIDogMFxuXG4gICAgICBpZiAoc2Nyb2xsUGVyY2VudGFnZSA8IDEwKSB7XG4gICAgICAgIGxvYWRNb3JlTWVzc2FnZXMoY29udGFpbmVyKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvYWRNb3JlTWVzc2FnZXNdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGF0SWQgIT09IHByZXZpb3VzQ2hhdElkLmN1cnJlbnQpIHtcbiAgICAgIHNldE1lc3NhZ2VzKFxuICAgICAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgdXNlcjogY3VycmVudFVzZXIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlRm9yRGlzcGxheSh1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSwge1xuICAgICAgICAgICAgICAgICAgZnVhSWQ6IHVzZXJJbml0aWFsTWVzc2FnZS5mdWFJZCxcbiAgICAgICAgICAgICAgICAgIHNjSWQ6IHVzZXJJbml0aWFsTWVzc2FnZS5zY0lkLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC4uLih1c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHMgPyB7IGF0dGFjaG1lbnRzOiB1c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4oYnVpbGRDb250ZXh0TWVzc2FnZSh1c2VySW5pdGlhbE1lc3NhZ2UubWVudGlvbnMpXG4gICAgICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdXG4gICAgICApXG4gICAgICBzZXRMYXN0RXZhbHVhdGVkS2V5KDApXG4gICAgICBpc0xvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBwcmV2aW91c0NoYXRJZC5jdXJyZW50ID0gY2hhdElkXG5cbiAgICAgIC8vIExpbXBpYXIgZWwgZXN0YWRvIGRlbCBwcm95ZWN0byB5IGxhIHRhcmVhIGN1YW5kbyBjYW1iaWEgZGUgY29udmVyc2FjacOzblxuICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG5cbiAgICAgIC8vIFZvbHZlciBhIGVqZWN1dGFyIGxhIHF1ZXJ5IG1lIHBhcmEgdGVuZXIgdGFiVGFza0RlZmF1bHQgYWN0dWFsaXphZG8gZW4gbGEgbnVldmEgY29udmVyc2FjacOzblxuICAgICAgcmVmZXRjaFRhYlRhc2tEZWZhdWx0KClcblxuICAgICAgaWYgKCF1c2VySW5pdGlhbE1lc3NhZ2UpIHtcbiAgICAgICAgbG9hZE1lc3NhZ2VzKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICBjaGF0SWQsXG4gICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgIGN1cnJlbnRVc2VyLFxuICAgIGxvYWRNZXNzYWdlcyxcbiAgICBzZXRDaGlwc1Byb2plY3QsXG4gICAgc2V0UHJvamVjdCxcbiAgICBzZXRUYXNrLFxuICAgIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdCxcbiAgXSlcblxuICAvLyBDdWFuZG8gdGFiVGFza0RlZmF1bHQgcGFzYSBhIGVzdGFyIGRpc3BvbmlibGUgZGVzcHXDqXMgZGUgY2FyZ2FyLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGVuIGxvcyBtZW5zYWplcyB5YSBjYXJnYWRvcy5cbiAgLy8gUmVmIHBhcmEgZXZpdGFyIGJ1Y2xlOiBzZXRNZXNzYWdlcyhyZXdyaXR0ZW4pIGNhbWJpYSBtZXNzYWdlcyB5IHJlLWVqZWN1dGEgZWwgZWZlY3RvOyBzb2xvIHJlZXNjcmliaW1vcyB1bmEgdmV6IHBvciBsb3RlLlxuICBjb25zdCBkaWRSZXdyaXRlUmVmID0gdXNlUmVmKGZhbHNlKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGFiVGFza0RlZmF1bHQgfHwgIXByb2plY3Q/LmlkIHx8IG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG4gICAgY29uc3QgdGFza1VybFJlZ2V4ID0gbmV3IFJlZ0V4cChUQVNLX1VSTF9SRUdFWF9QQVRURVJOLCAnZycpXG4gICAgY29uc3QgdGFiU2VnbWVudCA9IGAvJHt0YWJUYXNrRGVmYXVsdH1gXG4gICAgY29uc3QgbmVlZHNSZXdyaXRlID0gbWVzc2FnZXMuc29tZShtc2cgPT4ge1xuICAgICAgY29uc3QgY29udGVudCA9IG1zZy5tZXNzYWdlIHx8ICcnXG4gICAgICBjb25zdCBtYXRjaGVzID0gY29udGVudC5tYXRjaCh0YXNrVXJsUmVnZXgpXG4gICAgICBpZiAoIW1hdGNoZXM/Lmxlbmd0aCkgcmV0dXJuIGZhbHNlXG4gICAgICByZXR1cm4gbWF0Y2hlcy5zb21lKHVybCA9PiAhdXJsLmVuZHNXaXRoKGAvJHt0YWJUYXNrRGVmYXVsdH1gKSAmJiAhdXJsLmluY2x1ZGVzKGAvJHt0YWJUYXNrRGVmYXVsdH0/YCkpXG4gICAgfSlcbiAgICBpZiAoIW5lZWRzUmV3cml0ZSkge1xuICAgICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoZGlkUmV3cml0ZVJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBkaWRSZXdyaXRlUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgY29uc3QgcmV3cml0dGVuID0gbWVzc2FnZXMubWFwKG1zZyA9PiAoe1xuICAgICAgLi4ubXNnLFxuICAgICAgbWVzc2FnZTogcmV3cml0ZVRhc2tVcmxzSW5Db250ZW50KG1zZy5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICB9KSlcbiAgICBzZXRNZXNzYWdlcyhyZXdyaXR0ZW4pXG4gIH0sIFt0YWJUYXNrRGVmYXVsdCwgcHJvamVjdD8uaWQsIG1lc3NhZ2VzXSlcblxuICBjb25zdCBhZGRNZXNzYWdlID0gdXNlQ2FsbGJhY2soKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB7XG4gICAgc2V0TWVzc2FnZXMocHJldiA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2VJbmRleCA9IHByZXYuZmluZEluZGV4KG1zZyA9PiBtc2cuaWQgPT09IG1lc3NhZ2UuaWQpXG5cbiAgICAgIGlmIChleGlzdGluZ01lc3NhZ2VJbmRleCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gWy4uLnByZXZdXG4gICAgICAgIG5ld01lc3NhZ2VzW2V4aXN0aW5nTWVzc2FnZUluZGV4XSA9IG1lc3NhZ2VcbiAgICAgICAgcmV0dXJuIG5ld01lc3NhZ2VzXG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnByZXYsIG1lc3NhZ2VdXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgcmVtb3ZlTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4gcHJldi5maWx0ZXIobXNnID0+IG1zZy5pZCAhPT0gbWVzc2FnZUlkKSlcbiAgfSwgW10pXG5cbiAgcmV0dXJuIHtcbiAgICBsb2FkaW5nTWVzc2FnZXMsXG4gICAgbWVzc2FnZXMsXG4gICAgaGFzTW9yZU1lc3NhZ2VzOiAhIWxhc3RFdmFsdWF0ZWRLZXksXG4gICAgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLFxuICAgIGxvYWRNZXNzYWdlcyxcbiAgICBsb2FkTW9yZU1lc3NhZ2VzLFxuICAgIGFkZE1lc3NhZ2UsXG4gICAgcmVtb3ZlTWVzc2FnZSxcbiAgICBoYW5kbGVTY3JvbGwsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0EsU0FBU0EsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDaEUsU0FBU0MsV0FBVyxRQUFRLGdCQUFnQjtBQUU1QyxTQUFTQyxtQkFBbUIsUUFBUSw0QkFBNEI7QUFDaEUsT0FBT0MsSUFBSSxNQUFNLHFCQUFxQjtBQUV0QyxTQUFTQyxnQkFBZ0IsUUFBUSw4QkFBOEI7QUFDL0QsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLHdCQUF3QjtBQUNoRCxTQUFTQyxpQkFBaUIsUUFBUSxzQkFBc0I7QUFDeEQsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLFVBQVUsUUFBUSxrQkFBa0I7QUFDN0MsU0FBU0Msa0NBQWtDLFFBQVEsc0NBQXNDO0FBRXpGLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlDLE9BQWUsRUFBRUMsVUFBa0IsRUFBYTtFQUNoRixJQUFNQyxZQUFZLEdBQUcsSUFBSUMsTUFBTSxDQUFDUCxzQkFBc0IsRUFBRSxHQUFHLENBQUM7RUFDNUQsT0FBT0ksT0FBTyxDQUFDSSxPQUFPLENBQUNGLFlBQVksRUFBRSxVQUFBRyxHQUFHO0lBQUEs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
571
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlUHJvamVjdHMiLCJidWlsZENvbnRleHRNZXNzYWdlIiwibWFpYSIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiVEFTS19VUkxfUkVHRVhfUEFUVEVSTiIsIm1hcENPUkxhbmciLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwicmV3cml0ZVRhc2tVcmxzSW5Db250ZW50IiwiY29udGVudCIsInRhYlNlZ21lbnQiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwidXJsIiwidXNlQ2hhdE1lc3NhZ2VzIiwiX3JlZiIsIl91c2VyJHBlcm1pc3Npb25zIiwib25FcnJvciIsImNoYXRJZCIsImN1cnJlbnRVc2VyIiwidXNlckluaXRpYWxNZXNzYWdlIiwiX3JlZiRhZ2VudHMiLCJhZ2VudHMiLCJfdXNlVCIsInQiLCJpMThuIiwidXNlciIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwiX3VzZVN0YXRlMyIsIl9vYmplY3RTcHJlYWQiLCJpZCIsImRhdGUiLCJEYXRlIiwibWVzc2FnZSIsImZ1YUlkIiwic2NJZCIsImF0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJjb250ZXh0TWVzc2FnZSIsIl91c2VTdGF0ZTQiLCJtZXNzYWdlcyIsInNldE1lc3NhZ2VzIiwiX3VzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0QWdlbnQiLCJzZXRDaGlwc1Byb2plY3QiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50Iiwic2V0VGFzayIsInByb2plY3QiLCJfdXNlVGFiVGFza0RlZmF1bHQiLCJnZXRUYWJUYXNrRGVmYXVsdCIsInRhYlRhc2tEZWZhdWx0IiwicmVmZXRjaFRhYlRhc2tEZWZhdWx0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJzZXRJc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxhc3RFdmFsdWF0ZWRLZXkiLCJzZXRMYXN0RXZhbHVhdGVkS2V5IiwiaXNMb2FkaW5nUmVmIiwiaW5pdGlhbExvYWREb25lIiwicHJldmlvdXNDaGF0SWQiLCJzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhIiwiX3JlZjMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZWYyIiwicHJvamVjdElkTWVzc2FnZSIsInByb2plY3ROYW1lRnJvbVNlc3Npb24iLCJjbGllbnRJZEZyb21TZXNzaW9uIiwiY2xpZW50TmFtZUZyb21TZXNzaW9uIiwidGFza0lkRnJvbVNlc3Npb24iLCJ0YXNrTmFtZUZyb21TZXNzaW9uIiwicHJvamVjdHMiLCJoYXNNdWx0aUFnZW50c0FjY2VzcyIsInByb2plY3RJZE51bSIsImZvdW5kUHJvamVjdCIsIl9mb3VuZFByb2plY3QkY2xpZW50Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJuYW1lIiwiTnVtYmVyIiwiYWJydXB0Iiwic2VudCIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJmaW5kIiwicCIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsImNsaWVudCIsInByb2plY3RJZCIsIlN0cmluZyIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1lc3NhZ2VzIiwiX2NhbGxlZTIiLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiYWdlbnREZWxldGVkIiwiYWdlbnROb1Blcm1pc3Npb24iLCJoYXNBZ2VudEFjY2VzcyIsImhhc0FnZW50UGVybWlzc2lvbiIsImFnZW50VHlwZUZyb21TZXNzaW9uIiwiYWdlbnRFbnRpdHlGcm9tU2Vzc2lvbiIsInByb2plY3REZWxldGVkIiwiYWdlbnRJbkxpc3QiLCJjb250ZXh0UHJvamVjdElkIiwiaXRlbXNUb1NldCIsInRhYiIsIl90IiwiX2NvbnRleHQyIiwiY3VycmVudCIsIkNoYXRzIiwiZ2V0Q2hhdE1lc3NhZ2VzIiwib2Zmc2V0IiwiY2FuY2VsbGVkVGV4dCIsImxhbmciLCJsYW5ndWFnZSIsImFnZW50VHlwZSIsImFnZW50RW50aXR5IiwiY2xpZW50SWQiLCJ0YXNrSWQiLCJ0YXNrTmFtZSIsImNvbnNvbGUiLCJpbmZvIiwidXNlclBlcm1pc3Npb25zVmlldyIsInZpZXciLCJhZ2VudEluQWdlbnRzTGlzdCIsImEiLCJlbW9qaSIsInR5cGUiLCJpc19kZWxldGVkIiwiZGVsZXRlZF9hdCIsImRlbGV0ZWRBdCIsImNvbm5lY3RvcnMiLCJhZ2VudCIsImlzX2Zyb21fY29udmVyc2F0aW9uIiwicHJvamVjdF9kZWxldGVkIiwidW5kZWZpbmVkIiwiaGFzX25vdF9hY2Nlc3MiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJwYXJzZUludCIsImNvbmNhdCIsIm1hcCIsIml0ZW0iLCJmaW5pc2giLCJsb2FkTW9yZU1lc3NhZ2VzIiwiX3JlZjUiLCJfY2FsbGVlMyIsImNvbnRhaW5lciIsIm9sZFNjcm9sbEhlaWdodCIsIm9sZFNjcm9sbFRvcCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJpdGVtc1RvTWVyZ2UiLCJuZXdNZXNzYWdlcyIsIl90MiIsIl9jb250ZXh0MyIsInNjcm9sbEhlaWdodCIsInNjcm9sbFRvcCIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY29udGFpbmVyUmVmIiwibmV3U2Nyb2xsSGVpZ2h0IiwiaGVpZ2h0RGlmZmVyZW5jZSIsIl94MiIsImhhbmRsZVNjcm9sbCIsImNsaWVudEhlaWdodCIsInNjcm9sbFBlcmNlbnRhZ2UiLCJkaWRSZXdyaXRlUmVmIiwibGVuZ3RoIiwibmVlZHNSZXdyaXRlIiwic29tZSIsIm1zZyIsIm1hdGNoZXMiLCJtYXRjaCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJyZXdyaXR0ZW4iLCJhZGRNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlSW5kZXgiLCJmaW5kSW5kZXgiLCJyZW1vdmVNZXNzYWdlIiwibWVzc2FnZUlkIiwiZmlsdGVyIiwiaGFzTW9yZU1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUNoYXRNZXNzYWdlcy91c2VDaGF0TWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUHJvamVjdHMgfSBmcm9tICcuLi91c2VQcm9qZWN0cydcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IGJ1aWxkQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCBtYWlhIGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgeyBVc2VDaGF0TWVzc2FnZXNQcm9wcyB9IGZyb20gJy4vdXNlQ2hhdE1lc3NhZ2VzLmludGVyZmFjZSdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IHVzZVRhYlRhc2tEZWZhdWx0IH0gZnJvbSAnLi4vdXNlVGFiVGFza0RlZmF1bHQnXG5pbXBvcnQgeyBUQVNLX1VSTF9SRUdFWF9QQVRURVJOIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3Rhc2tVcmxzJ1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlJ1xuXG5jb25zdCByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0YWJTZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0YXNrVXJsUmVnZXggPSBuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4sICdnJylcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSh0YXNrVXJsUmVnZXgsIHVybCA9PlxuICAgIHVybC5yZXBsYWNlKC9cXC8oZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykoPz0kfFxcPykvLCB0YWJTZWdtZW50KVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0TWVzc2FnZXMgPSAoe1xuICBvbkVycm9yLFxuICBjaGF0SWQsXG4gIGN1cnJlbnRVc2VyLFxuICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gIGFnZW50cyA9IFtdLFxufTogVXNlQ2hhdE1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPihcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2VcbiAgICAgID8gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndXNlci1pbml0aWFsLW1lc3NhZ2UnLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgbWVzc2FnZTogZm9ybWF0UXVpY2tBY3Rpb25NZXNzYWdlRm9yRGlzcGxheSh1c2VySW5pdGlhbE1lc3NhZ2UubWVzc2FnZSwge1xuICAgICAgICAgICAgICBmdWFJZDogdXNlckluaXRpYWxNZXNzYWdlLmZ1YUlkLFxuICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyA/IHsgYXR0YWNobWVudHM6IHVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50cyB9IDoge30pLFxuICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICA/IHsgY29udGV4dE1lc3NhZ2U6IGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKSB9XG4gICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIDogW11cbiAgKVxuICBjb25zdCB7IGZldGNoUHJvamVjdHMgfSA9IHVzZVByb2plY3RzKClcbiAgY29uc3QgeyBzZWxlY3RBZ2VudCwgc2V0Q2hpcHNQcm9qZWN0LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2ssIHByb2plY3QgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IGdldFRhYlRhc2tEZWZhdWx0LCB0YWJUYXNrRGVmYXVsdCwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0IH0gPSB1c2VUYWJUYXNrRGVmYXVsdCgpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlTWVzc2FnZXMsIHNldElzTG9hZGluZ01vcmVNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2xhc3RFdmFsdWF0ZWRLZXksIHNldExhc3RFdmFsdWF0ZWRLZXldID0gdXNlU3RhdGU8bnVtYmVyIHwgdW5kZWZpbmVkPigwKVxuICBjb25zdCBpc0xvYWRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxMb2FkRG9uZSA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSB1c2VSZWYoY2hhdElkKVxuXG4gIGNvbnN0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgcHJvamVjdElkTWVzc2FnZSxcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgIH06IHtcbiAgICAgIHByb2plY3RJZE1lc3NhZ2U6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudElkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICAgdGFza0lkRnJvbVNlc3Npb246IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgICB9KSA9PiB7XG4gICAgICAvLyBUYXJlYSBkZSBsYSBjb252ZXJzYWNpw7NuOiBzZSBkZXJpdmEgZGUgbGEgbWV0YWRhdGEgZGUgbGEgc2Vzc2lvbiBwYXJhIG1vc3RyYXIgZWwgY2hpcFxuICAgICAgLy8gZGUgbGEgdGFyZWEgKHkgcmVlbnZpYXIgbGEgbWV0YWRhdGEgZW4gY2FkYSBtZW5zYWplKSBzaW4gaW1wb3J0YXIgZGVzZGUgZMOzbmRlIHNlIGFicmEuXG4gICAgICBpZiAodGFza0lkRnJvbVNlc3Npb24gIT0gbnVsbCAmJiB0YXNrTmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldFRhc2soeyBpZDogdGFza0lkRnJvbVNlc3Npb24sIG5hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIH1cblxuICAgICAgLy8gQ29udmVyc2FjacOzbiBjb24gY2xpZW50X21ldGFkYXRhOiBzZXRlYXIgY2xpZW50ZSB5IGxpbXBpYXIgcHJveWVjdG9cbiAgICAgIGlmIChjbGllbnRJZEZyb21TZXNzaW9uICE9IG51bGwgJiYgY2xpZW50TmFtZUZyb21TZXNzaW9uKSB7XG4gICAgICAgIHNldENsaWVudCh7IGlkOiBOdW1iZXIoY2xpZW50SWRGcm9tU2Vzc2lvbiksIG5hbWU6IGNsaWVudE5hbWVGcm9tU2Vzc2lvbiB9KVxuICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdHMgPSBhd2FpdCBmZXRjaFByb2plY3RzKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICBjb25zdCBoYXNNdWx0aUFnZW50c0FjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcblxuICAgICAgaWYgKHByb2plY3RJZE1lc3NhZ2UgJiYgaGFzTXVsdGlBZ2VudHNBY2Nlc3MpIHtcbiAgICAgICAgY29uc3QgcHJvamVjdElkTnVtID0gTnVtYmVyKHByb2plY3RJZE1lc3NhZ2UpXG4gICAgICAgIGNvbnN0IGZvdW5kUHJvamVjdCA9IHByb2plY3RzPy5maW5kKHAgPT4gTnVtYmVyKHAuaWQpID09PSBwcm9qZWN0SWROdW0pXG5cbiAgICAgICAgaWYgKGZvdW5kUHJvamVjdCkge1xuICAgICAgICAgIHNldENoaXBzUHJvamVjdCh7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogZm91bmRQcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgICBjbGllbnROYW1lOiBmb3VuZFByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgcHJvamVjdElkOiBTdHJpbmcoZm91bmRQcm9qZWN0LmlkKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHNldFByb2plY3QoZm91bmRQcm9qZWN0KVxuICAgICAgICB9IGVsc2UgaWYgKHByb2plY3ROYW1lRnJvbVNlc3Npb24pIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3Qoe1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgICBjbGllbnROYW1lOiAnJyxcbiAgICAgICAgICAgIHByb2plY3RJZDogU3RyaW5nKHByb2plY3RJZE1lc3NhZ2UpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc2V0UHJvamVjdCh7IGlkOiBwcm9qZWN0SWROdW0sIG5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24gfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRDaGlwc1Byb2plY3QobnVsbClcbiAgICAgICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0Q2hpcHNQcm9qZWN0KG51bGwpXG4gICAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtmZXRjaFByb2plY3RzLCBzZXRDbGllbnQsIHNldENoaXBzUHJvamVjdCwgc2V0UHJvamVjdCwgc2V0VGFza11cbiAgKVxuXG4gIGNvbnN0IGxvYWRNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKHRydWUpXG4gICAgICBpbml0aWFsTG9hZERvbmUuY3VycmVudCA9IGZhbHNlXG4gICAgICBjb25zdCB7XG4gICAgICAgIGl0ZW1zLFxuICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgYWdlbnREZWxldGVkLFxuICAgICAgICBhZ2VudE5vUGVybWlzc2lvbixcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MsXG4gICAgICAgIGhhc0FnZW50UGVybWlzc2lvbixcbiAgICAgICAgYWdlbnRUeXBlOiBhZ2VudFR5cGVGcm9tU2Vzc2lvbixcbiAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3RJZDogcHJvamVjdElkTWVzc2FnZSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIHByb2plY3REZWxldGVkLFxuICAgICAgICBjbGllbnRJZDogY2xpZW50SWRGcm9tU2Vzc2lvbixcbiAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJZEZyb21TZXNzaW9uLFxuICAgICAgICB0YXNrTmFtZTogdGFza05hbWVGcm9tU2Vzc2lvbixcbiAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgIGNoYXRJZCxcbiAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgY2FuY2VsbGVkVGV4dDogdCgnY2hhdC5jYW5jZWxsZWQnKSxcbiAgICAgICAgbGFuZzogbWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKSxcbiAgICAgIH0pXG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIGxvYWRNZXNzYWdlcyByZXN1bHQ6Jywge1xuICAgICAgICBjaGF0SWQsXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uLFxuICAgICAgICBhZ2VudERlbGV0ZWQ6ICEhYWdlbnREZWxldGVkLFxuICAgICAgICBoYXNBZ2VudEFjY2VzcyxcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uLFxuICAgICAgICB1c2VyUGVybWlzc2lvbnNWaWV3OiB1c2VyUGVybWlzc2lvbnM/LnZpZXcsXG4gICAgICAgIGFnZW50SW5BZ2VudHNMaXN0OiBhZ2VudE5vUGVybWlzc2lvbiA/ICEhYWdlbnRzLmZpbmQoYSA9PiBhLmlkID09PSBhZ2VudE5vUGVybWlzc2lvbi5pZCkgOiBudWxsLFxuICAgICAgfSlcblxuICAgICAgaWYgKGFnZW50RGVsZXRlZCkge1xuICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgaWQ6IGFnZW50RGVsZXRlZC5pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudERlbGV0ZWQubmFtZSxcbiAgICAgICAgICBlbW9qaTogYWdlbnREZWxldGVkLmVtb2ppLFxuICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgIGlzX2RlbGV0ZWQ6IHRydWUsXG4gICAgICAgICAgZGVsZXRlZF9hdDogYWdlbnREZWxldGVkLmRlbGV0ZWRBdCxcbiAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24/LmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gU2kgZWwgYWdlbnRlIG5vIGVzdMOhIGVuIGxhIGxpc3RhIHBlcm8gdGllbmUgcGVybWlzb3MsIGFjY2VzbyB5IG5vIGVzdMOhIGVsaW1pbmFkbywgc2V0ZWFybG8gbm9ybWFsbWVudGVcbiAgICAgIC8vIEV4Y2x1aXIgYWdlbnRlcyBuby1jdXN0b20gcGFyYSB1c3VhcmlvcyBjb24gcm9sZXMgZGVzaGFiaWxpdGFkb3NcbiAgICAgIGlmIChcbiAgICAgICAgYWdlbnROb1Blcm1pc3Npb24gJiZcbiAgICAgICAgIWFnZW50RGVsZXRlZCAmJlxuICAgICAgICB1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudHMuZmluZChhZ2VudCA9PiBhZ2VudC5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICApIHtcbiAgICAgICAgc2VsZWN0QWdlbnQoe1xuICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgIGVtb2ppOiBhZ2VudE5vUGVybWlzc2lvbi5lbW9qaSxcbiAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICBpc19mcm9tX2NvbnZlcnNhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAuLi4oYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyA/IHsgY29ubmVjdG9yczogYWdlbnROb1Blcm1pc3Npb24uY29ubmVjdG9ycyB9IDoge30pLFxuICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgZXN0w6EgZW4gbGEgbGlzdGEgeSB0aWVuZSBhY2Nlc28vcGVybWlzb3MsIGFjdHVhbGl6YXIgcHJvamVjdF9kZWxldGVkIChvIGxpbXBpYXJsbyBhbCBjYW1iaWFyIGRlIGNoYXQpXG4gICAgICBpZiAoXG4gICAgICAgIGFnZW50Tm9QZXJtaXNzaW9uICYmXG4gICAgICAgICFhZ2VudERlbGV0ZWQgJiZcbiAgICAgICAgaGFzQWdlbnRBY2Nlc3MgJiZcbiAgICAgICAgaGFzQWdlbnRQZXJtaXNzaW9uICYmXG4gICAgICAgIGFnZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gYWdlbnROb1Blcm1pc3Npb24uaWQpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgYWdlbnRJbkxpc3QgPSBhZ2VudHMuZmluZChhID0+IGEuaWQgPT09IGFnZW50Tm9QZXJtaXNzaW9uLmlkKVxuICAgICAgICBpZiAoYWdlbnRJbkxpc3QpIHtcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICAuLi5hZ2VudEluTGlzdCxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4ocHJvamVjdERlbGV0ZWQgPyB7IHByb2plY3RfZGVsZXRlZDogeyBuYW1lOiBwcm9qZWN0RGVsZXRlZC5uYW1lIH0gfSA6IHsgcHJvamVjdF9kZWxldGVkOiB1bmRlZmluZWQgfSksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTaSBlbCBhZ2VudGUgbm8gdGllbmUgYWNjZXNvIG8gcGVybWlzb3Mgc2Vnw7puIGxhIHJlc3B1ZXN0YSBkZSBzZXNzaW9ucywgc2VsZWNjaW9uYXJsbyBjb24gZWwgZmxhZyBjb3JyZXNwb25kaWVudGVcbiAgICAgIC8vIExhIHZhbGlkYWNpw7NuIGFob3JhIHNlIGJhc2EgZW4gbGFzIHByb3BpZWRhZGVzIGhhc19hZ2VudF9hY2Nlc3MgeSBoYXNfYWdlbnRfcGVybWlzc2lvbiBkZSBsYSByZXNwdWVzdGFcbiAgICAgIGlmIChhZ2VudE5vUGVybWlzc2lvbiAmJiAhYWdlbnREZWxldGVkKSB7XG4gICAgICAgIGlmICghaGFzQWdlbnRBY2Nlc3MpIHtcbiAgICAgICAgICAvLyBDYXNvIDE6IE5vIHRpZW5lIGFjY2VzbyBhbCBhZ2VudGVcbiAgICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIEJSQU5DSDogaGFzX25vdF9hY2Nlc3Mg4oCUIGhhc0FnZW50QWNjZXNzOicsIGhhc0FnZW50QWNjZXNzKVxuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgIGhhc19ub3RfYWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc0FnZW50UGVybWlzc2lvbikge1xuICAgICAgICAgIC8vIENhc28gMjogTm8gdGllbmUgcGVybWlzb3MgcGFyYSB2aXN1YWxpemFyL2ludGVyYWN0dWFyIGNvbiBlbCBhZ2VudGVcbiAgICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VDaGF0TWVzc2FnZXNdIEJSQU5DSDogaGFzX25vdF9wZXJtaXNzaW9ucyDigJQgaGFzQWdlbnRQZXJtaXNzaW9uOicsIGhhc0FnZW50UGVybWlzc2lvbilcbiAgICAgICAgICBzZWxlY3RBZ2VudCh7XG4gICAgICAgICAgICBpZDogYWdlbnROb1Blcm1pc3Npb24uaWQsXG4gICAgICAgICAgICBuYW1lOiBhZ2VudE5vUGVybWlzc2lvbi5uYW1lLFxuICAgICAgICAgICAgZW1vamk6IGFnZW50Tm9QZXJtaXNzaW9uLmVtb2ppLFxuICAgICAgICAgICAgdHlwZTogYWdlbnROb1Blcm1pc3Npb24udHlwZSBhcyAncG0nIHwgJ2N1c3RvbScgfCAnY2xvbmUnIHwgJ29yY2hlc3RyYXRvcicsXG4gICAgICAgICAgICBoYXNfbm90X3Blcm1pc3Npb25zOiB0cnVlLFxuICAgICAgICAgICAgLi4uKGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgPyB7IGNvbm5lY3RvcnM6IGFnZW50Tm9QZXJtaXNzaW9uLmNvbm5lY3RvcnMgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihwcm9qZWN0RGVsZXRlZCA/IHsgcHJvamVjdF9kZWxldGVkOiB7IG5hbWU6IHByb2plY3REZWxldGVkLm5hbWUgfSB9IDoge30pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAocHJvamVjdERlbGV0ZWQpIHtcbiAgICAgICAgICAvLyBDYXNvIDM6IEVsIHByb3llY3RvIGRlIGxhIGNvbnZlcnNhY2nDs24gZnVlIGVsaW1pbmFkb1xuICAgICAgICAgIHNlbGVjdEFnZW50KHtcbiAgICAgICAgICAgIGlkOiBhZ2VudE5vUGVybWlzc2lvbi5pZCxcbiAgICAgICAgICAgIG5hbWU6IGFnZW50Tm9QZXJtaXNzaW9uLm5hbWUsXG4gICAgICAgICAgICBlbW9qaTogYWdlbnROb1Blcm1pc3Npb24uZW1vamksXG4gICAgICAgICAgICB0eXBlOiBhZ2VudE5vUGVybWlzc2lvbi50eXBlIGFzICdwbScgfCAnY3VzdG9tJyB8ICdjbG9uZScgfCAnb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgICAgIC4uLihhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzID8geyBjb25uZWN0b3JzOiBhZ2VudE5vUGVybWlzc2lvbi5jb25uZWN0b3JzIH0gOiB7fSksXG4gICAgICAgICAgICBwcm9qZWN0X2RlbGV0ZWQ6IHsgbmFtZTogcHJvamVjdERlbGV0ZWQubmFtZSB9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YSh7XG4gICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgIHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgIHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICB9KVxuXG4gICAgICAvLyBNZXRhZGF0YSBkZSBsYSBzZXNzaW9uIChhZ2VudF90eXBlIC8gYWdlbnRfZW50aXR5ICsgY29udGV4dG8pIHBhcmEgZWwgY2FydGVsIGRlXG4gICAgICAvLyBcImNvbnRpbnVhciBlbiB1biBjaGF0IG51ZXZvXCIgZGVsIGZvb3RlciBjdWFuZG8gc2UgYWJyZSB1bmEgY29udmVyc2FjacOzbiBkZSB1biBjbG9uZSBsZWdhY3kuXG4gICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ21haWEtY2hhdC1zZXNzaW9uLW1ldGEnLCB7XG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBjaGF0SWQsXG4gICAgICAgICAgICBhZ2VudFR5cGU6IGFnZW50VHlwZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgYWdlbnRFbnRpdHk6IGFnZW50RW50aXR5RnJvbVNlc3Npb24sXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgIGNsaWVudElkOiBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgICAgdGFza0lkOiB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICAgIHRhc2tOYW1lOiB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApXG5cbiAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGNvbiBlbCB0YWIgZGVsIHVzdWFyaW8gKG1lKVxuICAgICAgY29uc3QgY29udGV4dFByb2plY3RJZCA9IHByb2plY3RJZE1lc3NhZ2UgPyBwYXJzZUludChTdHJpbmcocHJvamVjdElkTWVzc2FnZSksIDEwKSA6IG51bGxcbiAgICAgIGxldCBpdGVtc1RvU2V0ID0gaXRlbXNcbiAgICAgIGlmIChjb250ZXh0UHJvamVjdElkKSB7XG4gICAgICAgIGNvbnN0IHRhYiA9IGF3YWl0IGdldFRhYlRhc2tEZWZhdWx0KDEpXG4gICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgaXRlbXNUb1NldCA9IGl0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICBtZXNzYWdlOiByZXdyaXRlVGFza1VybHNJbkNvbnRlbnQoaXRlbS5tZXNzYWdlIHx8ICcnLCB0YWJTZWdtZW50KSxcbiAgICAgICAgfSkpXG4gICAgICB9XG4gICAgICBzZXRNZXNzYWdlcyhpdGVtc1RvU2V0KVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShOdW1iZXIobmV4dEl0ZW0pKVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3I/LigpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhmYWxzZSlcbiAgICB9XG4gIH0sIFtjaGF0SWQsIGN1cnJlbnRVc2VyLCBzZXRDb252ZXJzYXRpb25Db250ZXh0RnJvbU1ldGFkYXRhLCBvbkVycm9yLCBnZXRUYWJUYXNrRGVmYXVsdF0pXG5cbiAgY29uc3QgbG9hZE1vcmVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1JlZi5jdXJyZW50IHx8ICFsYXN0RXZhbHVhdGVkS2V5IHx8ICFjb250YWluZXIpIHJldHVyblxuICAgICAgdHJ5IHtcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyh0cnVlKVxuXG4gICAgICAgIGNvbnN0IG9sZFNjcm9sbEhlaWdodCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHRcbiAgICAgICAgY29uc3Qgb2xkU2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICBuZXh0SXRlbSxcbiAgICAgICAgICBwcm9qZWN0SWQ6IHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IHByb2plY3ROYW1lRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkRnJvbVNlc3Npb24sXG4gICAgICAgICAgY2xpZW50TmFtZTogY2xpZW50TmFtZUZyb21TZXNzaW9uLFxuICAgICAgICAgIHRhc2tJZDogdGFza0lkRnJvbVNlc3Npb24sXG4gICAgICAgICAgdGFza05hbWU6IHRhc2tOYW1lRnJvbVNlc3Npb24sXG4gICAgICAgIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRNZXNzYWdlcyh7XG4gICAgICAgICAgY2hhdElkLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIG9mZnNldDogbGFzdEV2YWx1YXRlZEtleSxcbiAgICAgICAgICBsYW5nOiBtYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpLFxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IHNldENvbnZlcnNhdGlvbkNvbnRleHRGcm9tTWV0YWRhdGEoe1xuICAgICAgICAgIHByb2plY3RJZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvamVjdE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICBjbGllbnRJZEZyb21TZXNzaW9uLFxuICAgICAgICAgIGNsaWVudE5hbWVGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrSWRGcm9tU2Vzc2lvbixcbiAgICAgICAgICB0YXNrTmFtZUZyb21TZXNzaW9uLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNpIGhheSBwcm95ZWN0byBlbiBsYSBjb252ZXJzYWNpw7NuLCByZWVzY3JpYmlyIFVSTHMgZGUgdGFyZWFzIGVuIGxvcyBtZW5zYWplcyBjYXJnYWRvc1xuICAgICAgICBjb25zdCBjb250ZXh0UHJvamVjdElkID0gcHJvamVjdElkTWVzc2FnZSA/IHBhcnNlSW50KFN0cmluZyhwcm9qZWN0SWRNZXNzYWdlKSwgMTApIDogbnVsbFxuICAgICAgICBsZXQgaXRlbXNUb01lcmdlID0gaXRlbXNcbiAgICAgICAgaWYgKGNvbnRleHRQcm9qZWN0SWQpIHtcbiAgICAgICAgICBjb25zdCB0YWIgPSBhd2FpdCBnZXRUYWJUYXNrRGVmYXVsdCgxKVxuICAgICAgICAgIGNvbnN0IHRhYlNlZ21lbnQgPSB0YWIgPyBgLyR7dGFifWAgOiAnL2RldGFpbCdcbiAgICAgICAgICBpdGVtc1RvTWVyZ2UgPSBpdGVtcy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChpdGVtLm1lc3NhZ2UgfHwgJycsIHRhYlNlZ21lbnQpLFxuICAgICAgICAgIH0pKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gWy4uLm1lc3NhZ2VzLnNsaWNlKDAsIDEpLCAuLi5pdGVtc1RvTWVyZ2UsIC4uLm1lc3NhZ2VzLnNsaWNlKDEpXVxuICAgICAgICBzZXRNZXNzYWdlcyhuZXdNZXNzYWdlcylcbiAgICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleShOdW1iZXIobmV4dEl0ZW0pKVxuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IGNvbnRhaW5lclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxIZWlnaHQgPSBjb250YWluZXJSZWYuc2Nyb2xsSGVpZ2h0XG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodERpZmZlcmVuY2UgPSBuZXdTY3JvbGxIZWlnaHQgLSBvbGRTY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgY29udGFpbmVyUmVmLnNjcm9sbFRvcCA9IG9sZFNjcm9sbFRvcCArIGhlaWdodERpZmZlcmVuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgb25FcnJvcj8uKClcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzTG9hZGluZ01vcmVNZXNzYWdlcyhmYWxzZSlcbiAgICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAgW2NoYXRJZCwgY3VycmVudFVzZXIsIGxhc3RFdmFsdWF0ZWRLZXksIG9uRXJyb3IsIG1lc3NhZ2VzLCBnZXRUYWJUYXNrRGVmYXVsdCwgc2V0Q29udmVyc2F0aW9uQ29udGV4dEZyb21NZXRhZGF0YV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVNjcm9sbCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKCFjb250YWluZXIgfHwgaXNMb2FkaW5nUmVmLmN1cnJlbnQgfHwgIWluaXRpYWxMb2FkRG9uZS5jdXJyZW50KSByZXR1cm5cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICAgIGNvbnN0IHNjcm9sbFBlcmNlbnRhZ2UgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgPiAwID8gKHNjcm9sbFRvcCAvIChzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQpKSAqIDEwMCA6IDBcblxuICAgICAgaWYgKHNjcm9sbFBlcmNlbnRhZ2UgPCAxMCkge1xuICAgICAgICBsb2FkTW9yZU1lc3NhZ2VzKGNvbnRhaW5lcilcbiAgICAgIH1cbiAgICB9LFxuICAgIFtsb2FkTW9yZU1lc3NhZ2VzXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2hhdElkICE9PSBwcmV2aW91c0NoYXRJZC5jdXJyZW50KSB7XG4gICAgICBzZXRNZXNzYWdlcyhcbiAgICAgICAgdXNlckluaXRpYWxNZXNzYWdlXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3VzZXItaW5pdGlhbC1tZXNzYWdlJyxcbiAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZUZvckRpc3BsYXkodXNlckluaXRpYWxNZXNzYWdlLm1lc3NhZ2UsIHtcbiAgICAgICAgICAgICAgICAgIGZ1YUlkOiB1c2VySW5pdGlhbE1lc3NhZ2UuZnVhSWQsXG4gICAgICAgICAgICAgICAgICBzY0lkOiB1c2VySW5pdGlhbE1lc3NhZ2Uuc2NJZCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAuLi4odXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzID8geyBhdHRhY2htZW50czogdXNlckluaXRpYWxNZXNzYWdlLmF0dGFjaG1lbnRzIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKGJ1aWxkQ29udGV4dE1lc3NhZ2UodXNlckluaXRpYWxNZXNzYWdlLm1lbnRpb25zKVxuICAgICAgICAgICAgICAgICAgPyB7IGNvbnRleHRNZXNzYWdlOiBidWlsZENvbnRleHRNZXNzYWdlKHVzZXJJbml0aWFsTWVzc2FnZS5tZW50aW9ucykgfVxuICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXVxuICAgICAgKVxuICAgICAgc2V0TGFzdEV2YWx1YXRlZEtleSgwKVxuICAgICAgaXNMb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaW5pdGlhbExvYWREb25lLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgcHJldmlvdXNDaGF0SWQuY3VycmVudCA9IGNoYXRJZFxuXG4gICAgICAvLyBMaW1waWFyIGVsIGVzdGFkbyBkZWwgcHJveWVjdG8geSBsYSB0YXJlYSBjdWFuZG8gY2FtYmlhIGRlIGNvbnZlcnNhY2nDs25cbiAgICAgIHNldENoaXBzUHJvamVjdChudWxsKVxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuXG4gICAgICAvLyBWb2x2ZXIgYSBlamVjdXRhciBsYSBxdWVyeSBtZSBwYXJhIHRlbmVyIHRhYlRhc2tEZWZhdWx0IGFjdHVhbGl6YWRvIGVuIGxhIG51ZXZhIGNvbnZlcnNhY2nDs25cbiAgICAgIHJlZmV0Y2hUYWJUYXNrRGVmYXVsdCgpXG5cbiAgICAgIGlmICghdXNlckluaXRpYWxNZXNzYWdlKSB7XG4gICAgICAgIGxvYWRNZXNzYWdlcygpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXG4gICAgY2hhdElkLFxuICAgIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgICBjdXJyZW50VXNlcixcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgc2V0Q2hpcHNQcm9qZWN0LFxuICAgIHNldFByb2plY3QsXG4gICAgc2V0VGFzayxcbiAgICByZWZldGNoVGFiVGFza0RlZmF1bHQsXG4gIF0pXG5cbiAgLy8gQ3VhbmRvIHRhYlRhc2tEZWZhdWx0IHBhc2EgYSBlc3RhciBkaXNwb25pYmxlIGRlc3B1w6lzIGRlIGNhcmdhciwgcmVlc2NyaWJpciBVUkxzIGRlIHRhcmVhcyBlbiBsb3MgbWVuc2FqZXMgeWEgY2FyZ2Fkb3MuXG4gIC8vIFJlZiBwYXJhIGV2aXRhciBidWNsZTogc2V0TWVzc2FnZXMocmV3cml0dGVuKSBjYW1iaWEgbWVzc2FnZXMgeSByZS1lamVjdXRhIGVsIGVmZWN0bzsgc29sbyByZWVzY3JpYmltb3MgdW5hIHZleiBwb3IgbG90ZS5cbiAgY29uc3QgZGlkUmV3cml0ZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRhYlRhc2tEZWZhdWx0IHx8ICFwcm9qZWN0Py5pZCB8fCBtZXNzYWdlcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhYlNlZ21lbnQgPSBgLyR7dGFiVGFza0RlZmF1bHR9YFxuICAgIGNvbnN0IG5lZWRzUmV3cml0ZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZSB8fCAnJ1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2godGFza1VybFJlZ2V4KVxuICAgICAgaWYgKCFtYXRjaGVzPy5sZW5ndGgpIHJldHVybiBmYWxzZVxuICAgICAgcmV0dXJuIG1hdGNoZXMuc29tZSh1cmwgPT4gIXVybC5lbmRzV2l0aChgLyR7dGFiVGFza0RlZmF1bHR9YCkgJiYgIXVybC5pbmNsdWRlcyhgLyR7dGFiVGFza0RlZmF1bHR9P2ApKVxuICAgIH0pXG4gICAgaWYgKCFuZWVkc1Jld3JpdGUpIHtcbiAgICAgIGRpZFJld3JpdGVSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGRpZFJld3JpdGVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgZGlkUmV3cml0ZVJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGNvbnN0IHJld3JpdHRlbiA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgIC4uLm1zZyxcbiAgICAgIG1lc3NhZ2U6IHJld3JpdGVUYXNrVXJsc0luQ29udGVudChtc2cubWVzc2FnZSB8fCAnJywgdGFiU2VnbWVudCksXG4gICAgfSkpXG4gICAgc2V0TWVzc2FnZXMocmV3cml0dGVuKVxuICB9LCBbdGFiVGFza0RlZmF1bHQsIHByb2plY3Q/LmlkLCBtZXNzYWdlc10pXG5cbiAgY29uc3QgYWRkTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlSW5kZXggPSBwcmV2LmZpbmRJbmRleChtc2cgPT4gbXNnLmlkID09PSBtZXNzYWdlLmlkKVxuXG4gICAgICBpZiAoZXhpc3RpbmdNZXNzYWdlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFsuLi5wcmV2XVxuICAgICAgICBuZXdNZXNzYWdlc1tleGlzdGluZ01lc3NhZ2VJbmRleF0gPSBtZXNzYWdlXG4gICAgICAgIHJldHVybiBuZXdNZXNzYWdlc1xuICAgICAgfVxuICAgICAgcmV0dXJuIFsuLi5wcmV2LCBtZXNzYWdlXVxuICAgIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHJlbW92ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHByZXYuZmlsdGVyKG1zZyA9PiBtc2cuaWQgIT09IG1lc3NhZ2VJZCkpXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIG1lc3NhZ2VzLFxuICAgIGhhc01vcmVNZXNzYWdlczogISFsYXN0RXZhbHVhdGVkS2V5LFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICBsb2FkTWVzc2FnZXMsXG4gICAgbG9hZE1vcmVNZXNzYWdlcyxcbiAgICBhZGRNZXNzYWdlLFxuICAgIHJlbW92ZU1lc3NhZ2UsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2hFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFFNUMsU0FBU0MsbUJBQW1CLFFBQVEsNEJBQTRCO0FBQ2hFLE9BQU9DLElBQUksTUFBTSxxQkFBcUI7QUFFdEMsU0FBU0MsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQy9ELFNBQVNDLElBQUksUUFBUSxTQUFTO0FBQzlCLFNBQVNDLE9BQU8sUUFBUSx3QkFBd0I7QUFDaEQsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLHNCQUFzQixRQUFRLDBCQUEwQjtBQUNqRSxTQUFTQyxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLGtDQUFrQyxRQUFRLHNDQUFzQztBQUV6RixJQUFNQyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJQyxPQUFlLEVBQUVDLFVBQWtCLEVBQWE7RUFDaEYsSUFBTUMsWUFBWSxHQUFH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