@projectcor/maia-components 2.11.9-9 → 2.11.10-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +5 -2
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +15 -12
  3. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +18 -5
  4. package/lib/components/atoms/MAIAInput/MAIAInput.js +35 -12
  5. package/lib/components/atoms/MAIAInput/styles.js +38 -39
  6. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +1 -1
  7. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +21 -6
  8. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +2 -2
  9. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +23 -9
  10. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +3 -2
  11. package/lib/components/molecules/ChatAIHome/styles.js +6 -6
  12. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +155 -238
  13. package/lib/components/molecules/ChatAIMessages/newStyles.js +118 -29
  14. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -2
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +4 -4
  17. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +3 -2
  18. package/lib/components/molecules/Sidebar/Sidebar.js +7 -4
  19. package/lib/components/organisms/ChatAI/ChatAI.js +3 -1
  20. package/lib/hooks/useStreamdownStyles.js +20 -0
  21. package/lib/index.css +297 -15
  22. package/lib/streamdownStyles.js +6 -0
  23. package/package.json +22 -17
@@ -375,7 +375,7 @@ export var Sidebar = function Sidebar(_ref3) {
375
375
  var showNewChatButton = !showNewChat && !hasError && !loadingChats && ((userPermissions === null || userPermissions === void 0 ? void 0 : userPermissions.view) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.is_deleted) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.has_not_permissions) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.has_not_access) || !(userPermissions !== null && userPermissions !== void 0 && userPermissions.view) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.is_deleted) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.has_not_permissions) && !(selectedAgent !== null && selectedAgent !== void 0 && selectedAgent.has_not_access));
376
376
  return /*#__PURE__*/_jsxs("div", {
377
377
  style: _objectSpread({
378
- backgroundColor: 'rgba(249, 249, 249, 1)',
378
+ backgroundColor: '#f9f9f9',
379
379
  display: 'flex',
380
380
  flexDirection: 'column',
381
381
  padding: '12px 10px',
@@ -385,7 +385,9 @@ export var Sidebar = function Sidebar(_ref3) {
385
385
  borderRadius: 'inherit',
386
386
  borderTopRightRadius: '0',
387
387
  borderBottomRightRadius: '0',
388
- gap: '12px'
388
+ gap: '12px',
389
+ overflow: 'hidden',
390
+ overscrollBehavior: 'contain'
389
391
  }, !isOpen && {
390
392
  alignItems: 'center',
391
393
  justifyContent: 'space-between'
@@ -460,7 +462,8 @@ export var Sidebar = function Sidebar(_ref3) {
460
462
  gap: '4px',
461
463
  flexGrow: 1,
462
464
  width: '100%',
463
- overflowY: 'auto'
465
+ overflowY: 'auto',
466
+ overscrollBehaviorY: 'contain'
464
467
  }, chats.length && {
465
468
  maxHeight: "calc(100vh - ".concat(hasError ? 197 : 160, "px)")
466
469
  }), !chats.length && {
@@ -611,4 +614,4 @@ export var Sidebar = function Sidebar(_ref3) {
611
614
  })]
612
615
  });
613
616
  };
614
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25Eb3VibGVMZWZ0IiwiQ1VCdXR0b24iLCJNZW51RG90cyIsIlBlbmNpbCIsIlRyYXNoIiwiVG9vbHRpcCIsIkVtcHR5SGlzdG9yeUljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsInVzZUNoYXRzIiwiTG9hZGVyIiwiRXJyb3JTdGF0ZSIsIk1BSUFJY29uIiwiTmV3Q2hhdCIsIkVWRU5UUyIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiRXJyb3JJY29uIiwidXNlVXNlciIsIk9uYm9hcmRpbmdNb2RhbEJ1dHRvbiIsIkZlZWRiYWNrQnV0dG9uIiwidXNlR2xvYmFsQ29udGV4dCIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50IiwiU0NMSENXcmFwcGVyQWdlbnRUZXh0IiwiU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyIsIlNDTEhDV3JhcHBlckNvbnRlbnQiLCJTQ0xIQ1dyYXBwZXJUaXRsZSIsIlNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24iLCJTQ1NXcmFwcGVyTmV3Q2hhdEljb24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsInRleHRSZWYiLCJhZ2VudFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwiYWdlbnQiLCJzaG93VG9vbHRpcEFnZW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aW9uIiwic2V0QWN0aW9uIiwibWVudUl0ZW1zIiwibGFiZWwiLCJvbkNsaWNrSXRlbSIsImNoYXRJZCIsIkljb24iLCJldmVudEtleSIsInBtQWlNZW51RWRpdCIsInBtQWlNZW51RGVsZXRlIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImNoYXREYXRhIiwiaGFuZGxlVXBkYXRlQ2hhdCIsImhhbmRsZURlbGV0ZUNoYXQiLCJjaGlsZHJlbiIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWYiLCJwcm9qZWN0TmFtZSIsImNvbmNhdCIsImFnZW50VHlwZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiekluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJvbkNsb3NlIiwiaGFuZGxlU2V0SXNPcGVuTW9kYWwiLCJTaWRlYmFyIiwiX3JlZjMiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uR29Ub0NoYXQiLCJfcmVmMyRvbkVycm9yIiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwic2hvd05ld0NoYXQiLCJyZWZldGNoQ2hhdHMiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNFcnJvciIsInJlc2V0U2VsZWN0ZWRDaGF0UmVmIiwiX3VzZVQyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzT3Blbk1vZGFsIiwic2V0SXNPcGVuTW9kYWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImNoYXRzRmV0Y2hlZFJlZiIsImNoYXRzQ29udGFpbmVyUmVmIiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsIl91c2VDaGF0cyIsImxvYWRpbmdDaGF0cyIsImNoYXRzIiwiZGVsZXRlQ2hhdCIsInVwZGF0ZUNoYXQiLCJmZXRjaENoYXRzIiwibGltaXQiLCJvZmZzZXQiLCJoYXNNb3JlQ2hhdHMiLCJsb2FkTW9yZUNoYXRzIiwiaXNMb2FkaW5nTW9yZUNoYXRzIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjdXJyZW50IiwiX3JlZjQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVPcGVuTW9kYWwiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiY2xvc2VzdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGVTaWRlYmFyIiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNBdEJvdHRvbSIsImNvbnRhaW5lciIsImhhbmRsZU5ld0NoYXQiLCJfcmVmNSIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsInZpZXciLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwicGFkZGluZyIsIm1heFdpZHRoIiwidHJhbnNpdGlvbiIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJnYXAiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJjb2xvciIsImZsZXhHcm93IiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nTGVmdCIsIm92ZXJmbG93WSIsImxlbmd0aCIsIm1heEhlaWdodCIsInRleHRBbGlnbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyBNdXRhYmxlUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3VibGVMZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvdWJsZUxlZnQnXG5pbXBvcnQgeyBDVUJ1dHRvbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2J1dHRvbi9saWIvY29tcG9uZW50cy9DVUJ1dHRvbidcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBQZW5jaWwgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QZW5jaWwnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7IEVtcHR5SGlzdG9yeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eUhpc3RvcnknXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTmV3Q2hhdCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgRVZFTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBPbmJvYXJkaW5nTW9kYWxCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9PbmJvYXJkaW5nTW9kYWxCdXR0b24nXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQge1xuICBTQ0xIQ1dyYXBwZXIsXG4gIFNDTEhDV3JhcHBlckFnZW50LFxuICBTQ0xIQ1dyYXBwZXJBZ2VudFRleHQsXG4gIFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMsXG4gIFNDTEhDV3JhcHBlckNvbnRlbnQsXG4gIFNDTEhDV3JhcHBlclRpdGxlLFxuICBTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uLFxuICBTQ1NXcmFwcGVyTmV3Q2hhdEljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5cbmNvbnN0IGFjdGlvbnMgPSB7XG4gIGVkaXQ6IChwcm9wczogYW55KSA9PiA8RWRpdFF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbiAgZGVsZXRlOiAocHJvcHM6IGFueSkgPT4gPERlbGV0ZVF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbn1cblxuLyoqIEFicmV2aWEgXCJlc3BlY2lhbGlzdGFcIi9cImVzcGVjaWFsaXN0XCIg4oaSIFwiRXNwLlwiIChFUy9QVCkgeSBcInNwZWNpYWxpc3RcIiDihpIgXCJTcGVjLlwiIChFTikgZW4gZWwgbm9tYnJlIGRlbCBhZ2VudGUuICovXG5mdW5jdGlvbiBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGFnZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFhZ2VudE5hbWUgfHwgdHlwZW9mIGFnZW50TmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBhZ2VudE5hbWVcbiAgcmV0dXJuIGFnZW50TmFtZS5yZXBsYWNlKC9cXGIoZXNwZWNpYWxpc3RhfGVzcGVjaWFsaXN0KVxcYi9naSwgJ0VzcC4nKS5yZXBsYWNlKC9cXGJzcGVjaWFsaXN0XFxiL2dpLCAnU3BlYy4nKVxufVxuXG5jb25zdCBMaXN0SGlzdG9yeUNoYXQgPSAoe1xuICBjaGF0LFxuICBvbkNsaWNrLFxuICBpc01vZGFsT3BlbixcbiAgb25PcGVuTW9kYWwsXG4gIG9uQ2xvc2VNb2RhbCxcbiAgaGFuZGxlcnMsXG4gIGlzU2VsZWN0ZWQsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGFnZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbY2hhdC50aXRsZV0pXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKGFnZW50UmVmLCBbY2hhdC5hZ2VudF0pXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFthY3Rpb24sIHNldEFjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ1dyYXBwZXJDb250ZW50XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBvbkNsaWNrKGNoYXQpXG4gICAgICAgIH19XG4gICAgICAgIGtleT17YGNvbnZlcnNhdGlvbi0ke2NoYXQuc2Vzc2lvbkV4dGVybmFsSWR9YH1cbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICA8U0NMSENXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGNoYXQudGl0bGUgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfT57Y2hhdC50aXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGNoYXQuYWdlbnQgKyAoY2hhdC5wcm9qZWN0TmFtZSA/IGAgLSAke2NoYXQucHJvamVjdE5hbWV9YCA6ICcnKSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICAgICAge2NoYXQuYWdlbnRUeXBlID09PSAnY2xvbmUnID8gKFxuICAgICAgICAgICAgICAgIDxNQUlBSWNvbiB3aWR0aD17MTR9IGhlaWdodD17MTR9IC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFNpemU6ICcxNHB4JyB9fT57Y2hhdC5lbW9qaX08L3NwYW4+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50VGV4dCByZWY9e2FnZW50UmVmfT5cbiAgICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgPyBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGNoYXQuYWdlbnQpIDogY2hhdC5hZ2VudH1cbiAgICAgICAgICAgICAgICB7Y2hhdC5wcm9qZWN0TmFtZSAmJiBgIC0gJHtjaGF0LnByb2plY3ROYW1lfWB9XG4gICAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnRUZXh0PlxuICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NMSENXcmFwcGVyPlxuICAgICAgICA8U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgIGljb25Pbmx5XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAge2lzTW9kYWxPcGVuICYmICFhY3Rpb24gJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzMycHgnLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMjQsIDIyNCwgMjI0LCAxKScsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjRweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKCh7IGxhYmVsLCBvbkNsaWNrSXRlbSwgSWNvbiwgZXZlbnRLZXkgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25JdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0oY2hhdC5pZCl9XG4gICAgICAgICAgICAgICAgICBJY29uPXtJY29ufVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e2V2ZW50S2V5fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgPC9TQ0xIQ1dyYXBwZXJDb250ZW50PlxuICAgICAgeyEhYWN0aW9uICYmXG4gICAgICAgIGFjdGlvbnNbYWN0aW9uXSh7XG4gICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZU1vZGFsKClcbiAgICAgICAgICAgIHNldEFjdGlvbihudWxsKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hhdCxcbiAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbixcbiAgICAgICAgICAgIGhhbmRsZVNldElzT3Blbk1vZGFsOiBvbkNsb3NlTW9kYWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNpZGViYXIgPSAoe1xuICBvbkdvVG9DaGF0LFxuICBvbkVycm9yID0gKCkgPT4gbnVsbCxcbiAgaGFuZGxlR29Ub0hvbWUsXG4gIHNob3dOZXdDaGF0LFxuICByZWZldGNoQ2hhdHMsXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyxcbiAgaGFzRXJyb3IsXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBzaG93TmV3Q2hhdDogYm9vbGVhblxuICByZWZldGNoQ2hhdHM6IGJvb2xlYW5cbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzOiAocmVmZXRjaDogYm9vbGVhbikgPT4gdm9pZFxuICBoYXNFcnJvcjogYm9vbGVhblxuICByZXNldFNlbGVjdGVkQ2hhdFJlZj86IE11dGFibGVSZWZPYmplY3Q8KCgpID0+IHZvaWQpIHwgbnVsbD5cbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc09wZW5Nb2RhbCwgc2V0SXNPcGVuTW9kYWxdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3NlbGVjdGVkQ2hhdCwgc2V0U2VsZWN0ZWRDaGF0XSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGNoYXRzRmV0Y2hlZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgY2hhdHNDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudDogc2VsZWN0ZWRBZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHtcbiAgICBsb2FkaW5nQ2hhdHMsXG4gICAgY2hhdHMsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGZldGNoQ2hhdHMsXG4gICAgbGltaXQsXG4gICAgb2Zmc2V0LFxuICAgIGhhc01vcmVDaGF0cyxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgfSA9IHVzZUNoYXRzKHtcbiAgICBvbkVycm9yLFxuICB9KVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9ICgpID0+IHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVzZXRTZWxlY3RlZENoYXRSZWZdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNoYXQgPSBhc3luYyAoY2hhdDogYW55KSA9PiB7XG4gICAgZGVsZXRlQ2hhdChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlQ2hhdCA9IChjaGF0OiBhbnkpID0+IHtcbiAgICB1cGRhdGVDaGF0KGNoYXQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5Nb2RhbCA9IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCAmJiBpc09wZW5Nb2RhbCAhPT0gY2hhdElkKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChjaGF0SWQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc09wZW5Nb2RhbCAmJiAhKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5jbG9zZXN0KCdbZGF0YS1tb2RhbC1jb250YWluZXJdJykpIHtcbiAgICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzT3Blbk1vZGFsXSlcblxuICBjb25zdCBoYW5kbGVUb2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgc2V0SXNPcGVuKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4gJiYgIWNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBjaGF0c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtpc09wZW4sIHJlZmV0Y2hDaGF0cywgaGFuZGxlU2V0UmVmZXRjaENoYXRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghY2hhdHNDb250YWluZXJSZWYuY3VycmVudCB8fCAhaGFzTW9yZUNoYXRzIHx8IGlzTG9hZGluZ01vcmVDaGF0cyB8fCBoYXNFcnJvcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBpc0F0Qm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDEwXG5cbiAgICAgIGlmIChpc0F0Qm90dG9tKSB7XG4gICAgICAgIGxvYWRNb3JlQ2hhdHMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaGFzTW9yZUNoYXRzLCBpc0xvYWRpbmdNb3JlQ2hhdHMsIGxvYWRNb3JlQ2hhdHMsIGhhc0Vycm9yXSlcblxuICBjb25zdCBoYW5kbGVOZXdDaGF0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0OiAyMCwgb2Zmc2V0OiAwIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgKCh1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSB8fFxuICAgICAgKCF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMjQ5LCAyNDksIDI0OSwgMSknLFxuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICBwYWRkaW5nOiAnMTJweCAxMHB4JyxcbiAgICAgICAgbWluV2lkdGg6IGAke2lzT3BlbiA/ICcyMDBweCcgOiAnNDZweCd9YCxcbiAgICAgICAgbWF4V2lkdGg6ICcyNzBweCcsXG4gICAgICAgIHRyYW5zaXRpb246ICdhbGwgMC4zcyBlYXNlLWluLW91dCcsXG4gICAgICAgIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLFxuICAgICAgICBib3JkZXJUb3BSaWdodFJhZGl1czogJzAnLFxuICAgICAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogJzAnLFxuICAgICAgICBnYXA6ICcxMnB4JyxcbiAgICAgICAgLi4uKCFpc09wZW4gJiYgeyBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9KSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBnYXA6ICcyMnB4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBgJHtpc09wZW4gPyAncm93LXJldmVyc2UnIDogJ2NvbHVtbid9YCxcbiAgICAgICAgICAuLi4oaXNPcGVuICYmIHsganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9KSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2NvbnZlcnNhdGlvbnMuZXhwYW5kJyl9PlxuICAgICAgICAgIDxTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZVNpZGViYXJ9IGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlTGVmdCBjb2xvcj1cInJnYmEoMTAyLCAxMDIsIDEwMiwgMSlcIiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9TQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogYCR7aXNPcGVuID8gJzE2cHgnIDogJzIycHgnfWAsIGZsZXhEaXJlY3Rpb246IGAke2lzT3BlbiA/ICdyb3cnIDogJ2NvbHVtbid9YCB9fVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uICYmIChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICAgIDxTQ1NXcmFwcGVyTmV3Q2hhdEljb24gb25DbGljaz17aGFuZGxlTmV3Q2hhdH0+XG4gICAgICAgICAgICAgICAgPE5ld0NoYXQgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDMycHgpJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogYCR7aXNPcGVuID8gJycgOiAnZmxleC1lbmQnfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggMCAwIDAnLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBnYXA6ICc0cHgnLFxuICAgICAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICAgICAgbWluV2lkdGg6ICcyNDRweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM2NjY2NjYnLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxNDAlJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogJzEycHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnY29udmVyc2F0aW9ucy50aXRsZScpfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBnYXA6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgLi4uKGNoYXRzLmxlbmd0aCAmJiB7IG1heEhlaWdodDogYGNhbGMoMTAwdmggLSAke2hhc0Vycm9yID8gMTk3IDogMTYwfXB4KWAgfSksXG4gICAgICAgICAgICAgICAgLi4uKCFjaGF0cy5sZW5ndGggJiYgeyBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9KSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmICFjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZmxleEdyb3c6IDEgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgyNTMsIDIzNiwgMjM2LCAxKScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMTk5LCA1LCA1LCAxKScsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgzMiwgMzIsIDMxLCAxKScsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAnMTQwJScsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgaGVpZ2h0OiAnNjcwcHgnIH19PlxuICAgICAgICAgICAgICAgICAgPExvYWRlciAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7Y2hhdHMubWFwKGNoYXQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SGlzdG9yeUNoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXQ9e2NoYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjaGF0RGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDaGF0KGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG9DaGF0KGNoYXREYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTW9kYWxPcGVuPXtpc09wZW5Nb2RhbCA9PT0gY2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uT3Blbk1vZGFsPXtoYW5kbGVPcGVuTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlTW9kYWw9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWxldGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVVcGRhdGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQ2hhdCA9PT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLCBwYWRkaW5nOiAnMTZweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgPExvYWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgICAgIGdhcDogJzE4cHgnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzIwMXB4JyxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEVtcHR5SGlzdG9yeUljb24gLz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMTAyLCAxMDIsIDEwMiwgMSknLFxuICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxNDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dCgnY29udmVyc2F0aW9ucy5lbXB0eScpfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmIGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBnYXA6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgyNTMsIDIzNiwgMjM2LCAxKScsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMTk5LCA1LCA1LCAxKScsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMzIsIDMyLCAzMSwgMSknLFxuICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxNDAlJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBnYXA6ICc4cHgnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogaXNPcGVuID8gJ3JvdycgOiAnY29sdW1uJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBzZWxlY3RlZEFnZW50ID8gJ3NwYWNlLWJldHdlZW4nIDogJ2ZsZXgtZW5kJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge3NlbGVjdGVkQWdlbnQgJiYgPEZlZWRiYWNrQnV0dG9uIHNlbGVjdGVkQWdlbnQ9e3NlbGVjdGVkQWdlbnR9IGlzT3Blbj17aXNPcGVufSAvPn1cbiAgICAgICAgICA8T25ib2FyZGluZ01vZGFsQnV0dG9uIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBMkJBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNyRSxTQUFTQyxpQkFBaUIsUUFBUSxvREFBb0Q7QUFDdEYsU0FBU0MsUUFBUSxRQUFRLDRDQUE0QztBQUNyRSxTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUU5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBRXRFLFNBQVNDLGdCQUFnQixRQUFRLGdDQUFnQztBQUNqRSxTQUFTQyxpQkFBaUIsUUFBUSwwQkFBMEI7QUFDNUQsU0FBU0MsUUFBUSxRQUFRLHlCQUF5QjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxPQUFPLFFBQVEsbUJBQW1CO0FBQ2pFLFNBQVNDLE1BQU0sUUFBUSx5QkFBeUI7QUFDaEQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxVQUFVLFFBQVEsK0JBQStCO0FBQzFELFNBQVNDLGlCQUFpQixRQUFRLG1DQUFtQztBQUNyRSxTQUFTQyxtQkFBbUIsUUFBUSxxQ0FBcUM7QUFDekUsU0FBU0MsU0FBUyxRQUFRLDZCQUE2QjtBQUN2RCxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQ25ELFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyxjQUFjLFFBQVEsNEJBQTRCO0FBQzNELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztB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O1VBQ0UwRCxLQUFLLEVBQUU7WUFDTGEsT0FBTyxFQUFFLE1BQU07WUFDZm9HLFVBQVUsRUFBRSxRQUFRO1lBQ3BCQyxjQUFjLEVBQUU7VUFDbEIsQ0FBRTtVQUFBM0gsUUFBQSxFQUVEMEMsUUFBUSxJQUFJc0IsS0FBSyxDQUFDa0UsTUFBTSxnQkFDdkJqTCxLQUFBO1lBQ0V3RCxLQUFLLEVBQUU7Y0FDTGEsT0FBTyxFQUFFLE1BQU07Y0FDZm9HLFVBQVUsRUFBRSxRQUFRO2NBQ3BCRCxHQUFHLEVBQUUsTUFBTTtjQUNYckcsZUFBZSxFQUFFLHdCQUF3QjtjQUN6Q0ksWUFBWSxFQUFFLEtBQUs7Y0FDbkI0RixPQUFPLEVBQUUsTUFBTTtjQUNmM0YsTUFBTSxFQUFFO1lBQ1YsQ0FBRTtZQUFBekIsUUFBQSxnQkFFRmpELElBQUE7Y0FBSzBELEtBQUssRUFBRTtnQkFBRWEsT0FBTyxFQUFFLE1BQU07Z0JBQUVvRyxVQUFVLEVBQUUsUUFBUTtnQkFBRUMsY0FBYyxFQUFFO2NBQVMsQ0FBRTtjQUFBM0gsUUFBQSxlQUM5RWpELElBQUEsQ0FBQ2QsU0FBUyxJQUFFO1lBQUMsQ0FDVixDQUFDLGVBQ05jLElBQUE7Y0FDRTBELEtBQUssRUFBRTtnQkFDTEMsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCb0gsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCRixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QkcsVUFBVSxFQUFFO2NBQ2QsQ0FBRTtjQUFBL0gsUUFBQSxFQUVEbEIsQ0FBQyxDQUFDLHFCQUFxQjtZQUFDLENBQ3JCLENBQUM7VUFBQSxDQUNKLENBQUMsR0FDSjtRQUFJLENBQ0wsQ0FBQztNQUFBLENBQ0gsQ0FDTixlQUNEN0IsS0FBQTtRQUNFd0QsS0FBSyxFQUFFO1VBQ0xhLE9BQU8sRUFBRSxNQUFNO1VBQ2ZtRyxHQUFHLEVBQUUsS0FBSztVQUNWbEcsYUFBYSxFQUFFd0IsTUFBTSxHQUFHLEtBQUssR0FBRyxRQUFRO1VBQ3hDNEUsY0FBYyxFQUFFOUQsYUFBYSxHQUFHLGVBQWUsR0FBRztRQUNwRCxDQUFFO1FBQUE3RCxRQUFBLEdBRUQ2RCxhQUFhLGlCQUFJOUcsSUFBQSxDQUFDWCxjQUFjO1VBQUN5SCxhQUFhLEVBQUVBLGFBQWM7VUFBQ2QsTUFBTSxFQUFFQTtRQUFPLENBQUUsQ0FBQyxlQUNsRmhHLElBQUEsQ0FBQ1oscUJBQXFCLElBQUUsQ0FBQztNQUFBLENBQ3RCLENBQUM7SUFBQSxDQUNILENBQUM7RUFBQSxDQUNILENBQUM7QUFFVixDQUFDIiwiaWdub3JlTGlzdCI6W119
617
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25Eb3VibGVMZWZ0IiwiQ1VCdXR0b24iLCJNZW51RG90cyIsIlBlbmNpbCIsIlRyYXNoIiwiVG9vbHRpcCIsIkVtcHR5SGlzdG9yeUljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsInVzZUNoYXRzIiwiTG9hZGVyIiwiRXJyb3JTdGF0ZSIsIk1BSUFJY29uIiwiTmV3Q2hhdCIsIkVWRU5UUyIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiRXJyb3JJY29uIiwidXNlVXNlciIsIk9uYm9hcmRpbmdNb2RhbEJ1dHRvbiIsIkZlZWRiYWNrQnV0dG9uIiwidXNlR2xvYmFsQ29udGV4dCIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50IiwiU0NMSENXcmFwcGVyQWdlbnRUZXh0IiwiU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyIsIlNDTEhDV3JhcHBlckNvbnRlbnQiLCJTQ0xIQ1dyYXBwZXJUaXRsZSIsIlNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24iLCJTQ1NXcmFwcGVyTmV3Q2hhdEljb24iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsInRleHRSZWYiLCJhZ2VudFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwiYWdlbnQiLCJzaG93VG9vbHRpcEFnZW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aW9uIiwic2V0QWN0aW9uIiwibWVudUl0ZW1zIiwibGFiZWwiLCJvbkNsaWNrSXRlbSIsImNoYXRJZCIsIkljb24iLCJldmVudEtleSIsInBtQWlNZW51RWRpdCIsInBtQWlNZW51RGVsZXRlIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImNoYXREYXRhIiwiaGFuZGxlVXBkYXRlQ2hhdCIsImhhbmRsZURlbGV0ZUNoYXQiLCJjaGlsZHJlbiIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWYiLCJwcm9qZWN0TmFtZSIsImNvbmNhdCIsImFnZW50VHlwZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiekluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJvbkNsb3NlIiwiaGFuZGxlU2V0SXNPcGVuTW9kYWwiLCJTaWRlYmFyIiwiX3JlZjMiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uR29Ub0NoYXQiLCJfcmVmMyRvbkVycm9yIiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwic2hvd05ld0NoYXQiLCJyZWZldGNoQ2hhdHMiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNFcnJvciIsInJlc2V0U2VsZWN0ZWRDaGF0UmVmIiwiX3VzZVQyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzT3Blbk1vZGFsIiwic2V0SXNPcGVuTW9kYWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImNoYXRzRmV0Y2hlZFJlZiIsImNoYXRzQ29udGFpbmVyUmVmIiwidXNlciIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsIl91c2VDaGF0cyIsImxvYWRpbmdDaGF0cyIsImNoYXRzIiwiZGVsZXRlQ2hhdCIsInVwZGF0ZUNoYXQiLCJmZXRjaENoYXRzIiwibGltaXQiLCJvZmZzZXQiLCJoYXNNb3JlQ2hhdHMiLCJsb2FkTW9yZUNoYXRzIiwiaXNMb2FkaW5nTW9yZUNoYXRzIiwidXNlclBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhaV9hZ2VudHMiLCJjdXJyZW50IiwiX3JlZjQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVPcGVuTW9kYWwiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiY2xvc2VzdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGVTaWRlYmFyIiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNBdEJvdHRvbSIsImNvbnRhaW5lciIsImhhbmRsZU5ld0NoYXQiLCJfcmVmNSIsIl9jYWxsZWUyIiwiX2NvbnRleHQyIiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsInZpZXciLCJpc19kZWxldGVkIiwiaGFzX25vdF9wZXJtaXNzaW9ucyIsImhhc19ub3RfYWNjZXNzIiwicGFkZGluZyIsIm1heFdpZHRoIiwidHJhbnNpdGlvbiIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJnYXAiLCJvdmVyZmxvdyIsIm92ZXJzY3JvbGxCZWhhdmlvciIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImNvbG9yIiwiZmxleEdyb3ciLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsInBhZGRpbmdMZWZ0Iiwib3ZlcmZsb3dZIiwib3ZlcnNjcm9sbEJlaGF2aW9yWSIsImxlbmd0aCIsIm1heEhlaWdodCIsInRleHRBbGlnbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1uZXN0ZWQtdGVybmFyeSAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyBNdXRhYmxlUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3VibGVMZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvdWJsZUxlZnQnXG5pbXBvcnQgeyBDVUJ1dHRvbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2J1dHRvbi9saWIvY29tcG9uZW50cy9DVUJ1dHRvbidcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBQZW5jaWwgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QZW5jaWwnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7IEVtcHR5SGlzdG9yeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eUhpc3RvcnknXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9hdG9tcy9Mb2FkZXInXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTmV3Q2hhdCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgRVZFTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBPbmJvYXJkaW5nTW9kYWxCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9PbmJvYXJkaW5nTW9kYWxCdXR0b24nXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQge1xuICBTQ0xIQ1dyYXBwZXIsXG4gIFNDTEhDV3JhcHBlckFnZW50LFxuICBTQ0xIQ1dyYXBwZXJBZ2VudFRleHQsXG4gIFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMsXG4gIFNDTEhDV3JhcHBlckNvbnRlbnQsXG4gIFNDTEhDV3JhcHBlclRpdGxlLFxuICBTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uLFxuICBTQ1NXcmFwcGVyTmV3Q2hhdEljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5cbmNvbnN0IGFjdGlvbnMgPSB7XG4gIGVkaXQ6IChwcm9wczogYW55KSA9PiA8RWRpdFF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbiAgZGVsZXRlOiAocHJvcHM6IGFueSkgPT4gPERlbGV0ZVF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbn1cblxuLyoqIEFicmV2aWEgXCJlc3BlY2lhbGlzdGFcIi9cImVzcGVjaWFsaXN0XCIg4oaSIFwiRXNwLlwiIChFUy9QVCkgeSBcInNwZWNpYWxpc3RcIiDihpIgXCJTcGVjLlwiIChFTikgZW4gZWwgbm9tYnJlIGRlbCBhZ2VudGUuICovXG5mdW5jdGlvbiBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGFnZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFhZ2VudE5hbWUgfHwgdHlwZW9mIGFnZW50TmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBhZ2VudE5hbWVcbiAgcmV0dXJuIGFnZW50TmFtZS5yZXBsYWNlKC9cXGIoZXNwZWNpYWxpc3RhfGVzcGVjaWFsaXN0KVxcYi9naSwgJ0VzcC4nKS5yZXBsYWNlKC9cXGJzcGVjaWFsaXN0XFxiL2dpLCAnU3BlYy4nKVxufVxuXG5jb25zdCBMaXN0SGlzdG9yeUNoYXQgPSAoe1xuICBjaGF0LFxuICBvbkNsaWNrLFxuICBpc01vZGFsT3BlbixcbiAgb25PcGVuTW9kYWwsXG4gIG9uQ2xvc2VNb2RhbCxcbiAgaGFuZGxlcnMsXG4gIGlzU2VsZWN0ZWQsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGFnZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbY2hhdC50aXRsZV0pXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKGFnZW50UmVmLCBbY2hhdC5hZ2VudF0pXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFthY3Rpb24sIHNldEFjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ1dyYXBwZXJDb250ZW50XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBvbkNsaWNrKGNoYXQpXG4gICAgICAgIH19XG4gICAgICAgIGtleT17YGNvbnZlcnNhdGlvbi0ke2NoYXQuc2Vzc2lvbkV4dGVybmFsSWR9YH1cbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgPlxuICAgICAgICA8U0NMSENXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGNoYXQudGl0bGUgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfT57Y2hhdC50aXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGNoYXQuYWdlbnQgKyAoY2hhdC5wcm9qZWN0TmFtZSA/IGAgLSAke2NoYXQucHJvamVjdE5hbWV9YCA6ICcnKSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICAgICAge2NoYXQuYWdlbnRUeXBlID09PSAnY2xvbmUnID8gKFxuICAgICAgICAgICAgICAgIDxNQUlBSWNvbiB3aWR0aD17MTR9IGhlaWdodD17MTR9IC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFNpemU6ICcxNHB4JyB9fT57Y2hhdC5lbW9qaX08L3NwYW4+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50VGV4dCByZWY9e2FnZW50UmVmfT5cbiAgICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgPyBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGNoYXQuYWdlbnQpIDogY2hhdC5hZ2VudH1cbiAgICAgICAgICAgICAgICB7Y2hhdC5wcm9qZWN0TmFtZSAmJiBgIC0gJHtjaGF0LnByb2plY3ROYW1lfWB9XG4gICAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnRUZXh0PlxuICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NMSENXcmFwcGVyPlxuICAgICAgICA8U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgIGljb25Pbmx5XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAge2lzTW9kYWxPcGVuICYmICFhY3Rpb24gJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzMycHgnLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMjQsIDIyNCwgMjI0LCAxKScsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjRweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKCh7IGxhYmVsLCBvbkNsaWNrSXRlbSwgSWNvbiwgZXZlbnRLZXkgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25JdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0oY2hhdC5pZCl9XG4gICAgICAgICAgICAgICAgICBJY29uPXtJY29ufVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e2V2ZW50S2V5fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgPC9TQ0xIQ1dyYXBwZXJDb250ZW50PlxuICAgICAgeyEhYWN0aW9uICYmXG4gICAgICAgIGFjdGlvbnNbYWN0aW9uXSh7XG4gICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZU1vZGFsKClcbiAgICAgICAgICAgIHNldEFjdGlvbihudWxsKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hhdCxcbiAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbixcbiAgICAgICAgICAgIGhhbmRsZVNldElzT3Blbk1vZGFsOiBvbkNsb3NlTW9kYWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNpZGViYXIgPSAoe1xuICBvbkdvVG9DaGF0LFxuICBvbkVycm9yID0gKCkgPT4gbnVsbCxcbiAgaGFuZGxlR29Ub0hvbWUsXG4gIHNob3dOZXdDaGF0LFxuICByZWZldGNoQ2hhdHMsXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyxcbiAgaGFzRXJyb3IsXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBzaG93TmV3Q2hhdDogYm9vbGVhblxuICByZWZldGNoQ2hhdHM6IGJvb2xlYW5cbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzOiAocmVmZXRjaDogYm9vbGVhbikgPT4gdm9pZFxuICBoYXNFcnJvcjogYm9vbGVhblxuICByZXNldFNlbGVjdGVkQ2hhdFJlZj86IE11dGFibGVSZWZPYmplY3Q8KCgpID0+IHZvaWQpIHwgbnVsbD5cbn0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKHRydWUpXG4gIGNvbnN0IFtpc09wZW5Nb2RhbCwgc2V0SXNPcGVuTW9kYWxdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3NlbGVjdGVkQ2hhdCwgc2V0U2VsZWN0ZWRDaGF0XSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGNoYXRzRmV0Y2hlZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgY2hhdHNDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyBhZ2VudDogc2VsZWN0ZWRBZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHtcbiAgICBsb2FkaW5nQ2hhdHMsXG4gICAgY2hhdHMsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGZldGNoQ2hhdHMsXG4gICAgbGltaXQsXG4gICAgb2Zmc2V0LFxuICAgIGhhc01vcmVDaGF0cyxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgfSA9IHVzZUNoYXRzKHtcbiAgICBvbkVycm9yLFxuICB9KVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9ICgpID0+IHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVzZXRTZWxlY3RlZENoYXRSZWZdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNoYXQgPSBhc3luYyAoY2hhdDogYW55KSA9PiB7XG4gICAgZGVsZXRlQ2hhdChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlQ2hhdCA9IChjaGF0OiBhbnkpID0+IHtcbiAgICB1cGRhdGVDaGF0KGNoYXQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5Nb2RhbCA9IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCAmJiBpc09wZW5Nb2RhbCAhPT0gY2hhdElkKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChjaGF0SWQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc09wZW5Nb2RhbCAmJiAhKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5jbG9zZXN0KCdbZGF0YS1tb2RhbC1jb250YWluZXJdJykpIHtcbiAgICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzT3Blbk1vZGFsXSlcblxuICBjb25zdCBoYW5kbGVUb2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgc2V0SXNPcGVuKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4gJiYgIWNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBjaGF0c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtpc09wZW4sIHJlZmV0Y2hDaGF0cywgaGFuZGxlU2V0UmVmZXRjaENoYXRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghY2hhdHNDb250YWluZXJSZWYuY3VycmVudCB8fCAhaGFzTW9yZUNoYXRzIHx8IGlzTG9hZGluZ01vcmVDaGF0cyB8fCBoYXNFcnJvcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBpc0F0Qm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDEwXG5cbiAgICAgIGlmIChpc0F0Qm90dG9tKSB7XG4gICAgICAgIGxvYWRNb3JlQ2hhdHMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaGFzTW9yZUNoYXRzLCBpc0xvYWRpbmdNb3JlQ2hhdHMsIGxvYWRNb3JlQ2hhdHMsIGhhc0Vycm9yXSlcblxuICBjb25zdCBoYW5kbGVOZXdDaGF0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0OiAyMCwgb2Zmc2V0OiAwIH0pXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgKCh1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSB8fFxuICAgICAgKCF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOWY5ZjknLFxuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICBwYWRkaW5nOiAnMTJweCAxMHB4JyxcbiAgICAgICAgbWluV2lkdGg6IGAke2lzT3BlbiA/ICcyMDBweCcgOiAnNDZweCd9YCxcbiAgICAgICAgbWF4V2lkdGg6ICcyNzBweCcsXG4gICAgICAgIHRyYW5zaXRpb246ICdhbGwgMC4zcyBlYXNlLWluLW91dCcsXG4gICAgICAgIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLFxuICAgICAgICBib3JkZXJUb3BSaWdodFJhZGl1czogJzAnLFxuICAgICAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogJzAnLFxuICAgICAgICBnYXA6ICcxMnB4JyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBvdmVyc2Nyb2xsQmVoYXZpb3I6ICdjb250YWluJyxcbiAgICAgICAgLi4uKCFpc09wZW4gJiYgeyBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9KSxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBnYXA6ICcyMnB4JyxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBgJHtpc09wZW4gPyAncm93LXJldmVyc2UnIDogJ2NvbHVtbid9YCxcbiAgICAgICAgICAuLi4oaXNPcGVuICYmIHsganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyB9KSxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2NvbnZlcnNhdGlvbnMuZXhwYW5kJyl9PlxuICAgICAgICAgIDxTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZVNpZGViYXJ9IGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlTGVmdCBjb2xvcj1cInJnYmEoMTAyLCAxMDIsIDEwMiwgMSlcIiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9TQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogYCR7aXNPcGVuID8gJzE2cHgnIDogJzIycHgnfWAsIGZsZXhEaXJlY3Rpb246IGAke2lzT3BlbiA/ICdyb3cnIDogJ2NvbHVtbid9YCB9fVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uICYmIChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICAgIDxTQ1NXcmFwcGVyTmV3Q2hhdEljb24gb25DbGljaz17aGFuZGxlTmV3Q2hhdH0+XG4gICAgICAgICAgICAgICAgPE5ld0NoYXQgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDMycHgpJyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogYCR7aXNPcGVuID8gJycgOiAnZmxleC1lbmQnfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggMCAwIDAnLFxuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBnYXA6ICc0cHgnLFxuICAgICAgICAgICAgICBmbGV4R3JvdzogMSxcbiAgICAgICAgICAgICAgbWluV2lkdGg6ICcyNDRweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM2NjY2NjYnLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxNDAlJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogJzEycHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnY29udmVyc2F0aW9ucy50aXRsZScpfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBnYXA6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgb3ZlcnNjcm9sbEJlaGF2aW9yWTogJ2NvbnRhaW4nLFxuICAgICAgICAgICAgICAgIC4uLihjaGF0cy5sZW5ndGggJiYgeyBtYXhIZWlnaHQ6IGBjYWxjKDEwMHZoIC0gJHtoYXNFcnJvciA/IDE5NyA6IDE2MH1weClgIH0pLFxuICAgICAgICAgICAgICAgIC4uLighY2hhdHMubGVuZ3RoICYmIHsgYWxpZ25JdGVtczogJ2NlbnRlcicgfSksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiAhY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGZsZXhHcm93OiAxIH19PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JTdGF0ZSAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMjUzLCAyMzYsIDIzNiwgMSknLFxuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzEycHgnLFxuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDE5OSwgNSwgNSwgMSknLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMzIsIDMyLCAzMSwgMSknLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogJzE0MCUnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnY29udmVyc2F0aW9ucy5lcnJvcicpfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSA6IGxvYWRpbmdDaGF0cyA/IChcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGhlaWdodDogJzY3MHB4JyB9fT5cbiAgICAgICAgICAgICAgICAgIDxMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcChjaGF0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChjaGF0RGF0YS5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZENoYXQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgcGFkZGluZzogJzE2cHgnIH19PlxuICAgICAgICAgICAgICAgICAgICAgIDxMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICBnYXA6ICcxOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcyMDFweCcsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxFbXB0eUhpc3RvcnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAnMTQwJScsXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2NvbnZlcnNhdGlvbnMuZW1wdHknKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMjUzLCAyMzYsIDIzNiwgMSknLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDE5OSwgNSwgNSwgMSknLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDMyLCAzMiwgMzEsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAnMTQwJScsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgZ2FwOiAnOHB4JyxcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IGlzT3BlbiA/ICdyb3cnIDogJ2NvbHVtbicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogc2VsZWN0ZWRBZ2VudCA/ICdzcGFjZS1iZXR3ZWVuJyA6ICdmbGV4LWVuZCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ICYmIDxGZWVkYmFja0J1dHRvbiBzZWxlY3RlZEFnZW50PXtzZWxlY3RlZEFnZW50fSBpc09wZW49e2lzT3Blbn0gLz59XG4gICAgICAgICAgPE9uYm9hcmRpbmdNb2RhbEJ1dHRvbiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQTJCQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDckUsU0FBU0MsaUJBQWlCLFFBQVEsb0RBQW9EO0FBQ3RGLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFFOUQsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUV0RSxTQUFTQyxnQkFBZ0IsUUFBUSxnQ0FBZ0M7QUFDakUsU0FBU0MsaUJBQWlCLFFBQVEsMEJBQTBCO0FBQzVELFNBQVNDLFFBQVEsUUFBUSx5QkFBeUI7QUFDbEQsU0FBU0MsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxRQUFRLG1CQUFtQjtBQUNqRSxTQUFTQyxNQUFNLFFBQVEseUJBQXlCO0FBQ2hELFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsVUFBVSxRQUFRLCtCQUErQjtBQUMxRCxTQUFTQyxpQkFBaUIsUUFBUSxtQ0FBbUM7QUFDckUsU0FBU0MsbUJBQW1CLFFBQVEs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
@@ -3,6 +3,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  import { useRef, useState, useMemo, useEffect } from 'react';
6
+ import { useStreamdownStyles } from '../../../hooks/useStreamdownStyles';
6
7
  import { useProjectSummaryConfig } from '../../../hooks/useProjectSummaryConfig';
7
8
  import { MODAL_ELEMENTS } from '../../../hooks/useModal/useModal';
8
9
  import { ChatAIModal } from '../../molecules/ChatAIModal';
@@ -23,6 +24,7 @@ export var ChatAI = withAppCfg(function (_ref) {
23
24
  hasMultiAgents = _ref$hasMultiAgents === void 0 ? false : _ref$hasMultiAgents,
24
25
  _ref$section = _ref.section,
25
26
  section = _ref$section === void 0 ? 'header' : _ref$section;
27
+ useStreamdownStyles();
26
28
  var parentRef = useRef(null);
27
29
  // Si es section 'project', setear el proyecto que viene; si es 'client', no pre-setear proyecto
28
30
  var initialProjectValue = section === 'project' ? initialProject : null;
@@ -73,4 +75,4 @@ export var ChatAI = withAppCfg(function (_ref) {
73
75
  })
74
76
  });
75
77
  }, Features.CHAT_AI);
76
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyIsIk1PREFMX0VMRU1FTlRTIiwiQ2hhdEFJTW9kYWwiLCJHbG9iYWxDb250ZXh0IiwiRmVhdHVyZXMiLCJ3aXRoQXBwQ2ZnIiwiZ2V0Q2hhdHNTdG9yZVN0YXRlIiwianN4IiwiX2pzeCIsIkNoYXRBSSIsIl9yZWYiLCJlbnRpdHkiLCJpbml0aWFsUHJvamVjdCIsInByb2plY3QiLCJpbml0aWFsQ2xpZW50IiwiY2xpZW50IiwiX3JlZiRoYW5kbGVDbG9zZSIsImhhbmRsZUNsb3NlIiwiX3JlZiRoYXNNdWx0aUFnZW50cyIsImhhc011bHRpQWdlbnRzIiwiX3JlZiRzZWN0aW9uIiwic2VjdGlvbiIsInBhcmVudFJlZiIsImluaXRpYWxQcm9qZWN0VmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwidW5kZWZpbmVkIiwiY29udGV4dCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsImhhbmRsZUNsb3NlTW9kYWwiLCJyZXNldCIsInByb3ZpZGVyVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiQ0hBVF9BSSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9DaGF0QUkvQ2hhdEFJLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlLCB1c2VNZW1vLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoRmVhdHVyZVZhbGlkYXRpb24nXG5pbXBvcnQgeyB3aXRoQXBwQ2ZnIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEFwcENmZydcbmltcG9ydCB7IGdldENoYXRzU3RvcmVTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlJ1xuXG50eXBlIENoYXRBSVByb3BzID0ge1xuICBlbnRpdHk6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIGNsaWVudD86IENsaWVudCB8IG51bGxcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICBzZWN0aW9uPzogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHksXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50LFxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgICBoYXNNdWx0aUFnZW50cyA9IGZhbHNlLFxuICAgIHNlY3Rpb24gPSAnaGVhZGVyJyxcbiAgfTogQ2hhdEFJUHJvcHMpID0+IHtcbiAgICBjb25zdCBwYXJlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgLy8gU2kgZXMgc2VjdGlvbiAncHJvamVjdCcsIHNldGVhciBlbCBwcm95ZWN0byBxdWUgdmllbmU7IHNpIGVzICdjbGllbnQnLCBubyBwcmUtc2V0ZWFyIHByb3llY3RvXG4gICAgY29uc3QgaW5pdGlhbFByb2plY3RWYWx1ZSA9IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/IGluaXRpYWxQcm9qZWN0IDogbnVsbFxuICAgIGNvbnN0IFtwcm9qZWN0LCBzZXRQcm9qZWN0XSA9IHVzZVN0YXRlPFByb2plY3QgfCBudWxsPihpbml0aWFsUHJvamVjdFZhbHVlKVxuXG4gICAgLy8gU2luY3Jvbml6YXIgcHJvamVjdCBjdWFuZG8gaW5pdGlhbFByb2plY3QgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyIChlai4gZGF0b3MgYXN5bmMpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgJiYgaW5pdGlhbFByb2plY3QgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KGluaXRpYWxQcm9qZWN0KVxuICAgICAgfVxuICAgIH0sIFtzZWN0aW9uLCBpbml0aWFsUHJvamVjdF0pXG5cbiAgICBjb25zdCB7IGNvbnRleHQsIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyB9ID0gdXNlUHJvamVjdFN1bW1hcnlDb25maWcoe1xuICAgICAgc2VjdGlvbixcbiAgICAgIGVudGl0eSxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50OiBzZWN0aW9uID09PSAnY2xpZW50JyA/IChpbml0aWFsQ2xpZW50ID8/IG51bGwpIDogdW5kZWZpbmVkLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgfSlcblxuICAgIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgICBnZXRDaGF0c1N0b3JlU3RhdGUoKS5yZXNldCgpXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MoKVxuICAgICAgaGFuZGxlQ2xvc2UoKVxuICAgIH1cblxuICAgIC8vIFJlc2V0IHBhZ2luYWNpw7NuIGFsIGRlc21vbnRhciAoZWouIHVzdWFyaW8gY2FtYmlhIGRlIHDDoWdpbmEgc2luIGNlcnJhciBlbCBtb2RhbCBjb24gbGEgWClcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IGdldENoYXRzU3RvcmVTdGF0ZSgpLnJlc2V0KClcbiAgICB9LCBbXSlcblxuICAgIGNvbnN0IHByb3ZpZGVyVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsgLi4uY29udGV4dCwgc2VjdGlvbjogc2VjdGlvbiBhcyAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIH0pLFxuICAgICAgW2NvbnRleHQsIHNlY3Rpb25dXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSU1vZGFsIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9IGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZU1vZGFsfSBwYXJlbnRSZWY9e3BhcmVudFJlZn0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzVELFNBQVNDLHVCQUF1QixRQUFRLHdDQUF3QztBQUdoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQ2pFLFNBQVNDLFdBQVcsUUFBUSw2QkFBNkI7QUFDekQsU0FBU0MsYUFBYSxRQUFRLGlDQUFpQztBQUMvRCxTQUFTQyxRQUFRLFFBQVEsbUNBQW1DO0FBQzVE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
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VTdHJlYW1kb3duU3R5bGVzIiwidXNlUHJvamVjdFN1bW1hcnlDb25maWciLCJNT0RBTF9FTEVNRU5UUyIsIkNoYXRBSU1vZGFsIiwiR2xvYmFsQ29udGV4dCIsIkZlYXR1cmVzIiwid2l0aEFwcENmZyIsImdldENoYXRzU3RvcmVTdGF0ZSIsImpzeCIsIl9qc3giLCJDaGF0QUkiLCJfcmVmIiwiZW50aXR5IiwiaW5pdGlhbFByb2plY3QiLCJwcm9qZWN0IiwiaW5pdGlhbENsaWVudCIsImNsaWVudCIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsIl9yZWYkc2VjdGlvbiIsInNlY3Rpb24iLCJwYXJlbnRSZWYiLCJpbml0aWFsUHJvamVjdFZhbHVlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0UHJvamVjdCIsIl91c2VQcm9qZWN0U3VtbWFyeUNvbiIsInVuZGVmaW5lZCIsImNvbnRleHQiLCJyZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MiLCJoYW5kbGVDbG9zZU1vZGFsIiwicmVzZXQiLCJwcm92aWRlclZhbHVlIiwiX29iamVjdFNwcmVhZCIsIlByb3ZpZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIkNIQVRfQUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJL0NoYXRBSS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VTdHJlYW1kb3duU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU3RyZWFtZG93blN0eWxlcydcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoRmVhdHVyZVZhbGlkYXRpb24nXG5pbXBvcnQgeyB3aXRoQXBwQ2ZnIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEFwcENmZydcbmltcG9ydCB7IGdldENoYXRzU3RvcmVTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlJ1xuXG50eXBlIENoYXRBSVByb3BzID0ge1xuICBlbnRpdHk6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIGNsaWVudD86IENsaWVudCB8IG51bGxcbiAgaGFuZGxlQ2xvc2U/OiAoKSA9PiB2b2lkXG4gIGhhc011bHRpQWdlbnRzPzogYm9vbGVhblxuICBzZWN0aW9uPzogJ3Byb2plY3QnIHwgJ2hlYWRlcicgfCAnY2xpZW50J1xufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHksXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50LFxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgICBoYXNNdWx0aUFnZW50cyA9IGZhbHNlLFxuICAgIHNlY3Rpb24gPSAnaGVhZGVyJyxcbiAgfTogQ2hhdEFJUHJvcHMpID0+IHtcbiAgICB1c2VTdHJlYW1kb3duU3R5bGVzKClcbiAgICBjb25zdCBwYXJlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgLy8gU2kgZXMgc2VjdGlvbiAncHJvamVjdCcsIHNldGVhciBlbCBwcm95ZWN0byBxdWUgdmllbmU7IHNpIGVzICdjbGllbnQnLCBubyBwcmUtc2V0ZWFyIHByb3llY3RvXG4gICAgY29uc3QgaW5pdGlhbFByb2plY3RWYWx1ZSA9IHNlY3Rpb24gPT09ICdwcm9qZWN0JyA/IGluaXRpYWxQcm9qZWN0IDogbnVsbFxuICAgIGNvbnN0IFtwcm9qZWN0LCBzZXRQcm9qZWN0XSA9IHVzZVN0YXRlPFByb2plY3QgfCBudWxsPihpbml0aWFsUHJvamVjdFZhbHVlKVxuXG4gICAgLy8gU2luY3Jvbml6YXIgcHJvamVjdCBjdWFuZG8gaW5pdGlhbFByb2plY3QgbGxlZ3VlIGRlc3B1w6lzIGRlbCBwcmltZXIgcmVuZGVyIChlai4gZGF0b3MgYXN5bmMpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChzZWN0aW9uID09PSAncHJvamVjdCcgJiYgaW5pdGlhbFByb2plY3QgIT0gbnVsbCkge1xuICAgICAgICBzZXRQcm9qZWN0KGluaXRpYWxQcm9qZWN0KVxuICAgICAgfVxuICAgIH0sIFtzZWN0aW9uLCBpbml0aWFsUHJvamVjdF0pXG5cbiAgICBjb25zdCB7IGNvbnRleHQsIHJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyB9ID0gdXNlUHJvamVjdFN1bW1hcnlDb25maWcoe1xuICAgICAgc2VjdGlvbixcbiAgICAgIGVudGl0eSxcbiAgICAgIHByb2plY3QsXG4gICAgICBzZXRQcm9qZWN0LFxuICAgICAgY2xpZW50OiBzZWN0aW9uID09PSAnY2xpZW50JyA/IChpbml0aWFsQ2xpZW50ID8/IG51bGwpIDogdW5kZWZpbmVkLFxuICAgICAgaGFzTXVsdGlBZ2VudHMsXG4gICAgfSlcblxuICAgIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgICBnZXRDaGF0c1N0b3JlU3RhdGUoKS5yZXNldCgpXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MoKVxuICAgICAgaGFuZGxlQ2xvc2UoKVxuICAgIH1cblxuICAgIC8vIFJlc2V0IHBhZ2luYWNpw7NuIGFsIGRlc21vbnRhciAoZWouIHVzdWFyaW8gY2FtYmlhIGRlIHDDoWdpbmEgc2luIGNlcnJhciBlbCBtb2RhbCBjb24gbGEgWClcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IGdldENoYXRzU3RvcmVTdGF0ZSgpLnJlc2V0KClcbiAgICB9LCBbXSlcblxuICAgIGNvbnN0IHByb3ZpZGVyVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsgLi4uY29udGV4dCwgc2VjdGlvbjogc2VjdGlvbiBhcyAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIH0pLFxuICAgICAgW2NvbnRleHQsIHNlY3Rpb25dXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSU1vZGFsIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9IGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZU1vZGFsfSBwYXJlbnRSZWY9e3BhcmVudFJlZn0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzVELFNBQVNDLG1CQUFtQixRQUFRLG9DQUFv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
@@ -0,0 +1,20 @@
1
+ import { useEffect } from 'react';
2
+ import { STREAMDOWN_STYLES } from '../streamdownStyles';
3
+ var STYLE_ID = 'maia-streamdown-styles';
4
+
5
+ /**
6
+ * Inyecta los estilos de Streamdown en el documento.
7
+ * Se ejecuta una sola vez para que funcionen tablas, code blocks, mermaid, etc.
8
+ * en cualquier app consumidora sin necesidad de importar CSS.
9
+ */
10
+ export var useStreamdownStyles = function useStreamdownStyles() {
11
+ useEffect(function () {
12
+ if (typeof document === 'undefined') return;
13
+ if (document.getElementById(STYLE_ID)) return;
14
+ var style = document.createElement('style');
15
+ style.id = STYLE_ID;
16
+ style.textContent = STREAMDOWN_STYLES;
17
+ document.head.appendChild(style);
18
+ }, []);
19
+ };
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJTVFJFQU1ET1dOX1NUWUxFUyIsIlNUWUxFX0lEIiwidXNlU3RyZWFtZG93blN0eWxlcyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInRleHRDb250ZW50IiwiaGVhZCIsImFwcGVuZENoaWxkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVN0cmVhbWRvd25TdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBTVFJFQU1ET1dOX1NUWUxFUyB9IGZyb20gJy4uL3N0cmVhbWRvd25TdHlsZXMnXG5cbmNvbnN0IFNUWUxFX0lEID0gJ21haWEtc3RyZWFtZG93bi1zdHlsZXMnXG5cbi8qKlxuICogSW55ZWN0YSBsb3MgZXN0aWxvcyBkZSBTdHJlYW1kb3duIGVuIGVsIGRvY3VtZW50by5cbiAqIFNlIGVqZWN1dGEgdW5hIHNvbGEgdmV6IHBhcmEgcXVlIGZ1bmNpb25lbiB0YWJsYXMsIGNvZGUgYmxvY2tzLCBtZXJtYWlkLCBldGMuXG4gKiBlbiBjdWFscXVpZXIgYXBwIGNvbnN1bWlkb3JhIHNpbiBuZWNlc2lkYWQgZGUgaW1wb3J0YXIgQ1NTLlxuICovXG5leHBvcnQgY29uc3QgdXNlU3RyZWFtZG93blN0eWxlcyA9ICgpID0+IHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuXG4gICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKSkgcmV0dXJuXG5cbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJylcbiAgICBzdHlsZS5pZCA9IFNUWUxFX0lEXG4gICAgc3R5bGUudGV4dENvbnRlbnQgPSBTVFJFQU1ET1dOX1NUWUxFU1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpXG4gIH0sIFtdKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsT0FBTztBQUNqQyxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFFdkQsSUFBTUMsUUFBUSxHQUFHLHdCQUF3Qjs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQSxFQUFTO0VBQ3ZDSCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUksT0FBT0ksUUFBUSxLQUFLLFdBQVcsRUFBRTtJQUNyQyxJQUFJQSxRQUFRLENBQUNDLGNBQWMsQ0FBQ0gsUUFBUSxDQUFDLEVBQUU7SUFFdkMsSUFBTUksS0FBSyxHQUFHRixRQUFRLENBQUNHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDN0NELEtBQUssQ0FBQ0UsRUFBRSxHQUFHTixRQUFRO0lBQ25CSSxLQUFLLENBQUNHLFdBQVcsR0FBR1IsaUJBQWlCO0lBQ3JDRyxRQUFRLENBQUNNLElBQUksQ0FBQ0MsV0FBVyxDQUFDTCxLQUFLLENBQUM7RUFDbEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNSLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=