@projectcor/maia-components 2.11.10-4 → 2.11.10-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +69 -0
- package/lib/components/atoms/ChatClientSelector/index.js +2 -0
- package/lib/components/atoms/Chip/Chip.js +4 -3
- package/lib/components/atoms/Chip/styles.js +3 -3
- package/lib/components/atoms/EntitySelector/EntitySelector.js +181 -0
- package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +57 -0
- package/lib/components/atoms/EntitySelector/index.js +2 -0
- package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +5 -3
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +54 -34
- package/lib/components/atoms/ProjectSelector/ProjectSelector.js +56 -193
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +56 -0
- package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -1
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +2 -3
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +1 -1
- package/lib/components/molecules/ChatAIMessages/newStyles.js +2 -2
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +29 -11
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +6 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -3
- package/lib/components/molecules/ChatAIModal/constants.js +6 -2
- package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -10
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +156 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
- package/lib/components/molecules/ChatFooter/styles.js +5 -1
- package/lib/components/organisms/ChatAI/ChatAI.js +11 -3
- package/lib/components/organisms/ClientAIButton/ClientAIButton.js +26 -0
- package/lib/components/organisms/ClientAIButton/index.js +2 -0
- package/lib/constants/config.js +3 -2
- package/lib/context/global-context.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +62 -40
- package/lib/hooks/useChatMessages/useChatMessages.js +72 -38
- package/lib/hooks/useFrequentlyAskedQuestions.js +68 -53
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +6 -4
- package/lib/hooks/useProjectSummaryConfig.js +35 -7
- package/lib/hooks/useRecentClientsSearch.js +176 -0
- package/lib/lang/br/index.js +25 -2
- package/lib/lang/en/index.js +25 -2
- package/lib/lang/es/index.js +25 -2
- package/lib/lang/fr/index.js +21 -2
- package/lib/services/maia/Agents/getAgents.js +6 -4
- package/lib/services/maia/Chats/getChatMessages.js +27 -14
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +6 -4
- package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
- package/lib/services/maia/RecentClients/index.js +6 -0
- package/lib/services/maia/index.js +4 -2
- package/lib/services/utils/mapChatMessages.js +12 -4
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/faqsStore.types.js +2 -0
- package/lib/store/index.js +2 -1
- package/lib/store/useFaqsStore.js +27 -0
- package/lib/types/Chat.js +1 -1
- package/lib/types/Client.js +2 -0
- package/lib/types/FrequentlyAskedQuestion.js +1 -1
- package/lib/types/agent.js +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import { ChatAIHome } from '../ChatAIHome';
|
|
|
5
5
|
import { ProjectSummaryContent } from '../ProjectSummaryContent';
|
|
6
6
|
import { options } from '../ChatAIModal/constants';
|
|
7
7
|
import { ChatAIProjectSelector } from '../ChatAIProjectSelector';
|
|
8
|
+
import { ChatAIClientSelector } from '../ChatAIClientSelector';
|
|
8
9
|
import { SCCAIContentWrapper } from './ChatAIContent.styles';
|
|
9
10
|
|
|
10
11
|
// Carga diferida: ChatAIMessages usa streamdown + @streamdown/code (Shiki), que pueden
|
|
@@ -56,6 +57,13 @@ export var ChatAIContent = function ChatAIContent(_ref) {
|
|
|
56
57
|
})
|
|
57
58
|
});
|
|
58
59
|
}
|
|
60
|
+
if (currentOption === options.clientSelector) {
|
|
61
|
+
return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
|
|
62
|
+
children: /*#__PURE__*/_jsx(ChatAIClientSelector, {
|
|
63
|
+
handlers: handlers.handleGoHome
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
59
67
|
return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
|
|
60
68
|
children: /*#__PURE__*/_jsx(ChatAIHome, {
|
|
61
69
|
handlers: handlers,
|
|
@@ -65,4 +73,4 @@ export var ChatAIContent = function ChatAIContent(_ref) {
|
|
|
65
73
|
})
|
|
66
74
|
});
|
|
67
75
|
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImxhenkiLCJTdXNwZW5zZSIsIkNoYXRBSUhvbWUiLCJQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJvcHRpb25zIiwiQ2hhdEFJUHJvamVjdFNlbGVjdG9yIiwiQ2hhdEFJQ2xpZW50U2VsZWN0b3IiLCJTQ0NBSUNvbnRlbnRXcmFwcGVyIiwianN4IiwiX2pzeCIsIkNoYXRBSU1lc3NhZ2VzTGF6eSIsInRoZW4iLCJtIiwiQ2hhdEFJTWVzc2FnZXMiLCJDaGF0QUlDb250ZW50IiwiX3JlZiIsImN1cnJlbnRPcHRpb24iLCJoYW5kbGVycyIsIm9uRXJyb3IiLCJyZWZzIiwib25TZW5kTWVzc2FnZVJlYWR5IiwiZXhwYW5kZWQiLCJoYXNOb0FnZW50cyIsImFnZW50cyIsImNoYXQiLCJjaGlsZHJlbiIsImZhbGxiYWNrIiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsImF0dGFjaG1lbnRzIiwicHJvamVjdFN1bW1hcnkiLCJvblJlc3RhcnRTdW1tYXJ5IiwiaG9tZSIsInByb2plY3RTZWxlY3RvciIsImhhbmRsZUdvSG9tZSIsImNsaWVudFNlbGVjdG9yIiwib25TdGFydENoYXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJQ29udGVudC9DaGF0QUlDb250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuaW1wb3J0IFJlYWN0LCB7IGxhenksIFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGF0QUlIb21lIH0gZnJvbSAnLi4vQ2hhdEFJSG9tZSdcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJUHJvamVjdFNlbGVjdG9yIH0gZnJvbSAnLi4vQ2hhdEFJUHJvamVjdFNlbGVjdG9yJ1xuaW1wb3J0IHsgQ2hhdEFJQ2xpZW50U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlDbGllbnRTZWxlY3RvcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBTQ0NBSUNvbnRlbnRXcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlDb250ZW50LnN0eWxlcydcblxuLy8gQ2FyZ2EgZGlmZXJpZGE6IENoYXRBSU1lc3NhZ2VzIHVzYSBzdHJlYW1kb3duICsgQHN0cmVhbWRvd24vY29kZSAoU2hpa2kpLCBxdWUgcHVlZGVuXG4vLyBlc2UgY8OzZGlnbyBoYXN0YSBxdWUgZWwgdXN1YXJpbyBhYnJlIGVsIGNoYXQgeSBzZSBldml0YSByb21wZXIgbGEgVUkgc2kgU2hpa2kveGxzeCBmYWxsYW4uXG5jb25zdCBDaGF0QUlNZXNzYWdlc0xhenkgPSBsYXp5KCgpID0+IGltcG9ydCgnLi4vQ2hhdEFJTWVzc2FnZXMnKS50aGVuKG0gPT4gKHsgZGVmYXVsdDogbS5DaGF0QUlNZXNzYWdlcyB9KSkpXG5cbnR5cGUgQ2hhdEFJQ29udGVudFByb3BzID0ge1xuICBjdXJyZW50T3B0aW9uOiBvcHRpb25zXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKHZhbHVlPzogYW55KSA9PiB2b2lkPiAmIHtcbiAgICBjaGF0OiAobWVzc2FnZT86IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICAgIHN0YXJ0Q2hhdD86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWRcbiAgICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbiAgfVxuICBvbkVycm9yOiAoKSA9PiB2b2lkXG4gIHJlZnM6IHtcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICAgIGluaXRpYWxDaGF0SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBvblNlbmRNZXNzYWdlUmVhZHk/OiAoXG4gICAgc2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQsXG4gICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgaXNTdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgaXNXcml0aW5nOiBib29sZWFuXG4gICkgPT4gdm9pZFxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgaGFzTm9BZ2VudHM/OiBib29sZWFuXG4gIGFnZW50cz86IEFnZW50W11cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUNvbnRlbnQgPSAoe1xuICBjdXJyZW50T3B0aW9uLFxuICBoYW5kbGVycyxcbiAgb25FcnJvcixcbiAgcmVmcyxcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBleHBhbmRlZCxcbiAgaGFzTm9BZ2VudHMsXG4gIGFnZW50cyxcbn06IENoYXRBSUNvbnRlbnRQcm9wcykgPT4ge1xuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9e251bGx9PlxuICAgICAgICAgIDxDaGF0QUlNZXNzYWdlc0xhenlcbiAgICAgICAgICAgIHVzZXJJbml0aWFsTWVzc2FnZT17cmVmcy51c2VySW5pdGlhbE1lc3NhZ2V9XG4gICAgICAgICAgICBpbml0aWFsQ2hhdElkPXtyZWZzLmluaXRpYWxDaGF0SWR9XG4gICAgICAgICAgICBvbkVycm9yPXtvbkVycm9yfVxuICAgICAgICAgICAgb25TZW5kTWVzc2FnZVJlYWR5PXtvblNlbmRNZXNzYWdlUmVhZHl9XG4gICAgICAgICAgICBhdHRhY2htZW50cz17cmVmcy51c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHN9XG4gICAgICAgICAgICBhZ2VudHM9e2FnZW50c31cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N1c3BlbnNlPlxuICAgICAgPC9TQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLnByb2plY3RTdW1tYXJ5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMucHJvamVjdFNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8Q2hhdEFJUHJvamVjdFNlbGVjdG9yIGhhbmRsZXJzPXtoYW5kbGVycy5oYW5kbGVHb0hvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2xpZW50U2VsZWN0b3IpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICAgIDxDaGF0QUlDbGllbnRTZWxlY3RvciBoYW5kbGVycz17aGFuZGxlcnMuaGFuZGxlR29Ib21lfSAvPlxuICAgICAgPC9TQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICA8Q2hhdEFJSG9tZSBoYW5kbGVycz17aGFuZGxlcnN9IG9uU3RhcnRDaGF0PXtoYW5kbGVycy5jaGF0fSBleHBhbmRlZD17ZXhwYW5kZWR9IGhhc05vQWdlbnRzPXtoYXNOb0FnZW50c30gLz5cbiAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsSUFBSSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUM3QyxTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUMxQyxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFFaEUsU0FBU0MsT0FBTyxRQUFRLDBCQUEwQjtBQUVsRCxTQUFTQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDaEUsU0FBU0Msb0JBQW9CLFFBQVEseUJBQXlCO0FBRTlELFNBQVNDLG1CQUFtQixRQUFRLHdCQUF3Qjs7QUFFNUQ7QUFDQTtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUNBLElBQU1DLGtCQUFrQixnQkFBR1YsSUFBSSxDQUFDO0VBQUEsT0FBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQ1csSUFBSSxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFLO01BQUUsV0FBU0EsQ0FBQyxDQUFDQztJQUFlLENBQUM7RUFBQSxDQUFDLENBQUM7QUFBQSxFQUFDO0FBeUI3RyxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsSUFBQSxFQVNBO0VBQUEsSUFSeEJDLGFBQWEsR0FBQUQsSUFBQSxDQUFiQyxhQUFhO0lBQ2JDLFFBQVEsR0FBQUYsSUFBQSxDQUFSRSxRQUFRO0lBQ1JDLE9BQU8sR0FBQUgsSUFBQSxDQUFQRyxPQUFPO0lBQ1BDLElBQUksR0FBQUosSUFBQSxDQUFKSSxJQUFJO0lBQ0pDLGtCQUFrQixHQUFBTCxJQUFBLENBQWxCSyxrQkFBa0I7SUFDbEJDLFFBQVEsR0FBQU4sSUFBQSxDQUFSTSxRQUFRO0lBQ1JDLFdBQVcsR0FBQVAsSUFBQSxDQUFYTyxXQUFXO0lBQ1hDLE1BQU0sR0FBQVIsSUFBQSxDQUFOUSxNQUFNO0VBRU4sSUFBSVAsYUFBYSxLQUFLWixPQUFPLENBQUNvQixJQUFJLEVBQUU7SUFDbEMsb0JBQ0VmLElBQUEsQ0FBQ0YsbUJBQW1CO01BQUFrQixRQUFBLGVBQ2xCaEIsSUFBQSxDQUFDUixRQUFRO1FBQUN5QixRQUFRLEVBQUUsSUFBSztRQUFBRCxRQUFBLGVBQ3ZCaEIsSUFBQSxDQUFDQyxrQkFBa0I7VUFDakJpQixrQkFBa0IsRUFBRVIsSUFBSSxDQUFDUSxrQkFBbUI7VUFDNUNDLGFBQWEsRUFBRVQsSUFBSSxDQUFDUyxhQUFjO1VBQ2xDVixPQUFPLEVBQUVBLE9BQVE7VUFDakJFLGtCQUFrQixFQUFFQSxrQkFBbUI7VUFDdkNTLFdBQVcsRUFBRVYsSUFBSSxDQUFDUSxrQkFBa0IsQ0FBQ0UsV0FBWTtVQUNqRE4sTUFBTSxFQUFFQSxNQUFPO1VBQ2ZGLFFBQVEsRUFBRUE7UUFBUyxDQUNwQjtNQUFDLENBQ007SUFBQyxDQUNRLENBQUM7RUFFMUI7RUFFQSxJQUFJTCxhQUFhLEtBQUtaLE9BQU8sQ0FBQzBCLGNBQWMsRUFBRTtJQUM1QyxvQkFDRXJCLElBQUEsQ0FBQ0YsbUJBQW1CO01BQUFrQixRQUFBLGVBQ2xCaEIsSUFBQSxDQUFDTixxQkFBcUI7UUFBQzRCLGdCQUFnQixFQUFFZCxRQUFRLENBQUNlO01BQUssQ0FBRTtJQUFDLENBQ3ZDLENBQUM7RUFFMUI7RUFFQSxJQUFJaEIsYUFBYSxLQUFLWixPQUFPLENBQUM2QixlQUFlLEVBQUU7SUFDN0Msb0JBQ0V4QixJQUFBLENBQUNGLG1CQUFtQjtNQUFBa0IsUUFBQSxlQUNsQmhCLElBQUEsQ0FBQ0oscUJBQXFCO1FBQUNZLFFBQVEsRUFBRUEsUUFBUSxDQUFDaUI7TUFBYSxDQUFFO0lBQUMsQ0FDdkMsQ0FBQztFQUUxQjtFQUVBLElBQUlsQixhQUFhLEtBQUtaLE9BQU8sQ0FBQytCLGNBQWMsRUFBRTtJQUM1QyxvQkFDRTFCLElBQUEsQ0FBQ0YsbUJBQW1CO01BQUFrQixRQUFBLGVBQ2xCaEIsSUFBQSxDQUFDSCxvQkFBb0I7UUFBQ1csUUFBUSxFQUFFQSxRQUFRLENBQUNpQjtNQUFhLENBQUU7SUFBQyxDQUN0QyxDQUFDO0VBRTFCO0VBRUEsb0JBQ0V6QixJQUFBLENBQUNGLG1CQUFtQjtJQUFBa0IsUUFBQSxlQUNsQmhCLElBQUEsQ0FBQ1AsVUFBVTtNQUFDZSxRQUFRLEVBQUVBLFFBQVM7TUFBQ21CLFdBQVcsRUFBRW5CLFFBQVEsQ0FBQ08sSUFBSztNQUFDSCxRQUFRLEVBQUVBLFFBQVM7TUFBQ0MsV0FBVyxFQUFFQTtJQUFZLENBQUU7RUFBQyxDQUN6RixDQUFDO0FBRTFCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -2,7 +2,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
/* eslint-disable react/function-component-definition */
|
|
3
3
|
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
4
4
|
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
5
|
-
/* eslint-disable no-console */
|
|
6
5
|
import { useEffect, useRef, useState, useCallback, useMemo } from 'react';
|
|
7
6
|
import { Template } from '@projectcor/icons/lib/components/Template';
|
|
8
7
|
import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
|
|
@@ -190,7 +189,7 @@ export var ChatAIHome = function ChatAIHome(_ref) {
|
|
|
190
189
|
expanded: expanded,
|
|
191
190
|
children: !isMAIA && (agent === null || agent === void 0 ? void 0 : agent.introduction)
|
|
192
191
|
})]
|
|
193
|
-
}), showProjectSummary && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
|
|
192
|
+
}), showProjectSummary && (agent === null || agent === void 0 ? void 0 : agent.entity) === 'project' && /*#__PURE__*/_jsxs(SCCAHWrapperSummaryProject, {
|
|
194
193
|
onClick: handlers.projectSummary,
|
|
195
194
|
children: [/*#__PURE__*/_jsx(SCCAIHomeProjectSummary, {
|
|
196
195
|
children: /*#__PURE__*/_jsx(Template, {
|
|
@@ -219,4 +218,4 @@ export var ChatAIHome = function ChatAIHome(_ref) {
|
|
|
219
218
|
})
|
|
220
219
|
});
|
|
221
220
|
};
|
|
222
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRlbXBsYXRlIiwiVG9vbHRpcCIsInVzZVQiLCJ1c2VVc2VyIiwiR0xPQkFMX0NPTE9SUyIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVFbXB0eUJ1dHRvbiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVHcmFkaWVudDEiLCJTQ0NBSUhvbWVHcmFkaWVudDIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkVtcHR5U3RhdGVBZ2VudHMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJoYXNOb0FnZW50cyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsInVzZXIiLCJldmVudCIsImlzTUFJQSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJzaG93RkFRcyIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl91c2VyJHBlcm1pc3Npb25zIiwiX3VzZXIkcGVybWlzc2lvbnMyIiwiY2hpbGRyZW4iLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJvbkNsaWNrIiwib3Blbk1vZGFsIiwib3B0aW9uIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwibmFtZSIsImNyZWF0ZWRfYnkiLCJ0aXRsZSIsImlzX2RlbGV0ZWQiLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImdhcCIsInJlZiIsIiRpc0FnZW50VmlldyIsIiRzaG93IiwiJGdhcCIsIiRtYXhXaWR0aCIsInByb2plY3RTdW1tYXJ5IiwiY29sb3IiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UZW1wbGF0ZSdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgR0xPQkFMX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lcixcbiAgU0NDQUlIb21lRW1wdHlUZXh0Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVFbXB0eURlc2NyaXB0aW9uLFxuICBTQ0NBSUhvbWVFbXB0eUJ1dHRvbixcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lR3JhZGllbnQxLFxuICBTQ0NBSUhvbWVHcmFkaWVudDIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEVtcHR5U3RhdGVBZ2VudHMgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlQWdlbnRzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBoYXNOb0FnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgaGFzTm9BZ2VudHMgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzKVxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaylcbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhc2hvd0ZBUXMpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtzaG93RkFRc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dGQVFzKSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvd0ZBUXMsIGNoZWNrU2Nyb2xsXSlcblxuICBpZiAoaGFzTm9BZ2VudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJSG9tZUVtcHR5Q29udGFpbmVyPlxuICAgICAgICAgICAgPEVtcHR5U3RhdGVBZ2VudHMgLz5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eVRleHRDb250YWluZXI+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57dCgnaG9tZU1lbnUubm9BZ2VudHMudGl0bGUnKX08L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lRW1wdHlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICB7dXNlci5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGVcbiAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUubm9BZ2VudHMuZGVzY3JpcHRpb25DcmVhdGUnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5ub0FnZW50cy5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIHt1c2VyLnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnbmV3X2FnZW50JyB9KVxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51Lm5vQWdlbnRzLmNyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlDb250YWluZXI+XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUdyYWRpZW50MSAvPlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudDIgLz5cbiAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17c2hvd0ZBUXN9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgKFxuICAgICAgICAgICAgPFNDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0IG9uQ2xpY2s9e2hhbmRsZXJzLnByb2plY3RTdW1tYXJ5fT5cbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZSBjb2xvcj17R0xPQkFMX0NPTE9SUy5wcmltYXJ5fSBoZWlnaHQ9ezI0fSB3aWR0aD17MjR9IC8+XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnk+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGU+e3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LnRpdGxlJyl9PC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LnByb2plY3RTdW1tYXJ5LmRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudD5cbiAgICAgICAgICAgIDwvU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3Q+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvd0ZBUXMgJiYgKFxuICAgICAgICAgICAgPEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1xuICAgICAgICAgICAgICBvblN0YXJ0Q2hhdD17b25TdGFydENoYXR9XG4gICAgICAgICAgICAgIHNob3dGQVFzPXtzaG93RkFRc31cbiAgICAgICAgICAgICAgc2hvd1Byb2plY3RTdW1tYXJ5PXtzaG93UHJvamVjdFN1bW1hcnl9XG4gICAgICAgICAgICAgIGFnZW50SWQ9e2FnZW50Py5pZH1cbiAgICAgICAgICAgICAgbGFuZz17bGFuZ31cbiAgICAgICAgICAgICAgaXNTY3JvbGxpbmc9e2lzU2Nyb2xsaW5nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUNvbnRlbnRJbm5lcj5cbiAgICAgICAge3Nob3dGQVFzICYmIDxTQ0NBSUhvbWVHcmFkaWVudEJvdHRvbSAkc2hvdz17c2hvd0JvdHRvbUdyYWRpZW50fSAvPn1cbiAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICA8L1NDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFFcEUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFFbkQsU0FBU0MsYUFBYSxRQUFRLHdCQUF3QjtBQUl0RCxTQUNFQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMscUJBQXFCLEVBQ3JCQyxvQkFBb0IsRUFDcEJDLHVCQUF1QixFQUN2QkMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJD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
|
|
221
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIlRlbXBsYXRlIiwiVG9vbHRpcCIsInVzZVQiLCJ1c2VVc2VyIiwiR0xPQkFMX0NPTE9SUyIsIlNDQ0FJSG9tZUNvbnRhaW5lciIsIlNDQ0FJSG9tZUNvbnRlbnQiLCJTQ0NBSUhvbWVDb250ZW50SW5uZXIiLCJTQ0NBSUhvbWVHcmFkaWVudFRvcCIsIlNDQ0FJSG9tZUdyYWRpZW50Qm90dG9tIiwiU0NDQUlIb21lSGVhZGVyIiwiU0NDQUlIb21lR3JlZXRpbmciLCJTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXIiLCJTQ0NBSUhvbWVBZ2VudEluZm8iLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5Q29udGVudCIsIlNDQ0FJSG9tZVByb2plY3RTdW1tYXJ5VGl0bGUiLCJTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uIiwiU0NDQUhXcmFwcGVyU3VtbWFyeVByb2plY3QiLCJTQ0NBSUhvbWVJbnRyb2R1Y3Rpb24iLCJTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIiLCJTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0IiwiU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWUiLCJTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lciIsIlNDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24iLCJTQ0NBSUhvbWVFbXB0eUJ1dHRvbiIsIlNDQ0FJSG9tZUljb25Db250YWluZXIiLCJTQ0NBSUhvbWVHcmFkaWVudDEiLCJTQ0NBSUhvbWVHcmFkaWVudDIiLCJTQ0NBSUhvbWVMb2dvV3JhcHBlciIsInVzZUdsb2JhbENvbnRleHQiLCJ2YWxpZGF0ZUlzTWFpYSIsIkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyIsIkVtcHR5U3RhdGVBZ2VudHMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk1BSUFJc29sb2dvIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyZXF1ZW50UXVlc3Rpb25zIiwiQ2hhdEFJSG9tZSIsIl9yZWYiLCJoYW5kbGVycyIsIm9uU3RhcnRDaGF0IiwiZXhwYW5kZWQiLCJoYXNOb0FnZW50cyIsIl91c2VUIiwidCIsImkxOG4iLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50Iiwic2VjdGlvbiIsInVzZXIiLCJldmVudCIsImlzTUFJQSIsImxhbmciLCJsYW5ndWFnZSIsInN1bW1hcnlQcm9qZWN0QWNjZXNzIiwid2luZG93IiwiU3RyaW5nIiwiTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MiLCJ0b0xvd2VyQ2FzZSIsIm1haWFQcm9qZWN0U3VtbWFyeUFjY2VzcyIsImZhcXNBY2Nlc3MiLCJzaG93UHJvamVjdFN1bW1hcnkiLCJzaG93RkFRcyIsImNvbnRlbnRDb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93VG9wR3JhZGllbnQiLCJzZXRTaG93VG9wR3JhZGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dCb3R0b21HcmFkaWVudCIsInNldFNob3dCb3R0b21HcmFkaWVudCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsInNjcm9sbFRpbWVvdXRSZWYiLCJncmVldGluZyIsImludHJvIiwiaW50cm9kdWN0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwiaWQiLCJjaGVja1Njcm9sbCIsImNvbnRhaW5lciIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc1Njcm9sbGFibGUiLCJpc0F0VG9wIiwiaXNBdEJvdHRvbSIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl91c2VyJHBlcm1pc3Npb25zIiwiX3VzZXIkcGVybWlzc2lvbnMyIiwiY2hpbGRyZW4iLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNyZWF0ZSIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJvbkNsaWNrIiwib3Blbk1vZGFsIiwib3B0aW9uIiwiZG9jdW1lbnQiLCJkaXNwYXRjaEV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJkZXRhaWwiLCJhZ2VudFZhbHVlcyIsImlzT3BlbiIsInJlbmRlckhlYWRlckNvbnRlbnQiLCJfYWdlbnQkY3JlYXRlZF9ieSIsIl9hZ2VudCRjcmVhdGVkX2J5MiIsImVtb2ppIiwibmFtZSIsImNyZWF0ZWRfYnkiLCJ0aXRsZSIsImlzX2RlbGV0ZWQiLCJzdHlsZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImdhcCIsInJlZiIsIiRpc0FnZW50VmlldyIsIiRzaG93IiwiJGdhcCIsIiRtYXhXaWR0aCIsImVudGl0eSIsInByb2plY3RTdW1tYXJ5IiwiY29sb3IiLCJwcmltYXJ5IiwiaGVpZ2h0Iiwid2lkdGgiLCJhZ2VudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUhvbWUvQ2hhdEFJSG9tZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UZW1wbGF0ZSdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgR0xPQkFMX0NPTE9SUyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5cbmltcG9ydCB7IG9wdGlvbnMgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9jb25zdGFudHMnXG5cbmltcG9ydCB7XG4gIFNDQ0FJSG9tZUNvbnRhaW5lcixcbiAgU0NDQUlIb21lQ29udGVudCxcbiAgU0NDQUlIb21lQ29udGVudElubmVyLFxuICBTQ0NBSUhvbWVHcmFkaWVudFRvcCxcbiAgU0NDQUlIb21lR3JhZGllbnRCb3R0b20sXG4gIFNDQ0FJSG9tZUhlYWRlcixcbiAgU0NDQUlIb21lR3JlZXRpbmcsXG4gIFNDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcixcbiAgU0NDQUlIb21lQWdlbnRJbmZvLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeSxcbiAgU0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50LFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlLFxuICBTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeURlc2NyaXB0aW9uLFxuICBTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCxcbiAgU0NDQUlIb21lSW50cm9kdWN0aW9uLFxuICBTQ0NBSUhvbWVDcmVhdGVkQnlDb250YWluZXIsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHQsXG4gIFNDQ0FJSG9tZUNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0NBSUhvbWVFbXB0eUNvbnRhaW5lcixcbiAgU0NDQUlIb21lRW1wdHlUZXh0Q29udGFpbmVyLFxuICBTQ0NBSUhvbWVFbXB0eURlc2NyaXB0aW9uLFxuICBTQ0NBSUhvbWVFbXB0eUJ1dHRvbixcbiAgU0NDQUlIb21lSWNvbkNvbnRhaW5lcixcbiAgU0NDQUlIb21lR3JhZGllbnQxLFxuICBTQ0NBSUhvbWVHcmFkaWVudDIsXG4gIFNDQ0FJSG9tZUxvZ29XcmFwcGVyLFxufSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uL2F0b21zL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7IEVtcHR5U3RhdGVBZ2VudHMgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eVN0YXRlQWdlbnRzJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9NQUlBSXNvbG9nbydcblxudHlwZSBDaGF0QUlIb21lUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICgpID0+IHZvaWQ+XG4gIGV4cGFuZGVkPzogYm9vbGVhblxuICBoYXNOb0FnZW50cz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gRnJlcXVlbnRRdWVzdGlvbnMge1xuICByZW50YWJpbGlkYWRfcHJveWVjdG8gPSAncmVudGFiaWxpZGFkX3Byb3llY3RvJyxcbiAgYXZhbmNlX3Byb3llY3RvID0gJ2F2YW5jZV9wcm95ZWN0bycsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlIb21lID0gKHsgaGFuZGxlcnMsIG9uU3RhcnRDaGF0LCBleHBhbmRlZCwgaGFzTm9BZ2VudHMgfTogQ2hhdEFJSG9tZVByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgYWdlbnQsIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBsYW5nID0gaTE4bi5sYW5ndWFnZSA9PT0gJ2JyJyA/ICdwdCcgOiBpMThuLmxhbmd1YWdlXG5cbiAgY29uc3Qgc3VtbWFyeVByb2plY3RBY2Nlc3MgPVxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgKFN0cmluZyh3aW5kb3cuTUFJQV9QUk9KRUNUX1NVTU1BUllfRkVBVFVSRV9BQ0NFU1MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyB8fFxuICAgICAgU3RyaW5nKHdpbmRvdy5tYWlhUHJvamVjdFN1bW1hcnlBY2Nlc3MpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJylcbiAgY29uc3QgZmFxc0FjY2VzcyA9IHRydWVcbiAgY29uc3Qgc2hvd1Byb2plY3RTdW1tYXJ5ID0gISEoaXNNQUlBICYmIHN1bW1hcnlQcm9qZWN0QWNjZXNzKVxuICBjb25zdCBzaG93RkFRcyA9ICEhKGlzTUFJQSAmJiBmYXFzQWNjZXNzKVxuXG4gIC8vIEzDs2dpY2EgZGVsIHNjcm9sbCBjb24gZ3JhZGllbnRlc1xuICBjb25zdCBjb250ZW50Q29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd1RvcEdyYWRpZW50LCBzZXRTaG93VG9wR3JhZGllbnRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93Qm90dG9tR3JhZGllbnQsIHNldFNob3dCb3R0b21HcmFkaWVudF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gU2FsdWRvIGFsZWF0b3JpbyBkZXNkZSBhZ2VudC5pbnRyb2R1Y3Rpb24gKGFycmF5IGNvbiAzIHZhcmlhbnRlcyBkZWwgYmFjaylcbiAgY29uc3QgZ3JlZXRpbmcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbnRybyA9IGFnZW50Py5pbnRyb2R1Y3Rpb25cbiAgICBpZiAoIWludHJvKSByZXR1cm4gJydcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnRybykgJiYgaW50cm8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludHJvW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGludHJvLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgaW50cm8gPT09ICdzdHJpbmcnID8gaW50cm8gOiAnJ1xuICB9LCBbYWdlbnQ/LmlkLCBhZ2VudD8uaW50cm9kdWN0aW9uLCBzZWN0aW9uXSlcblxuICBjb25zdCBjaGVja1Njcm9sbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXIgPSBjb250ZW50Q29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCAhc2hvd0ZBUXMpIHJldHVyblxuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcbiAgICBjb25zdCBpc1Njcm9sbGFibGUgPSBzY3JvbGxIZWlnaHQgPiBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBpc0F0VG9wID0gc2Nyb2xsVG9wID09PSAwXG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxXG5cbiAgICBzZXRTaG93VG9wR3JhZGllbnQoaXNTY3JvbGxhYmxlICYmICFpc0F0VG9wKVxuICAgIHNldFNob3dCb3R0b21HcmFkaWVudChpc1Njcm9sbGFibGUgJiYgIWlzQXRCb3R0b20pXG4gICAgc2V0SXNTY3JvbGxpbmcodHJ1ZSlcblxuICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuXG4gICAgc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyhmYWxzZSlcbiAgICB9LCAxNTApXG4gIH0sIFtzaG93RkFRc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dGQVFzKSB7XG4gICAgICBzZXRTaG93VG9wR3JhZGllbnQoZmFsc2UpXG4gICAgICBzZXRTaG93Qm90dG9tR3JhZGllbnQoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGVudENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjaGVja1Njcm9sbCgpXG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsKVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChjaGVja1Njcm9sbCwgMTAwKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja1Njcm9sbClcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgICBpZiAoc2Nyb2xsVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvd0ZBUXMsIGNoZWNrU2Nyb2xsXSlcblxuICBpZiAoaGFzTm9BZ2VudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJSG9tZUNvbnRhaW5lcj5cbiAgICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgICAgICAgPFNDQ0FJSG9tZUVtcHR5Q29udGFpbmVyPlxuICAgICAgICAgICAgPEVtcHR5U3RhdGVBZ2VudHMgLz5cbiAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eVRleHRDb250YWluZXI+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57dCgnaG9tZU1lbnUubm9BZ2VudHMudGl0bGUnKX08L1NDQ0FJSG9tZUdyZWV0aW5nPlxuICAgICAgICAgICAgICA8U0NDQUlIb21lRW1wdHlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICB7dXNlci5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzPy5jcmVhdGVcbiAgICAgICAgICAgICAgICAgID8gdCgnaG9tZU1lbnUubm9BZ2VudHMuZGVzY3JpcHRpb25DcmVhdGUnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdob21lTWVudS5ub0FnZW50cy5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5RGVzY3JpcHRpb24+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUVtcHR5VGV4dENvbnRhaW5lcj5cbiAgICAgICAgICAgIHt1c2VyLnBlcm1pc3Npb25zPy5haV9hZ2VudHM/LmNyZWF0ZSAmJiB3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyAmJiAoXG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVFbXB0eUJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5vcGVuTW9kYWwsIHsgb3B0aW9uOiAnbmV3X2FnZW50JyB9KVxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51Lm5vQWdlbnRzLmNyZWF0ZUFnZW50Jyl9XG4gICAgICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlCdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lRW1wdHlDb250YWluZXI+XG4gICAgICAgIDwvU0NDQUlIb21lQ29udGVudD5cbiAgICAgIDwvU0NDQUlIb21lQ29udGFpbmVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlbmRlckhlYWRlckNvbnRlbnQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ0NBSUhvbWVBZ2VudEluZm9Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICAgIHthZ2VudD8uZW1vaml9IHthZ2VudD8ubmFtZX1cbiAgICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mbz5cbiAgICAgICAgICB7YWdlbnQ/LmNyZWF0ZWRfYnkgJiYgIWlzTUFJQSAmJiAoXG4gICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgICAgICAgIGFnZW50Py5jcmVhdGVkX2J5Py5pc19kZWxldGVkID8gdCgnaG9tZU1lbnUuY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQnKSA6IHQoJ2hvbWVNZW51LmNyZWF0ZWRCeVRvb2x0aXAnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICAgICAge3QoJ2hvbWVNZW51LmNyZWF0ZWRCeScpfXsnICd9XG4gICAgICAgICAgICAgICAgICA8U0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+e2FnZW50Py5jcmVhdGVkX2J5Py5uYW1lfTwvU0NDQUlIb21lQ3JlYXRlZEJ5VGV4dE5hbWU+XG4gICAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVDcmVhdGVkQnlUZXh0PlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ0FJSG9tZUNyZWF0ZWRCeUNvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJSG9tZUFnZW50SW5mb0NvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiAnOHB4JyB9fT5cbiAgICAgICAgPFNDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgICAgPFNDQ0FJSG9tZUdyYWRpZW50MSAvPlxuICAgICAgICAgIDxTQ0NBSUhvbWVHcmFkaWVudDIgLz5cbiAgICAgICAgICA8U0NDQUlIb21lTG9nb1dyYXBwZXI+XG4gICAgICAgICAgICA8TUFJQUlzb2xvZ28gLz5cbiAgICAgICAgICA8L1NDQ0FJSG9tZUxvZ29XcmFwcGVyPlxuICAgICAgICA8L1NDQ0FJSG9tZUljb25Db250YWluZXI+XG4gICAgICAgIDxTQ0NBSUhvbWVHcmVldGluZz57Z3JlZXRpbmd9PC9TQ0NBSUhvbWVHcmVldGluZz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQ0FJSG9tZUNvbnRhaW5lciBzaG93RkFRcz17c2hvd0ZBUXN9PlxuICAgICAgPFNDQ0FJSG9tZUNvbnRlbnQgcmVmPXtjb250ZW50Q29udGFpbmVyUmVmfSBzaG93RkFRcz17c2hvd0ZBUXN9ICRpc0FnZW50Vmlldz17IWlzTUFJQX0+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRUb3AgJHNob3c9e3Nob3dUb3BHcmFkaWVudH0gLz59XG4gICAgICAgIDxTQ0NBSUhvbWVDb250ZW50SW5uZXIgc2hvd0ZBUXM9e3Nob3dGQVFzfSAkaXNBZ2VudFZpZXc9eyFpc01BSUF9PlxuICAgICAgICAgIDxTQ0NBSUhvbWVIZWFkZXJcbiAgICAgICAgICAgICRnYXA9e2lzTUFJQSAmJiBzZWN0aW9uICE9PSAncHJvamVjdCcgPyAnOHB4JyA6ICcyMHB4J31cbiAgICAgICAgICAgICRtYXhXaWR0aD17aXNNQUlBID8gJzEwMCUnIDogJzM4MHB4J31cbiAgICAgICAgICAgICRpc0FnZW50Vmlldz17IWlzTUFJQX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVySGVhZGVyQ29udGVudCgpfVxuXG4gICAgICAgICAgICB7c2VjdGlvbiAhPT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgICAgPFNDQ0FJSG9tZUludHJvZHVjdGlvbiBleHBhbmRlZD17ZXhwYW5kZWR9PnshaXNNQUlBICYmIGFnZW50Py5pbnRyb2R1Y3Rpb259PC9TQ0NBSUhvbWVJbnRyb2R1Y3Rpb24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU0NDQUlIb21lSGVhZGVyPlxuICAgICAgICAgIHtzaG93UHJvamVjdFN1bW1hcnkgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ3Byb2plY3QnICYmIChcbiAgICAgICAgICAgIDxTQ0NBSFdyYXBwZXJTdW1tYXJ5UHJvamVjdCBvbkNsaWNrPXtoYW5kbGVycy5wcm9qZWN0U3VtbWFyeX0+XG4gICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeT5cbiAgICAgICAgICAgICAgICA8VGVtcGxhdGUgY29sb3I9e0dMT0JBTF9DT0xPUlMucHJpbWFyeX0gaGVpZ2h0PXsyNH0gd2lkdGg9ezI0fSAvPlxuICAgICAgICAgICAgICA8L1NDQ0FJSG9tZVByb2plY3RTdW1tYXJ5PlxuICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlDb250ZW50PlxuICAgICAgICAgICAgICAgIDxTQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeVRpdGxlPnt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS50aXRsZScpfTwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgIHt0KCdob21lTWVudS5wcm9qZWN0U3VtbWFyeS5kZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvU0NDQUlIb21lUHJvamVjdFN1bW1hcnlEZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPC9TQ0NBSUhvbWVQcm9qZWN0U3VtbWFyeUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ0FIV3JhcHBlclN1bW1hcnlQcm9qZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3dGQVFzICYmIChcbiAgICAgICAgICAgIDxGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNcbiAgICAgICAgICAgICAgb25TdGFydENoYXQ9e29uU3RhcnRDaGF0fVxuICAgICAgICAgICAgICBzaG93RkFRcz17c2hvd0ZBUXN9XG4gICAgICAgICAgICAgIHNob3dQcm9qZWN0U3VtbWFyeT17c2hvd1Byb2plY3RTdW1tYXJ5fVxuICAgICAgICAgICAgICBhZ2VudElkPXthZ2VudD8uaWR9XG4gICAgICAgICAgICAgIGxhbmc9e2xhbmd9XG4gICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0NBSUhvbWVDb250ZW50SW5uZXI+XG4gICAgICAgIHtzaG93RkFRcyAmJiA8U0NDQUlIb21lR3JhZGllbnRCb3R0b20gJHNob3c9e3Nob3dCb3R0b21HcmFkaWVudH0gLz59XG4gICAgICA8L1NDQ0FJSG9tZUNvbnRlbnQ+XG4gICAgPC9TQ0NBSUhvbWVDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUVwRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsT0FBTyxRQUFRLDJCQUEyQjtBQUVuRCxTQUFTQyxhQUFhLFFBQVEsd0JBQXdCO0FBSXRELFNBQ0VDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsdUJBQXVCLEVBQ3ZCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNq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
|
|
@@ -663,4 +663,4 @@ var ChatAIMessagesInner = function ChatAIMessagesInner(_ref8) {
|
|
|
663
663
|
});
|
|
664
664
|
};
|
|
665
665
|
export var ChatAIMessages = /*#__PURE__*/React.memo(ChatAIMessagesInner);
|
|
666
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVVzZXIiLCJ1c2VUIiwidXNlQ2hhdE1hbmFnZXIiLCJ1c2VUYXNrUGFuZWwiLCJMb2FkaW5nVGV4dCIsIkxvYWRlciIsIk1lc3NhZ2VGcm9tVXNlciIsIk1lc3NhZ2VGcm9tT3RoZXIiLCJNZXNzYWdlQ29udGVudEZyb21Vc2VyIiwiTWVzc2FnZUNvbnRlbnRGcm9tT3RoZXIiLCJNZXNzYWdlRmVlZGJhY2siLCJTQ0NBSU1lc3NhZ2VXcmFwcGVyIiwiU2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJTQ01lc3NhZ2VzT3V0ZXIiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4iLCJTQ09wdGlvbnNMaXN0IiwiU0NPcHRpb25JdGVtIiwiU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiU0NBc3Npc3RhbnROYW1lIiwiU0NBc3Npc3RhbnRBdmF0YXIiLCJTQ1Rhc2tMaW5rIiwiU0NNZXNzYWdlSXRlbVdyYXBwZXIiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4iLCJGZWVkYmFjayIsInVzZUdsb2JhbENvbnRleHQiLCJNQUlBSXNvbG9nbyIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxBZ2VudCIsInNldExvY2FsQWdlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VsZWN0ZWRPcHRpb24iLCJzZXRTZWxlY3RlZE9wdGlvbiIsImhhbmRsZVNlbGVjdCIsIm9wdGlvbiIsIm1hcCIsIiRoYXNTZWxlY3Rpb24iLCIkZGltbWVkIiwiaWQiLCJvbkNsaWNrIiwibmFtZSIsIkFzc2lzdGFudE1lc3NhZ2VIZWFkZXIiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJUYXNrTGluayIsIl9yZWY0IiwidGFza0lkIiwidGFiU2VnbWVudCIsIl91c2VUYXNrUGFuZWwiLCJidWlsZE9wZW5UYXNrIiwib3BlblRhc2siLCJoYW5kbGVDbGljayIsImUiLCJtZXRhS2V5IiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0IiwiQ3VzdG9tTGluayIsIl9yZWY1IiwicmVzdCIsIl9leGNsdWRlZDMiLCJ0YXNrTWF0Y2giLCJSZWdFeHAiLCJNZXNzYWdlSXRlbSIsIl9yZWY2IiwiX3JlZjciLCJ1c2VyIiwibWVzc2FnZSIsImlzRXJyb3IiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsImRpc2FibGVGZWVkYmFjayIsInJvbGUiLCJzb3VyY2VzIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbCIsImFwcHJvdmFsU3RhdHVzIiwiZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidXJsIiwiaGFzIiwiYWRkIiwibWFya2Rvd25MaW5rUmVnZXgiLCJjb25jYXQiLCJyZXBsYWNlIiwibGlua01hdGNoIiwidGl0bGUiLCJwdXNoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJwcmV2aWV3QXR0YWNobWVudCIsInNldFByZXZpZXdBdHRhY2htZW50IiwiVVNFUiIsInRvU3RyaW5nIiwiaXNBc3Npc3RhbnQiLCJBU1NJU1RBTlQiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYXNGZWVkYmFjayIsIiRpc0Fzc2lzdGFudCIsIm1lc3NhZ2VFeHRyYUNvbnRlbnQiLCJoYW5kbGVGZWVkYmFja0NsaWNrIiwiZmVlZGJhY2siLCJzZXNzaW9uSWQiLCJzcGxpdCIsImZpbHRlciIsInF1ZXN0aW9uSWQiLCJqb2luIiwibGVuZ3RoIiwiaW5kZXgiLCJfYXR0YWNobWVudCR0eXBlIiwiX2F0dGFjaG1lbnQkbmFtZSIsImF0dGFjaG1lbnRUeXBlIiwidG9Mb3dlckNhc2UiLCJhdHRhY2htZW50TmFtZSIsImlzQXVkaW9GaWxlIiwic3RhcnRzV2l0aCIsImluY2x1ZGVzIiwic29tZSIsImV4dCIsImVuZHNXaXRoIiwicG9zaXRpb25JbmRleCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbiIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInN0YXR1cyIsIm9uQXBwcm92ZSIsInRocmVhZElkIiwib25SZWplY3QiLCJpc1Byb2plY3REZWxldGVkIiwicHJvamVjdE1ldGFkYXRhIiwiaXNfZGVsZXRlZCIsImlzRXhwYW5kZWQiLCJleHBhbmRlZCIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJjbGFzc05hbWUiLCJwbHVnaW5zIiwiY29tcG9uZW50cyIsImEiLCJsaW5rU2FmZXR5IiwiZW5hYmxlZCIsImlzQW5pbWF0aW5nIiwiaXNTdHJlYW1pbmciLCJzaGlraVRoZW1lIiwiY29udHJvbHMiLCJ0YWJsZSIsImNvbnRlbnQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY4IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJtZXNzYWdlc1JlZiIsImNoYXRJbml0aWFsaXplZFJlZiIsImlzTG9hZGluZ01vcmVSZWYiLCJ1c2VyU2Nyb2xsaW5nUmVmIiwic2Nyb2xsVGhyZXNob2xkUmVmIiwibGFzdFNjcm9sbFRvcFJlZiIsInNob3dTY3JvbGxUb0JvdHRvbVJlZiIsInNjcm9sbFJhZlJlZiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2hvd1Njcm9sbFRvQm90dG9tIiwic2V0U2hvd1Njcm9sbFRvQm90dG9tIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsImFjdGl2ZUxvYWRpbmdzIiwic2VuZE1lc3NhZ2UiLCJjaGFuZ2VQcm9qZWN0IiwiaW5pdGlhbGl6ZUNoYXQiLCJoYW5kbGVTY3JvbGwiLCJzdG9wR2VuZXJhdGlvbiIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJ0b3AiLCJzY3JvbGxIZWlnaHQiLCJiZWhhdmlvciIsInNldFRpbWVvdXQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInNob3VsZFNob3ciLCJoYW5kbGVTY3JvbGxUb0JvdHRvbSIsImNvbnRhaW5lciIsImN1cnJlbnRUYXJnZXQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzU2Nyb2xsaW5nVXAiLCJpc05lYXJCb3R0b20iLCJkaWRTZXRTdGF0ZSIsInNlbmRNZXNzYWdlUmVmIiwic3RvcEdlbmVyYXRpb25SZWYiLCJvblNlbmRNZXNzYWdlUmVhZHlSZWYiLCJsYXN0TWVzc2FnZSIsImhhc0FwcHJvdmFsIiwiaXNBdEJvdHRvbSIsInNjcm9sbFRvQm90dG9tIiwiX21lc3NhZ2VzUmVmJGN1cnJlbnQyIiwiaXNOZXdBbnN3ZXJNZXNzYWdlIiwiaXNOZXdVc2VyTWVzc2FnZSIsImlzTmV3QXBwcm92YWxNZXNzYWdlIiwiaGFzTWVzc2FnZXMiLCJpc05vdEluaXRpYWxNZXNzYWdlIiwibXNnIiwic2Nyb2xsRGVsYXkiLCJkb1Njcm9sbCIsIl9tZXNzYWdlc1JlZiRjdXJyZW50MyIsIl9tZXNzYWdlc1JlZiRjdXJyZW50NCIsImxhc3RVc2VyTWVzc2FnZSIsImF0IiwiaGFzQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJpc1Njcm9sbE9uUGFyZW50IiwibWVzc2FnZXNDb250ZW50IiwidGV4dCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJwcm9qZWN0IiwibWVzc2FnZUZlZWRiYWNrIiwid2FzSGVscGZ1bCIsIlRIVU1CU19VUCIsIlRIVU1CU19ET1dOIiwiaXNBc3Npc3RhbnRNZXNzYWdlIiwiaXNMYXN0TWVzc2FnZSIsImtleSIsImRhdGUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsIl9yZWY5IiwiX3JlZjAiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsImNvbG9yIiwiQ2hhdEFJTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvQ2hhdEFJTWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tdW5zdGFibGUtbmVzdGVkLWNvbXBvbmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8sIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nXG5pbXBvcnQgeyBjcmVhdGVDb2RlUGx1Z2luIH0gZnJvbSAnQHN0cmVhbWRvd24vY29kZSdcbmltcG9ydCB7IEFycm93U21hbGxEb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXJyb3dTbWFsbERvd24nXG5cbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBcHByb3ZhbEJveCB9IGZyb20gJy4uLy4uL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94J1xuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXdNb2RhbCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwnXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZEF1ZGlvIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmRBdWRpbydcbmltcG9ydCB7IE1BSUFNZXNzYWdlUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBTWVzc2FnZS9NQUlBTWVzc2FnZS5pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRIaXN0b3J5Um9sZSwgVGFza0luZm8gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBDT1JVc2VyLCB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VDaGF0TWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRNYW5hZ2VyL3VzZUNoYXRNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlVGFza1BhbmVsIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGFza1BhbmVsJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcblxuaW1wb3J0IHsgTWVzc2FnZUZyb21Vc2VyLCBNZXNzYWdlRnJvbU90aGVyLCBNZXNzYWdlQ29udGVudEZyb21Vc2VyLCBNZXNzYWdlQ29udGVudEZyb21PdGhlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgTWVzc2FnZUZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHtcbiAgU0NDQUlNZXNzYWdlV3JhcHBlcixcbiAgU2Nyb2xsVG9Cb3R0b21CdXR0b24sXG4gIFNDTWVzc2FnZXNPdXRlcixcbiAgU0NNZXNzYWdlc1Njcm9sbCxcbiAgU0NNZXNzYWdlc0lubmVyLFxuICBTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbixcbiAgU0NPcHRpb25zTGlzdCxcbiAgU0NPcHRpb25JdGVtLFxuICBTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXIsXG4gIFNDQXNzaXN0YW50TmFtZSxcbiAgU0NBc3Npc3RhbnRBdmF0YXIsXG4gIFNDVGFza0xpbmssXG4gIFNDTWVzc2FnZUl0ZW1XcmFwcGVyLFxuICBTQ01lc3NhZ2VJdGVtSW5uZXIsXG4gIFNDQXR0YWNobWVudHNSb3csXG4gIFNDQXBwcm92YWxBY3Rpb25zQ29sdW1uLFxufSBmcm9tICcuL25ld1N0eWxlcydcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXIgPSAoKSA9PiB7XG4gIGNvbnN0IFtsb2NhbEFnZW50LCBzZXRMb2NhbEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbEFnZW50KGFnZW50KVxuICB9LCBbYWdlbnRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQXNzaXN0YW50QXZhdGFyPlxuICAgICAge2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyA8TUFJQUlzb2xvZ28gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPiA6IGxvY2FsQWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlRmVlZGJhY2s6IChmZWVkYmFjazogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVBcHByb3ZhbERlY2lzaW9uOiAodGhyZWFkSWQ6IHN0cmluZywgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBNZXNzYWdlV3JhcHBlclByb3BzIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gICdkYXRhLW1lc3NhZ2UtaWQnPzogc3RyaW5nXG4gIGhhc0ZlZWRiYWNrPzogYm9vbGVhblxufVxuXG50eXBlIE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzID0gTUFJQU1lc3NhZ2VQcm9wcyAmIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG59XG5cbmNvbnN0IE1lc3NhZ2VXcmFwcGVyOiBGQzxNZXNzYWdlV3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUZyb21Vc2VyIDogTWVzc2FnZUZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb21wb25lbnQgey4uLnByb3BzfT57Y2hpbGRyZW59PC9NZXNzYWdlQ29tcG9uZW50PlxufVxuXG5jb25zdCBNZXNzYWdlQ29udGVudFdyYXBwZXI6IEZDPE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUNvbnRlbnRGcm9tVXNlciA6IE1lc3NhZ2VDb250ZW50RnJvbU90aGVyXG4gIHJldHVybiA8TWVzc2FnZUNvbnRlbnRDb21wb25lbnQgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBNZXNzYWdlT3B0aW9ucyh7XG4gIG9wdGlvbnMsXG4gIGhhbmRsZVNlbGVjdE9wdGlvbixcbn06IHtcbiAgb3B0aW9uczogUHJvamVjdFtdIHwgbnVsbFxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkT3B0aW9uKSByZXR1cm5cbiAgICBzZXRTZWxlY3RlZE9wdGlvbihvcHRpb24pXG4gICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbilcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDT3B0aW9uc0xpc3Q+XG4gICAgICB7KG9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKFxuICAgICAgICA8U0NPcHRpb25JdGVtXG4gICAgICAgICAgJGhhc1NlbGVjdGlvbj17ISFzZWxlY3RlZE9wdGlvbn1cbiAgICAgICAgICAkZGltbWVkPXshIXNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChvcHRpb24pfVxuICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbi5uYW1lfVxuICAgICAgICA8L1NDT3B0aW9uSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU0NPcHRpb25zTGlzdD5cbiAgKVxufVxuXG5jb25zdCBBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gKCkgPT4ge1xuICBjb25zdCBbbG9jYWxBZ2VudCwgc2V0TG9jYWxBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxBZ2VudChhZ2VudClcbiAgfSwgW2FnZW50XSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gICAgICA8QXNzaXN0YW50QXZhdGFyIC8+XG4gICAgICB7bG9jYWxBZ2VudD8ubmFtZSAmJiAoXG4gICAgICAgIDxTQ0Fzc2lzdGFudE5hbWU+e2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyAnTUFJQScgOiBsb2NhbEFnZW50Py5uYW1lfTwvU0NBc3Npc3RhbnROYW1lPlxuICAgICAgKX1cbiAgICA8L1NDQXNzaXN0YW50TWVzc2FnZUhlYWRlcj5cbiAgKVxufVxuXG4vLyBFeHRyYWUgZWwgc2VnbWVudG8gZGUgdGFiIChkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSBkZWwgaHJlZiBwYXJhIGFicmlyIGVsIG1vZGFsIGNvbiBlbCB0YWIgY29ycmVjdG9cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBkaXNhYmxlRmVlZGJhY2ssXG4gICAgcm9sZSxcbiAgICBzb3VyY2VzLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIGFwcHJvdmFsLFxuICAgIGFwcHJvdmFsU3RhdHVzLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBleHRyYWN0VGFza3NGcm9tTWVzc2FnZSA9IChtZXNzYWdlOiBzdHJpbmcpOiBUYXNrSW5mb1tdID0+IHtcbiAgICBpZiAoIW1lc3NhZ2UpIHJldHVybiBbXVxuXG4gICAgLy8gTWF0Y2ggVVJMcyBsaWtlOiAuLi4vdGFza3MvMTIzNDU2LyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhc2tzOiBUYXNrSW5mb1tdID0gW11cbiAgICBjb25zdCBzZWVuSWRzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IG51bGxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0YXNrSWQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMF1cblxuICAgICAgaWYgKCFzZWVuSWRzLmhhcyh0YXNrSWQpKSB7XG4gICAgICAgIHNlZW5JZHMuYWRkKHRhc2tJZClcblxuICAgICAgICAvLyBUcnkgdG8gZXh0cmFjdCB0aGUgdGFzayB0aXRsZSBmcm9tIG1hcmtkb3duIGxpbmsgW3RpdGxlXSh1cmwpXG4gICAgICAgIGNvbnN0IG1hcmtkb3duTGlua1JlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXFsoW15cXFxcXV0rKVxcXFxdXFxcXCgke3VybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpfVxcXFwpYClcbiAgICAgICAgY29uc3QgbGlua01hdGNoID0gbWVzc2FnZS5tYXRjaChtYXJrZG93bkxpbmtSZWdleClcbiAgICAgICAgY29uc3QgdGl0bGUgPSBsaW5rTWF0Y2ggPyBsaW5rTWF0Y2hbMV0gOiBgVGFyZWEgIyR7dGFza0lkfWBcblxuICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICBpZDogdGFza0lkLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFza3NcbiAgfVxuXG4gIGNvbnN0IFtwcmV2aWV3QXR0YWNobWVudCwgc2V0UHJldmlld0F0dGFjaG1lbnRdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGUgfCBudWxsPihudWxsKVxuICBjb25zdCBpc0N1cnJlbnRVc2VyID0gcm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgdXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKVxuICBjb25zdCBpc0Fzc2lzdGFudCA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQgfHwgdXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcblxuICBjb25zdCBoYW5kbGVBdHRhY2htZW50Q2xpY2sgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpID0+IHtcbiAgICAvLyBQZXJtaXRpciBwcmV2aXN1YWxpemFjacOzbiBzaSB0aWVuZSBhcmNoaXZvIGxvY2FsIG8gVVJMcyBkZWwgYmFja2VuZFxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIGlmIChpc0NoYW5nZVByb2plY3QgJiYgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVzc2FnZVdyYXBwZXIga2V5PXtpZH0gaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn0gZGF0YS1tZXNzYWdlLWlkPXtpZH0gaGFzRmVlZGJhY2s9e2ZhbHNlfT5cbiAgICAgICAgPFNDTWVzc2FnZUl0ZW1XcmFwcGVyICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgIHtpc0Fzc2lzdGFudCAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgICAgICA8TWVzc2FnZUNvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgICBpc0NoYW5nZVByb2plY3Q9e2lzQ2hhbmdlUHJvamVjdH1cbiAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XG4gICAgICAgICAgICBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgaXNFcnJvcj17aXNFcnJvcn1cbiAgICAgICAgICAgIG1lc3NhZ2VFeHRyYUNvbnRlbnQ9ezxNZXNzYWdlT3B0aW9ucyBvcHRpb25zPXtvcHRpb25zIGFzIGFueX0gaGFuZGxlU2VsZWN0T3B0aW9uPXtoYW5kbGVTZWxlY3RPcHRpb259IC8+fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NNZXNzYWdlSXRlbVdyYXBwZXI+XG4gICAgICA8L01lc3NhZ2VXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrQ2xpY2sgPSAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gaWRcbiAgICAgIC5zcGxpdCgnLScpXG4gICAgICAuZmlsdGVyKHF1ZXN0aW9uSWQgPT4gcXVlc3Rpb25JZCAhPT0gJ2Fuc3dlcicpXG4gICAgICAuam9pbignLScpXG4gICAgaGFuZGxlRmVlZGJhY2s/LihmZWVkYmFjaywgc2Vzc2lvbklkKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICB7aXNBc3Npc3RhbnQgJiYgPEFzc2lzdGFudE1lc3NhZ2VIZWFkZXIgLz59XG4gICAgICA8U0NNZXNzYWdlSXRlbUlubmVyPlxuICAgICAgICB7ISEoYXR0YWNobWVudHMgfHwgc291cmNlcyk/Lmxlbmd0aCAmJiAhaXNBc3Npc3RhbnQgJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICAgICAgeyhhdHRhY2htZW50cyB8fCBzb3VyY2VzKT8ubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAvLyBEZXRlY3RhciBzaSBlcyB1biBhcmNoaXZvIGRlIGF1ZGlvXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRUeXBlID0gYXR0YWNobWVudD8udHlwZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50TmFtZSA9IGF0dGFjaG1lbnQ/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgfHwgJydcbiAgICAgICAgICAgICAgY29uc3QgaXNBdWRpb0ZpbGUgPVxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRUeXBlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpIHx8XG4gICAgICAgICAgICAgICAgWydmbGFjJywgJ200YScsICdtcDMnLCAnbXA0JywgJ29nYScsICdvZ2cnLCAnd2F2JywgJ3dlYm0nXS5pbmNsdWRlcyhhdHRhY2htZW50VHlwZSkgfHxcbiAgICAgICAgICAgICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lLmVuZHNXaXRoKGV4dClcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKGlzQXVkaW9GaWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdHRhY2htZW50Q2FyZEF1ZGlvIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH0gYXR0YWNobWVudD17YXR0YWNobWVudH0gLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2F0dGFjaG1lbnQuaWR9LSR7YXR0YWNobWVudC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25JbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBdHRhY2htZW50Q2xpY2soYXR0YWNobWVudCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICApfVxuICAgICAgICB7YXBwcm92YWwgJiYgYXBwcm92YWwucGVuZGluZ19hY3Rpb25zICYmIChcbiAgICAgICAgICA8U0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4+XG4gICAgICAgICAgICB7YXBwcm92YWwucGVuZGluZ19hY3Rpb25zLm1hcChhY3Rpb24gPT4gKFxuICAgICAgICAgICAgICA8QXBwcm92YWxCb3hcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2FjdGlvbi50aHJlYWRfaWR9LSR7YWN0aW9uLnRvb2xfY2FsbF9pZH1gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgICAgb25BcHByb3ZlPXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICAgIG9uUmVqZWN0PXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgICAgaXNQcm9qZWN0RGVsZXRlZD17cHJvcHMucHJvamVjdE1ldGFkYXRhPy5pc19kZWxldGVkID09PSB0cnVlfVxuICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3Byb3BzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhbWVzc2FnZSAmJlxuICAgICAgICAgIC8vIFNpIGhheSBhcHByb3ZhbCAoZGlzdGludG8gZGUgbnVsbCksIG5vIHJlbmRlcml6YXIgZWwgYW5zd2VyIGVuIGVzdGUgbWVuc2FqZVxuICAgICAgICAgIC8vIEVsIG1lbnNhamUgZGUgcmVjaGF6byBzZSByZW5kZXJpemEgY29tbyBtZW5zYWplIHNlcGFyYWRvXG4gICAgICAgICAgIWFwcHJvdmFsICYmIChcbiAgICAgICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNBc3Npc3RhbnQgJiYgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UobWVzc2FnZSkubGVuZ3RoID4gMCA/ICdoYXMtdGFzay1saW5rcycgOiAnJ31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIGxpbmtTYWZldHkgbW9kYWwgZGVzaGFiaWxpdGFkbyBwb3IgZWwgbW9tZW50bzogbGlua1NhZmV0eT17eyBlbmFibGVkOiB0cnVlIH19ICovfVxuICAgICAgICAgICAgICA8U3RyZWFtZG93blxuICAgICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgICAgbGlua1NhZmV0eT17eyBlbmFibGVkOiBmYWxzZSB9fVxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW5nPXshIXByb3BzLmlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPXt7IHRhYmxlOiBmYWxzZSwgY29kZTogZmFsc2UgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICA8L1N0cmVhbWRvd24+XG4gICAgICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc0Vycm9yICYmICFwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkICYmICFhcHByb3ZhbCAmJiAoXG4gICAgICAgICAgPE1lc3NhZ2VGZWVkYmFja1xuICAgICAgICAgICAgY29udGVudD17bWVzc2FnZX1cbiAgICAgICAgICAgIHNvdXJjZXM9e3NvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17aGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17ZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDTWVzc2FnZUl0ZW1Jbm5lcj5cbiAgICAgIDxBdHRhY2htZW50UHJldmlld01vZGFsXG4gICAgICAgIGlzT3Blbj17ISFwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VQcmV2aWV3fVxuICAgICAgICBhdHRhY2htZW50PXtwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgIC8+XG4gICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgKVxufSlcblxuY29uc3QgQ2hhdEFJTWVzc2FnZXNJbm5lciA9ICh7XG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgaW5pdGlhbENoYXRJZCxcbiAgb25FcnJvcixcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBvblNjcm9sbFRvQm90dG9tLFxuICBhdHRhY2htZW50cyxcbiAgYWdlbnRzLFxuICBleHBhbmRlZCxcbn06IENoYXRBSU1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgYXV0aFVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNoYXRJbml0aWFsaXplZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgdXNlclNjcm9sbGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGhyZXNob2xkUmVmID0gdXNlUmVmKDM5KVxuICBjb25zdCBsYXN0U2Nyb2xsVG9wUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNob3dTY3JvbGxUb0JvdHRvbVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsUmFmUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93U2Nyb2xsVG9Cb3R0b20sIHNldFNob3dTY3JvbGxUb0JvdHRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgc3RvcEdlbmVyYXRpb24sXG4gIH0gPSB1c2VDaGF0TWFuYWdlcih7XG4gICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgb25FcnJvcixcbiAgICBhdHRhY2htZW50cyxcbiAgICBhZ2VudHMsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGNoYW5nZVByb2plY3Qob3B0aW9uKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pXG4gICAgICAvLyBBY3R1YWxpemFyIGVzdGFkbyBkZXNwdcOpcyBkZSB1biBicmV2ZSBkZWxheSBwYXJhIHBlcm1pdGlyIHF1ZSBlbCBzY3JvbGwgc2UgY29tcGxldGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9LCA1MDApXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgICAgIGlmIChzY3JvbGxSYWZSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShzY3JvbGxSYWZSZWYuY3VycmVudClcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxSYWZSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcblxuICAgICAgICBjb25zdCBpc1Njcm9sbGluZ1VwID0gc2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcFJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKGlzU2Nyb2xsaW5nVXApIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDE1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQgPCBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20pIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgICAgIH1cblxuICAgICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSAhaXNOZWFyQm90dG9tXG4gICAgICAgIGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudCA9IHNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgY29uc3QgZGlkU2V0U3RhdGUgPSBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCAhPT0gc2hvdWxkU2hvd1xuICAgICAgICBpZiAoZGlkU2V0U3RhdGUpIHtcbiAgICAgICAgICBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCA9IHNob3VsZFNob3dcbiAgICAgICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20gJiYgb25TY3JvbGxUb0JvdHRvbSkge1xuICAgICAgICAgIG9uU2Nyb2xsVG9Cb3R0b20oKVxuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKGNvbnRhaW5lcilcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbb25TY3JvbGxUb0JvdHRvbSwgaGFuZGxlU2Nyb2xsXVxuICApXG5cbiAgLy8gcmVmcyB0byBzdGFiaWxpemUgZnVuY3Rpb25zIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gIGNvbnN0IHNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKHNlbmRNZXNzYWdlKVxuICBjb25zdCBzdG9wR2VuZXJhdGlvblJlZiA9IHVzZVJlZihzdG9wR2VuZXJhdGlvbilcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlYWR5UmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2VSZWFkeSlcblxuICAvLyB1cGRhdGUgcmVmcyB3aGVuIGZ1bmN0aW9ucyBjaGFuZ2VcbiAgc2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IHNlbmRNZXNzYWdlXG4gIHN0b3BHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBzdG9wR2VuZXJhdGlvblxuICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VSZWFkeVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uU2VuZE1lc3NhZ2VSZWFkeVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudChzZW5kTWVzc2FnZVJlZi5jdXJyZW50LCBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50LCB3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZylcbiAgICB9XG4gIH0sIFt3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlTWVzc2FnZXNcbiAgfSwgW2lzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgLy8gQ3VhbmRvIGVsIGFnZW50ZSBlbXBpZXphIGEgcmVzcG9uZGVyLCByZXNldGVhciBlbCBmbGFnIHkgZWwgdW1icmFsIHBhcmEgYWN0aXZhciBlbCBhdXRvLXNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UpIHtcbiAgICAgIHVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdEluaXRpYWxpemVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaW5pdGlhbGl6ZUNoYXQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gU2Nyb2xsIGN1YW5kbyBsbGVnYSB1biBtZW5zYWplIGRlIGFwcm9iYWNpw7NuIChBcHByb3ZhbEJveCkuIFNpbiBSZXNpemVPYnNlcnZlciBlbiBlbFxuICAvLyBjb250ZW5lZG9yOiBvYnNlcnZhcmxvIGRpc3BhcmFiYSBjYWxsYmFja3MgYWwgY2FtYmlhciBlbCBsYXlvdXQvc2Nyb2xsYmFyIHkgY2FkYSB1bm9cbiAgLy8gbGxhbWFiYSBzY3JvbGxUb0JvdHRvbSgpLCBwcm92b2NhbmRvIHRpcm9uZXMgYWwgc2Nyb2xsZWFyLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWVzc2FnZXNSZWYuY3VycmVudCB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGhhc0FwcHJvdmFsID0gbGFzdE1lc3NhZ2UgJiYgKGxhc3RNZXNzYWdlLmlkLnN0YXJ0c1dpdGgoJ2FwcHJvdmFsLScpIHx8ICEhbGFzdE1lc3NhZ2UuYXBwcm92YWwpXG5cbiAgICBpZiAoIWhhc0FwcHJvdmFsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG5cbiAgICBpZiAoIShpc0F0Qm90dG9tIHx8ICF1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbFRvcCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdWVuY2lhIGluaWNpYWwgZGUgc2Nyb2xsIHBhcmEgY3VhbmRvIGVsIEFwcHJvdmFsQm94IGFjYWJhIGRlIHJlbmRlcml6YXJzZVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVG9Cb3R0b20sIDEwMClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTaSBlbCB1c3VhcmlvIGVzdMOhIHNjcm9sbGVhbmRvIG1hbnVhbG1lbnRlLCBubyBoYWNlciBhdXRvIHNjcm9sbFxuICAgIGlmICh1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgJiYgd2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlICYmIG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50IHx8IGxvYWRpbmdNZXNzYWdlcyB8fCBpc0xvYWRpbmdNb3JlTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICBjb25zdCBsYXN0TWVzc2FnZSA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdXG5cbiAgICBjb25zdCBpc05ld0Fuc3dlck1lc3NhZ2UgPSBsYXN0TWVzc2FnZSAmJiBsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhbnN3ZXItJylcbiAgICBjb25zdCBpc05ld1VzZXJNZXNzYWdlID0gbGFzdE1lc3NhZ2UgJiYgbGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgncXVlc3Rpb24tJylcbiAgICBjb25zdCBpc05ld0FwcHJvdmFsTWVzc2FnZSA9IGxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhcHByb3ZhbC0nKSB8fCAhIWxhc3RNZXNzYWdlLmFwcHJvdmFsKVxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG4gICAgY29uc3QgaGFzTWVzc2FnZXMgPSAhIW1lc3NhZ2VzLmxlbmd0aFxuICAgIGNvbnN0IGlzTm90SW5pdGlhbE1lc3NhZ2UgPSAhbWVzc2FnZXMuc29tZShtc2cgPT4gbXNnLmlkID09PSAndXNlci1pbml0aWFsLW1lc3NhZ2UnKVxuXG4gICAgaWYgKChpc05ld0Fuc3dlck1lc3NhZ2UgfHwgaXNOZXdVc2VyTWVzc2FnZSB8fCBpc05ld0FwcHJvdmFsTWVzc2FnZSkgJiYgaXNBdEJvdHRvbSkge1xuICAgICAgLy8gUGFyYSBtZW5zYWplcyBkZSBhcHJvYmFjacOzbiwgdXNhciB1biBwZXF1ZcOxbyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBBcHByb3ZhbEJveCBzZSBoYXlhIHJlbmRlcml6YWRvXG4gICAgICBjb25zdCBzY3JvbGxEZWxheSA9IGlzTmV3QXBwcm92YWxNZXNzYWdlID8gMTAwIDogMFxuICAgICAgY29uc3QgZG9TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgICAgc2V0U2hvd1Njcm9sbFRvQm90dG9tKHNob3VsZFNob3cpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHNjcm9sbERlbGF5ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KGRvU2Nyb2xsLCBzY3JvbGxEZWxheSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvU2Nyb2xsKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaGFzTWVzc2FnZXMgJiZcbiAgICAgIGlzTm90SW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAgICFpc05ld0Fuc3dlck1lc3NhZ2UgJiZcbiAgICAgICFpc05ld1VzZXJNZXNzYWdlICYmXG4gICAgICAhaXNOZXdBcHByb3ZhbE1lc3NhZ2VcbiAgICApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgd2FpdGluZ1Jlc3BvbnNlXSlcblxuICAvLyBWZXJpZmljYXIgZWwgZXN0YWRvIGluaWNpYWwgZGVsIHNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50ICYmICFsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcbiAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgPSBzaG91bGRTaG93XG4gICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICB9XG4gIH0sIFtsb2FkaW5nTWVzc2FnZXMsIG1lc3NhZ2VzLmxlbmd0aF0pXG5cbiAgLy8gT2J0ZW5lciBlbCDDumx0aW1vIG1lbnNhamUgZGVsIHVzdWFyaW8gcGFyYSB2ZXJpZmljYXIgc2kgdGllbmUgYXR0YWNobWVudHNcbiAgY29uc3QgbGFzdFVzZXJNZXNzYWdlID0gbWVzc2FnZXNcbiAgICAuZmlsdGVyKG1zZyA9PiBtc2cucm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgbXNnLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkpXG4gICAgLmF0KC0xKVxuXG4gIGNvbnN0IGhhc0F0dGFjaG1lbnRzID1cbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LmF0dGFjaG1lbnRzKSAmJiBsYXN0VXNlck1lc3NhZ2UuYXR0YWNobWVudHMubGVuZ3RoKSB8fFxuICAgIChBcnJheS5pc0FycmF5KGxhc3RVc2VyTWVzc2FnZT8uc291cmNlcykgJiYgbGFzdFVzZXJNZXNzYWdlLnNvdXJjZXMubGVuZ3RoKVxuXG4gIGNvbnN0IGlzU2Nyb2xsT25QYXJlbnQgPSAhIWV4cGFuZGVkXG5cbiAgY29uc3QgbWVzc2FnZXNDb250ZW50ID0gKFxuICAgIDw+XG4gICAgICB7aXNMb2FkaW5nTW9yZU1lc3NhZ2VzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdjaGF0LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAge21lc3NhZ2VzLm1hcCgobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoIHx8IG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoKSAmJlxuICAgICAgICAgICFtZXNzYWdlLm1lc3NhZ2UgJiZcbiAgICAgICAgICAhbWVzc2FnZS5wcm9qZWN0Py5uYW1lICYmXG4gICAgICAgICAgIW1lc3NhZ2UuYXBwcm92YWxcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VGZWVkYmFjayA9XG4gICAgICAgICAgbWVzc2FnZT8ud2FzSGVscGZ1bCA9PT0gdW5kZWZpbmVkIHx8IG1lc3NhZ2Uud2FzSGVscGZ1bCA9PT0gbnVsbFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IG1lc3NhZ2Uud2FzSGVscGZ1bFxuICAgICAgICAgICAgICA/IEZlZWRiYWNrLlRIVU1CU19VUFxuICAgICAgICAgICAgICA6IEZlZWRiYWNrLlRIVU1CU19ET1dOXG5cbiAgICAgICAgY29uc3QgaXNBc3Npc3RhbnRNZXNzYWdlID0gbWVzc2FnZS5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IG1lc3NhZ2UudXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcbiAgICAgICAgY29uc3QgaXNMYXN0TWVzc2FnZSA9IGluZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxXG4gICAgICAgIGNvbnN0IGlzU3RyZWFtaW5nID0gaXNBc3Npc3RhbnRNZXNzYWdlICYmIGlzTGFzdE1lc3NhZ2UgJiYgKHdhaXRpbmdSZXNwb25zZSB8fCBpc1dyaXRpbmcpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TWVzc2FnZUl0ZW1cbiAgICAgICAgICAgIHsuLi5tZXNzYWdlfVxuICAgICAgICAgICAga2V5PXttZXNzYWdlLmlkICE9IG51bGwgPyBgJHttZXNzYWdlLmlkfS0ke21lc3NhZ2UuZGF0ZX1gIDogYG1zZy0ke2luZGV4fWB9XG4gICAgICAgICAgICBhdXRoVXNlcj17YXV0aFVzZXJ9XG4gICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrPXtoYW5kbGVGZWVkYmFja31cbiAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb249e2hhbmRsZUFwcHJvdmFsRGVjaXNpb259XG4gICAgICAgICAgICBkaXNhYmxlRmVlZGJhY2s9e21lc3NhZ2VGZWVkYmFja31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICAgIHsod2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlIHx8IE9iamVjdC5rZXlzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgIDxTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICAgICB7KHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZSkgJiYgKFxuICAgICAgICAgICAgPExvYWRpbmdUZXh0XG4gICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgIGxvYWRpbmdNZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgKGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgICAgICAgICAgICAgICA/ICdCdXNjYW5kbyBlbiBsYSB3ZWInXG4gICAgICAgICAgICAgICAgICA6IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/IHQoJ2NoYXQuZ2VuZXJhdGluZ0RlZXBTZWFyY2gnKVxuICAgICAgICAgICAgICAgICAgICA6IGhhc0F0dGFjaG1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgPyB0KCdjaGF0LmdlbmVyYXRpbmdBdHRhY2htZW50JylcbiAgICAgICAgICAgICAgICAgICAgICA6IHQoJ2NoYXQuZ2VuZXJhdGluZycpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5tYXAoKFt0aHJlYWRJZCwgbWVzc2FnZV0pID0+IChcbiAgICAgICAgICAgIDxMb2FkaW5nVGV4dCBrZXk9e2Bsb2FkaW5nLSR7dGhyZWFkSWR9YH0gdGV4dD17bWVzc2FnZX0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VzT3V0ZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT5cbiAgICAgIHtpc1Njcm9sbE9uUGFyZW50ID8gKFxuICAgICAgICA8U0NNZXNzYWdlc1Njcm9sbCByZWY9e21lc3NhZ2VzUmVmfSBvblNjcm9sbD17aGFuZGxlU2Nyb2xsVG9Cb3R0b219PlxuICAgICAgICAgIDxTQ01lc3NhZ2VzSW5uZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT57bWVzc2FnZXNDb250ZW50fTwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgICA8L1NDTWVzc2FnZXNTY3JvbGw+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNZXNzYWdlc0lubmVyIHJlZj17bWVzc2FnZXNSZWZ9IG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGxUb0JvdHRvbX0gJHNjcm9sbE9uUGFyZW50PXtmYWxzZX0+XG4gICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgPC9TQ01lc3NhZ2VzSW5uZXI+XG4gICAgICApfVxuXG4gICAgICB7c2hvd1Njcm9sbFRvQm90dG9tICYmIChcbiAgICAgICAgPFNjcm9sbFRvQm90dG9tQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Njcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8QXJyb3dTbWFsbERvd24gY29sb3I9XCIjNjY2XCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvU2Nyb2xsVG9Cb3R0b21CdXR0b24+XG4gICAgICApfVxuXG4gICAgICB7bG9hZGluZ01lc3NhZ2VzICYmIDxMb2FkZXIgLz59XG4gICAgPC9TQ01lc3NhZ2VzT3V0ZXI+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1lc3NhZ2VzID0gUmVhY3QubWVtbyhDaGF0QUlNZXNzYWdlc0lubmVyKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLElBQVFDLElBQUksRUFBYUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFBQyxhQUFBLElBQUFDLGNBQUEsUUFBUSxPQUFPO0FBQzVGLFNBQVNDLFVBQVUsUUFBUSxZQUFZO0FBQ3ZDLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsaURBQWlEO0FBRWhGLFNBQVNDLGNBQWMsUUFBUSwyQ0FBMkM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLHFDQUFxQztBQUNqRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFDM0UsU0FBU0MsbUJBQW1CLFFBQVEsZ0RBQWdEO0FBRXBGLFNBQXNCQyxlQUFlLFFBQWtCLHFCQUFxQjtBQUU1RSxTQUFrQkMsT0FBTyxRQUFRLDJCQUEyQjtBQUU1RCxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGNBQWMsUUFBUSw4Q0FBOEM7QUFDN0UsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUUxRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFJM0MsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsc0JBQXNCLEVBQUVDLHVCQUF1QixRQUFRLFVBQVU7QUFDN0csU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUNFQyxtQkFBbUIsRUFDbkJDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGVBQWUsRUFDZkMsdUJBQXVCLEVBQ3ZCQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsd0JBQXdCLEVBQ3hC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
|
|
666
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsInVzZVVzZXIiLCJ1c2VUIiwidXNlQ2hhdE1hbmFnZXIiLCJ1c2VUYXNrUGFuZWwiLCJMb2FkaW5nVGV4dCIsIkxvYWRlciIsIk1lc3NhZ2VGcm9tVXNlciIsIk1lc3NhZ2VGcm9tT3RoZXIiLCJNZXNzYWdlQ29udGVudEZyb21Vc2VyIiwiTWVzc2FnZUNvbnRlbnRGcm9tT3RoZXIiLCJNZXNzYWdlRmVlZGJhY2siLCJTQ0NBSU1lc3NhZ2VXcmFwcGVyIiwiU2Nyb2xsVG9Cb3R0b21CdXR0b24iLCJTQ01lc3NhZ2VzT3V0ZXIiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4iLCJTQ09wdGlvbnNMaXN0IiwiU0NPcHRpb25JdGVtIiwiU0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiU0NBc3Npc3RhbnROYW1lIiwiU0NBc3Npc3RhbnRBdmF0YXIiLCJTQ1Rhc2tMaW5rIiwiU0NNZXNzYWdlSXRlbVdyYXBwZXIiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4iLCJGZWVkYmFjayIsInVzZUdsb2JhbENvbnRleHQiLCJNQUlBSXNvbG9nbyIsIlRBU0tfVVJMX1JFR0VYX1BBVFRFUk4iLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFyIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxBZ2VudCIsInNldExvY2FsQWdlbnQiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VsZWN0ZWRPcHRpb24iLCJzZXRTZWxlY3RlZE9wdGlvbiIsImhhbmRsZVNlbGVjdCIsIm9wdGlvbiIsIm1hcCIsIiRoYXNTZWxlY3Rpb24iLCIkZGltbWVkIiwiaWQiLCJvbkNsaWNrIiwibmFtZSIsIkFzc2lzdGFudE1lc3NhZ2VIZWFkZXIiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJUYXNrTGluayIsIl9yZWY0IiwidGFza0lkIiwidGFiU2VnbWVudCIsIl91c2VUYXNrUGFuZWwiLCJidWlsZE9wZW5UYXNrIiwib3BlblRhc2siLCJoYW5kbGVDbGljayIsImUiLCJtZXRhS2V5IiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0IiwiQ3VzdG9tTGluayIsIl9yZWY1IiwicmVzdCIsIl9leGNsdWRlZDMiLCJ0YXNrTWF0Y2giLCJSZWdFeHAiLCJNZXNzYWdlSXRlbSIsIl9yZWY2IiwiX3JlZjciLCJ1c2VyIiwibWVzc2FnZSIsImlzRXJyb3IiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlQXBwcm92YWxEZWNpc2lvbiIsImRpc2FibGVGZWVkYmFjayIsInJvbGUiLCJzb3VyY2VzIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbCIsImFwcHJvdmFsU3RhdHVzIiwiZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidXJsIiwiaGFzIiwiYWRkIiwibWFya2Rvd25MaW5rUmVnZXgiLCJjb25jYXQiLCJyZXBsYWNlIiwibGlua01hdGNoIiwidGl0bGUiLCJwdXNoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJwcmV2aWV3QXR0YWNobWVudCIsInNldFByZXZpZXdBdHRhY2htZW50IiwiVVNFUiIsInRvU3RyaW5nIiwiaXNBc3Npc3RhbnQiLCJBU1NJU1RBTlQiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYXNGZWVkYmFjayIsIiRpc0Fzc2lzdGFudCIsIm1lc3NhZ2VFeHRyYUNvbnRlbnQiLCJoYW5kbGVGZWVkYmFja0NsaWNrIiwiZmVlZGJhY2siLCJzZXNzaW9uSWQiLCJzcGxpdCIsImZpbHRlciIsInF1ZXN0aW9uSWQiLCJqb2luIiwibGVuZ3RoIiwiaW5kZXgiLCJfYXR0YWNobWVudCR0eXBlIiwiX2F0dGFjaG1lbnQkbmFtZSIsImF0dGFjaG1lbnRUeXBlIiwidG9Mb3dlckNhc2UiLCJhdHRhY2htZW50TmFtZSIsImlzQXVkaW9GaWxlIiwic3RhcnRzV2l0aCIsImluY2x1ZGVzIiwic29tZSIsImV4dCIsImVuZHNXaXRoIiwicG9zaXRpb25JbmRleCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbiIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInN0YXR1cyIsIm9uQXBwcm92ZSIsInRocmVhZElkIiwib25SZWplY3QiLCJpc1Byb2plY3REZWxldGVkIiwicHJvamVjdE1ldGFkYXRhIiwiaXNfZGVsZXRlZCIsImlzRXhwYW5kZWQiLCJleHBhbmRlZCIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJjbGFzc05hbWUiLCJwbHVnaW5zIiwiY29tcG9uZW50cyIsImEiLCJsaW5rU2FmZXR5IiwiZW5hYmxlZCIsImlzQW5pbWF0aW5nIiwiaXNTdHJlYW1pbmciLCJzaGlraVRoZW1lIiwiY29udHJvbHMiLCJ0YWJsZSIsImNvbnRlbnQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY4IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJtZXNzYWdlc1JlZiIsImNoYXRJbml0aWFsaXplZFJlZiIsImlzTG9hZGluZ01vcmVSZWYiLCJ1c2VyU2Nyb2xsaW5nUmVmIiwic2Nyb2xsVGhyZXNob2xkUmVmIiwibGFzdFNjcm9sbFRvcFJlZiIsInNob3dTY3JvbGxUb0JvdHRvbVJlZiIsInNjcm9sbFJhZlJlZiIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2hvd1Njcm9sbFRvQm90dG9tIiwic2V0U2hvd1Njcm9sbFRvQm90dG9tIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsImFjdGl2ZUxvYWRpbmdzIiwic2VuZE1lc3NhZ2UiLCJjaGFuZ2VQcm9qZWN0IiwiaW5pdGlhbGl6ZUNoYXQiLCJoYW5kbGVTY3JvbGwiLCJzdG9wR2VuZXJhdGlvbiIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJjdXJyZW50Iiwic2Nyb2xsVG8iLCJ0b3AiLCJzY3JvbGxIZWlnaHQiLCJiZWhhdmlvciIsInNldFRpbWVvdXQiLCJfbWVzc2FnZXNSZWYkY3VycmVudCIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsImRpc3RhbmNlRnJvbUJvdHRvbSIsInNob3VsZFNob3ciLCJoYW5kbGVTY3JvbGxUb0JvdHRvbSIsImNvbnRhaW5lciIsImN1cnJlbnRUYXJnZXQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzU2Nyb2xsaW5nVXAiLCJpc05lYXJCb3R0b20iLCJkaWRTZXRTdGF0ZSIsInNlbmRNZXNzYWdlUmVmIiwic3RvcEdlbmVyYXRpb25SZWYiLCJvblNlbmRNZXNzYWdlUmVhZHlSZWYiLCJsYXN0TWVzc2FnZSIsImhhc0FwcHJvdmFsIiwiaXNBdEJvdHRvbSIsInNjcm9sbFRvQm90dG9tIiwiX21lc3NhZ2VzUmVmJGN1cnJlbnQyIiwiaXNOZXdBbnN3ZXJNZXNzYWdlIiwiaXNOZXdVc2VyTWVzc2FnZSIsImlzTmV3QXBwcm92YWxNZXNzYWdlIiwiaGFzTWVzc2FnZXMiLCJpc05vdEluaXRpYWxNZXNzYWdlIiwibXNnIiwic2Nyb2xsRGVsYXkiLCJkb1Njcm9sbCIsIl9tZXNzYWdlc1JlZiRjdXJyZW50MyIsIl9tZXNzYWdlc1JlZiRjdXJyZW50NCIsImxhc3RVc2VyTWVzc2FnZSIsImF0IiwiaGFzQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJpc1Njcm9sbE9uUGFyZW50IiwibWVzc2FnZXNDb250ZW50IiwidGV4dCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJwcm9qZWN0IiwibWVzc2FnZUZlZWRiYWNrIiwid2FzSGVscGZ1bCIsIlRIVU1CU19VUCIsIlRIVU1CU19ET1dOIiwiaXNBc3Npc3RhbnRNZXNzYWdlIiwiaXNMYXN0TWVzc2FnZSIsImtleSIsImRhdGUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsIl9yZWY5IiwiX3JlZjAiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsImNvbG9yIiwiQ2hhdEFJTWVzc2FnZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvQ2hhdEFJTWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tdW5zdGFibGUtbmVzdGVkLWNvbXBvbmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIG1lbW8sIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU3RyZWFtZG93biB9IGZyb20gJ3N0cmVhbWRvd24nXG5pbXBvcnQgeyBjcmVhdGVDb2RlUGx1Z2luIH0gZnJvbSAnQHN0cmVhbWRvd24vY29kZSdcbmltcG9ydCB7IEFycm93U21hbGxEb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXJyb3dTbWFsbERvd24nXG5cbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBcHByb3ZhbEJveCB9IGZyb20gJy4uLy4uL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94J1xuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXdNb2RhbCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwnXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZEF1ZGlvIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmRBdWRpbydcbmltcG9ydCB7IE1BSUFNZXNzYWdlUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBTWVzc2FnZS9NQUlBTWVzc2FnZS5pbnRlcmZhY2VzJ1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRIaXN0b3J5Um9sZSwgVGFza0luZm8gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuXG5pbXBvcnQgeyBDT1JVc2VyLCB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcblxuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VDaGF0TWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRNYW5hZ2VyL3VzZUNoYXRNYW5hZ2VyJ1xuaW1wb3J0IHsgdXNlVGFza1BhbmVsIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGFza1BhbmVsJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcblxuaW1wb3J0IHsgTWVzc2FnZUZyb21Vc2VyLCBNZXNzYWdlRnJvbU90aGVyLCBNZXNzYWdlQ29udGVudEZyb21Vc2VyLCBNZXNzYWdlQ29udGVudEZyb21PdGhlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgTWVzc2FnZUZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHtcbiAgU0NDQUlNZXNzYWdlV3JhcHBlcixcbiAgU2Nyb2xsVG9Cb3R0b21CdXR0b24sXG4gIFNDTWVzc2FnZXNPdXRlcixcbiAgU0NNZXNzYWdlc1Njcm9sbCxcbiAgU0NNZXNzYWdlc0lubmVyLFxuICBTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbixcbiAgU0NPcHRpb25zTGlzdCxcbiAgU0NPcHRpb25JdGVtLFxuICBTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXIsXG4gIFNDQXNzaXN0YW50TmFtZSxcbiAgU0NBc3Npc3RhbnRBdmF0YXIsXG4gIFNDVGFza0xpbmssXG4gIFNDTWVzc2FnZUl0ZW1XcmFwcGVyLFxuICBTQ01lc3NhZ2VJdGVtSW5uZXIsXG4gIFNDQXR0YWNobWVudHNSb3csXG4gIFNDQXBwcm92YWxBY3Rpb25zQ29sdW1uLFxufSBmcm9tICcuL25ld1N0eWxlcydcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnLi4vTWVzc2FnZUZlZWRiYWNrL01lc3NhZ2VGZWVkYmFjaydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXIgPSAoKSA9PiB7XG4gIGNvbnN0IFtsb2NhbEFnZW50LCBzZXRMb2NhbEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbEFnZW50KGFnZW50KVxuICB9LCBbYWdlbnRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQXNzaXN0YW50QXZhdGFyPlxuICAgICAge2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyA8TUFJQUlzb2xvZ28gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPiA6IGxvY2FsQWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlRmVlZGJhY2s6IChmZWVkYmFjazogRmVlZGJhY2ssIGNoYXRNZXNzYWdlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBoYW5kbGVBcHByb3ZhbERlY2lzaW9uOiAodGhyZWFkSWQ6IHN0cmluZywgZGVjaXNpb246ICdhcHByb3ZlJyB8ICdyZWplY3QnKSA9PiB2b2lkXG4gIGRpc2FibGVGZWVkYmFjaz86IEZlZWRiYWNrIHwgbnVsbFxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBNZXNzYWdlV3JhcHBlclByb3BzIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gICdkYXRhLW1lc3NhZ2UtaWQnPzogc3RyaW5nXG4gIGhhc0ZlZWRiYWNrPzogYm9vbGVhblxufVxuXG50eXBlIE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzID0gTUFJQU1lc3NhZ2VQcm9wcyAmIHtcbiAgaXNDdXJyZW50VXNlcjogYm9vbGVhblxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG59XG5cbmNvbnN0IE1lc3NhZ2VXcmFwcGVyOiBGQzxNZXNzYWdlV3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUZyb21Vc2VyIDogTWVzc2FnZUZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb21wb25lbnQgey4uLnByb3BzfT57Y2hpbGRyZW59PC9NZXNzYWdlQ29tcG9uZW50PlxufVxuXG5jb25zdCBNZXNzYWdlQ29udGVudFdyYXBwZXI6IEZDPE1lc3NhZ2VDb250ZW50V3JhcHBlclByb3BzPiA9ICh7IGlzQ3VycmVudFVzZXIsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQgPSBpc0N1cnJlbnRVc2VyID8gTWVzc2FnZUNvbnRlbnRGcm9tVXNlciA6IE1lc3NhZ2VDb250ZW50RnJvbU90aGVyXG4gIHJldHVybiA8TWVzc2FnZUNvbnRlbnRDb21wb25lbnQgey4uLnByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBNZXNzYWdlT3B0aW9ucyh7XG4gIG9wdGlvbnMsXG4gIGhhbmRsZVNlbGVjdE9wdGlvbixcbn06IHtcbiAgb3B0aW9uczogUHJvamVjdFtdIHwgbnVsbFxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbn0pIHtcbiAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSAob3B0aW9uOiBQcm9qZWN0KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkT3B0aW9uKSByZXR1cm5cbiAgICBzZXRTZWxlY3RlZE9wdGlvbihvcHRpb24pXG4gICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbilcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDT3B0aW9uc0xpc3Q+XG4gICAgICB7KG9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKFxuICAgICAgICA8U0NPcHRpb25JdGVtXG4gICAgICAgICAgJGhhc1NlbGVjdGlvbj17ISFzZWxlY3RlZE9wdGlvbn1cbiAgICAgICAgICAkZGltbWVkPXshIXNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChvcHRpb24pfVxuICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbi5uYW1lfVxuICAgICAgICA8L1NDT3B0aW9uSXRlbT5cbiAgICAgICkpfVxuICAgIDwvU0NPcHRpb25zTGlzdD5cbiAgKVxufVxuXG5jb25zdCBBc3Npc3RhbnRNZXNzYWdlSGVhZGVyID0gKCkgPT4ge1xuICBjb25zdCBbbG9jYWxBZ2VudCwgc2V0TG9jYWxBZ2VudF0gPSB1c2VTdGF0ZTxBZ2VudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxBZ2VudChhZ2VudClcbiAgfSwgW2FnZW50XSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gICAgICA8QXNzaXN0YW50QXZhdGFyIC8+XG4gICAgICB7bG9jYWxBZ2VudD8ubmFtZSAmJiAoXG4gICAgICAgIDxTQ0Fzc2lzdGFudE5hbWU+e2xvY2FsQWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyAnTUFJQScgOiBsb2NhbEFnZW50Py5uYW1lfTwvU0NBc3Npc3RhbnROYW1lPlxuICAgICAgKX1cbiAgICA8L1NDQXNzaXN0YW50TWVzc2FnZUhlYWRlcj5cbiAgKVxufVxuXG4vLyBFeHRyYWUgZWwgc2VnbWVudG8gZGUgdGFiIChkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSBkZWwgaHJlZiBwYXJhIGFicmlyIGVsIG1vZGFsIGNvbiBlbCB0YWIgY29ycmVjdG9cbmNvbnN0IGdldFRhYlNlZ21lbnRGcm9tSHJlZiA9IChocmVmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtYXRjaCA9IGhyZWYubWF0Y2goL1xcL3Rhc2tzXFwvXFxkK1xcLyhbXi8/XSspLylcbiAgcmV0dXJuIG1hdGNoICYmIC9eKGRldGFpbHxtZXNzYWdlfG1lc3NhZ2VzfGZpbGVzfGhpc3Rvcnl8aG91cnMpJC8udGVzdChtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICdkZXRhaWwnXG59XG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBkaXNhYmxlRmVlZGJhY2ssXG4gICAgcm9sZSxcbiAgICBzb3VyY2VzLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIGFwcHJvdmFsLFxuICAgIGFwcHJvdmFsU3RhdHVzLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBleHRyYWN0VGFza3NGcm9tTWVzc2FnZSA9IChtZXNzYWdlOiBzdHJpbmcpOiBUYXNrSW5mb1tdID0+IHtcbiAgICBpZiAoIW1lc3NhZ2UpIHJldHVybiBbXVxuXG4gICAgLy8gTWF0Y2ggVVJMcyBsaWtlOiAuLi4vdGFza3MvMTIzNDU2LyhkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKVxuICAgIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICAgIGNvbnN0IHRhc2tzOiBUYXNrSW5mb1tdID0gW11cbiAgICBjb25zdCBzZWVuSWRzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICAgIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IG51bGxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uZC1hc3NpZ25cbiAgICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0YXNrSWQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMF1cblxuICAgICAgaWYgKCFzZWVuSWRzLmhhcyh0YXNrSWQpKSB7XG4gICAgICAgIHNlZW5JZHMuYWRkKHRhc2tJZClcblxuICAgICAgICAvLyBUcnkgdG8gZXh0cmFjdCB0aGUgdGFzayB0aXRsZSBmcm9tIG1hcmtkb3duIGxpbmsgW3RpdGxlXSh1cmwpXG4gICAgICAgIGNvbnN0IG1hcmtkb3duTGlua1JlZ2V4ID0gbmV3IFJlZ0V4cChgXFxcXFsoW15cXFxcXV0rKVxcXFxdXFxcXCgke3VybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpfVxcXFwpYClcbiAgICAgICAgY29uc3QgbGlua01hdGNoID0gbWVzc2FnZS5tYXRjaChtYXJrZG93bkxpbmtSZWdleClcbiAgICAgICAgY29uc3QgdGl0bGUgPSBsaW5rTWF0Y2ggPyBsaW5rTWF0Y2hbMV0gOiBgVGFyZWEgIyR7dGFza0lkfWBcblxuICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICBpZDogdGFza0lkLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFza3NcbiAgfVxuXG4gIGNvbnN0IFtwcmV2aWV3QXR0YWNobWVudCwgc2V0UHJldmlld0F0dGFjaG1lbnRdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGUgfCBudWxsPihudWxsKVxuICBjb25zdCBpc0N1cnJlbnRVc2VyID0gcm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgdXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKVxuICBjb25zdCBpc0Fzc2lzdGFudCA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQgfHwgdXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcblxuICBjb25zdCBoYW5kbGVBdHRhY2htZW50Q2xpY2sgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpID0+IHtcbiAgICAvLyBQZXJtaXRpciBwcmV2aXN1YWxpemFjacOzbiBzaSB0aWVuZSBhcmNoaXZvIGxvY2FsIG8gVVJMcyBkZWwgYmFja2VuZFxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIGlmIChpc0NoYW5nZVByb2plY3QgJiYgb3B0aW9ucykge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVzc2FnZVdyYXBwZXIga2V5PXtpZH0gaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn0gZGF0YS1tZXNzYWdlLWlkPXtpZH0gaGFzRmVlZGJhY2s9e2ZhbHNlfT5cbiAgICAgICAgPFNDTWVzc2FnZUl0ZW1XcmFwcGVyICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgIHtpc0Fzc2lzdGFudCAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgICAgICA8TWVzc2FnZUNvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgICBpc0NoYW5nZVByb2plY3Q9e2lzQ2hhbmdlUHJvamVjdH1cbiAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XG4gICAgICAgICAgICBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfVxuICAgICAgICAgICAgaXNFcnJvcj17aXNFcnJvcn1cbiAgICAgICAgICAgIG1lc3NhZ2VFeHRyYUNvbnRlbnQ9ezxNZXNzYWdlT3B0aW9ucyBvcHRpb25zPXtvcHRpb25zIGFzIGFueX0gaGFuZGxlU2VsZWN0T3B0aW9uPXtoYW5kbGVTZWxlY3RPcHRpb259IC8+fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU0NNZXNzYWdlSXRlbVdyYXBwZXI+XG4gICAgICA8L01lc3NhZ2VXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZlZWRiYWNrQ2xpY2sgPSAoZmVlZGJhY2s6IEZlZWRiYWNrKSA9PiB7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gaWRcbiAgICAgIC5zcGxpdCgnLScpXG4gICAgICAuZmlsdGVyKHF1ZXN0aW9uSWQgPT4gcXVlc3Rpb25JZCAhPT0gJ2Fuc3dlcicpXG4gICAgICAuam9pbignLScpXG4gICAgaGFuZGxlRmVlZGJhY2s/LihmZWVkYmFjaywgc2Vzc2lvbklkKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICB7aXNBc3Npc3RhbnQgJiYgPEFzc2lzdGFudE1lc3NhZ2VIZWFkZXIgLz59XG4gICAgICA8U0NNZXNzYWdlSXRlbUlubmVyPlxuICAgICAgICB7ISEoYXR0YWNobWVudHMgfHwgc291cmNlcyk/Lmxlbmd0aCAmJiAhaXNBc3Npc3RhbnQgJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICAgICAgeyhhdHRhY2htZW50cyB8fCBzb3VyY2VzKT8ubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAvLyBEZXRlY3RhciBzaSBlcyB1biBhcmNoaXZvIGRlIGF1ZGlvXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRUeXBlID0gYXR0YWNobWVudD8udHlwZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50TmFtZSA9IGF0dGFjaG1lbnQ/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgfHwgJydcbiAgICAgICAgICAgICAgY29uc3QgaXNBdWRpb0ZpbGUgPVxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRUeXBlLnN0YXJ0c1dpdGgoJ2F1ZGlvLycpIHx8XG4gICAgICAgICAgICAgICAgWydmbGFjJywgJ200YScsICdtcDMnLCAnbXA0JywgJ29nYScsICdvZ2cnLCAnd2F2JywgJ3dlYm0nXS5pbmNsdWRlcyhhdHRhY2htZW50VHlwZSkgfHxcbiAgICAgICAgICAgICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lLmVuZHNXaXRoKGV4dClcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKGlzQXVkaW9GaWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdHRhY2htZW50Q2FyZEF1ZGlvIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH0gYXR0YWNobWVudD17YXR0YWNobWVudH0gLz5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2F0dGFjaG1lbnQuaWR9LSR7YXR0YWNobWVudC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25JbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBdHRhY2htZW50Q2xpY2soYXR0YWNobWVudCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0F0dGFjaG1lbnRzUm93PlxuICAgICAgICApfVxuICAgICAgICB7YXBwcm92YWwgJiYgYXBwcm92YWwucGVuZGluZ19hY3Rpb25zICYmIChcbiAgICAgICAgICA8U0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4+XG4gICAgICAgICAgICB7YXBwcm92YWwucGVuZGluZ19hY3Rpb25zLm1hcChhY3Rpb24gPT4gKFxuICAgICAgICAgICAgICA8QXBwcm92YWxCb3hcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2FjdGlvbi50aHJlYWRfaWR9LSR7YWN0aW9uLnRvb2xfY2FsbF9pZH1gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgICAgb25BcHByb3ZlPXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICAgIG9uUmVqZWN0PXt0aHJlYWRJZCA9PiBoYW5kbGVBcHByb3ZhbERlY2lzaW9uKHRocmVhZElkLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgICAgaXNQcm9qZWN0RGVsZXRlZD17cHJvcHMucHJvamVjdE1ldGFkYXRhPy5pc19kZWxldGVkID09PSB0cnVlfVxuICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3Byb3BzLmV4cGFuZGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhbWVzc2FnZSAmJlxuICAgICAgICAgIC8vIFNpIGhheSBhcHByb3ZhbCAoZGlzdGludG8gZGUgbnVsbCksIG5vIHJlbmRlcml6YXIgZWwgYW5zd2VyIGVuIGVzdGUgbWVuc2FqZVxuICAgICAgICAgIC8vIEVsIG1lbnNhamUgZGUgcmVjaGF6byBzZSByZW5kZXJpemEgY29tbyBtZW5zYWplIHNlcGFyYWRvXG4gICAgICAgICAgIWFwcHJvdmFsICYmIChcbiAgICAgICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNBc3Npc3RhbnQgJiYgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UobWVzc2FnZSkubGVuZ3RoID4gMCA/ICdoYXMtdGFzay1saW5rcycgOiAnJ31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIGxpbmtTYWZldHkgbW9kYWwgZGVzaGFiaWxpdGFkbyBwb3IgZWwgbW9tZW50bzogbGlua1NhZmV0eT17eyBlbmFibGVkOiB0cnVlIH19ICovfVxuICAgICAgICAgICAgICA8U3RyZWFtZG93blxuICAgICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgICAgbGlua1NhZmV0eT17eyBlbmFibGVkOiBmYWxzZSB9fVxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW5nPXshIXByb3BzLmlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPXt7IHRhYmxlOiBmYWxzZSwgY29kZTogZmFsc2UgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICA8L1N0cmVhbWRvd24+XG4gICAgICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc0Vycm9yICYmICFwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkICYmICFhcHByb3ZhbCAmJiAoXG4gICAgICAgICAgPE1lc3NhZ2VGZWVkYmFja1xuICAgICAgICAgICAgY29udGVudD17bWVzc2FnZX1cbiAgICAgICAgICAgIHNvdXJjZXM9e3NvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17aGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17ZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDTWVzc2FnZUl0ZW1Jbm5lcj5cbiAgICAgIDxBdHRhY2htZW50UHJldmlld01vZGFsXG4gICAgICAgIGlzT3Blbj17ISFwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VQcmV2aWV3fVxuICAgICAgICBhdHRhY2htZW50PXtwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgIC8+XG4gICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgKVxufSlcblxuY29uc3QgQ2hhdEFJTWVzc2FnZXNJbm5lciA9ICh7XG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgaW5pdGlhbENoYXRJZCxcbiAgb25FcnJvcixcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBvblNjcm9sbFRvQm90dG9tLFxuICBhdHRhY2htZW50cyxcbiAgYWdlbnRzLFxuICBleHBhbmRlZCxcbn06IENoYXRBSU1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgYXV0aFVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgbWVzc2FnZXNSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGNoYXRJbml0aWFsaXplZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgdXNlclNjcm9sbGluZ1JlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGhyZXNob2xkUmVmID0gdXNlUmVmKDM5KVxuICBjb25zdCBsYXN0U2Nyb2xsVG9wUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNob3dTY3JvbGxUb0JvdHRvbVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsUmFmUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93U2Nyb2xsVG9Cb3R0b20sIHNldFNob3dTY3JvbGxUb0JvdHRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgc3RvcEdlbmVyYXRpb24sXG4gIH0gPSB1c2VDaGF0TWFuYWdlcih7XG4gICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgb25FcnJvcixcbiAgICBhdHRhY2htZW50cyxcbiAgICBhZ2VudHMsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGNoYW5nZVByb2plY3Qob3B0aW9uKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIH0pXG4gICAgICAvLyBBY3R1YWxpemFyIGVzdGFkbyBkZXNwdcOpcyBkZSB1biBicmV2ZSBkZWxheSBwYXJhIHBlcm1pdGlyIHF1ZSBlbCBzY3JvbGwgc2UgY29tcGxldGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9LCA1MDApXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgICAgIGlmIChzY3JvbGxSYWZSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShzY3JvbGxSYWZSZWYuY3VycmVudClcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxSYWZSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcblxuICAgICAgICBjb25zdCBpc1Njcm9sbGluZ1VwID0gc2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcFJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKGlzU2Nyb2xsaW5nVXApIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDE1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQgPCBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20pIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgICAgIH1cblxuICAgICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSAhaXNOZWFyQm90dG9tXG4gICAgICAgIGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudCA9IHNjcm9sbFRvcFxuXG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgY29uc3QgZGlkU2V0U3RhdGUgPSBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCAhPT0gc2hvdWxkU2hvd1xuICAgICAgICBpZiAoZGlkU2V0U3RhdGUpIHtcbiAgICAgICAgICBzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCA9IHNob3VsZFNob3dcbiAgICAgICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20gJiYgb25TY3JvbGxUb0JvdHRvbSkge1xuICAgICAgICAgIG9uU2Nyb2xsVG9Cb3R0b20oKVxuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKGNvbnRhaW5lcilcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbb25TY3JvbGxUb0JvdHRvbSwgaGFuZGxlU2Nyb2xsXVxuICApXG5cbiAgLy8gcmVmcyB0byBzdGFiaWxpemUgZnVuY3Rpb25zIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gIGNvbnN0IHNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKHNlbmRNZXNzYWdlKVxuICBjb25zdCBzdG9wR2VuZXJhdGlvblJlZiA9IHVzZVJlZihzdG9wR2VuZXJhdGlvbilcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlYWR5UmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2VSZWFkeSlcblxuICAvLyB1cGRhdGUgcmVmcyB3aGVuIGZ1bmN0aW9ucyBjaGFuZ2VcbiAgc2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IHNlbmRNZXNzYWdlXG4gIHN0b3BHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBzdG9wR2VuZXJhdGlvblxuICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VSZWFkeVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uU2VuZE1lc3NhZ2VSZWFkeVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudChzZW5kTWVzc2FnZVJlZi5jdXJyZW50LCBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50LCB3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZylcbiAgICB9XG4gIH0sIFt3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlTWVzc2FnZXNcbiAgfSwgW2lzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgLy8gQ3VhbmRvIGVsIGFnZW50ZSBlbXBpZXphIGEgcmVzcG9uZGVyLCByZXNldGVhciBlbCBmbGFnIHkgZWwgdW1icmFsIHBhcmEgYWN0aXZhciBlbCBhdXRvLXNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UpIHtcbiAgICAgIHVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdEluaXRpYWxpemVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaW5pdGlhbGl6ZUNoYXQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gU2Nyb2xsIGN1YW5kbyBsbGVnYSB1biBtZW5zYWplIGRlIGFwcm9iYWNpw7NuIChBcHByb3ZhbEJveCkuIFNpbiBSZXNpemVPYnNlcnZlciBlbiBlbFxuICAvLyBjb250ZW5lZG9yOiBvYnNlcnZhcmxvIGRpc3BhcmFiYSBjYWxsYmFja3MgYWwgY2FtYmlhciBlbCBsYXlvdXQvc2Nyb2xsYmFyIHkgY2FkYSB1bm9cbiAgLy8gbGxhbWFiYSBzY3JvbGxUb0JvdHRvbSgpLCBwcm92b2NhbmRvIHRpcm9uZXMgYWwgc2Nyb2xsZWFyLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWVzc2FnZXNSZWYuY3VycmVudCB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGhhc0FwcHJvdmFsID0gbGFzdE1lc3NhZ2UgJiYgKGxhc3RNZXNzYWdlLmlkLnN0YXJ0c1dpdGgoJ2FwcHJvdmFsLScpIHx8ICEhbGFzdE1lc3NhZ2UuYXBwcm92YWwpXG5cbiAgICBpZiAoIWhhc0FwcHJvdmFsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG5cbiAgICBpZiAoIShpc0F0Qm90dG9tIHx8ICF1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgICBpZiAobWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgICBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbFRvcCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VjdWVuY2lhIGluaWNpYWwgZGUgc2Nyb2xsIHBhcmEgY3VhbmRvIGVsIEFwcHJvdmFsQm94IGFjYWJhIGRlIHJlbmRlcml6YXJzZVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpXG4gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVG9Cb3R0b20sIDEwMClcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBTaSBlbCB1c3VhcmlvIGVzdMOhIHNjcm9sbGVhbmRvIG1hbnVhbG1lbnRlLCBubyBoYWNlciBhdXRvIHNjcm9sbFxuICAgIGlmICh1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgJiYgd2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlICYmIG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50IHx8IGxvYWRpbmdNZXNzYWdlcyB8fCBpc0xvYWRpbmdNb3JlTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50KSByZXR1cm5cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICBjb25zdCBsYXN0TWVzc2FnZSA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdXG5cbiAgICBjb25zdCBpc05ld0Fuc3dlck1lc3NhZ2UgPSBsYXN0TWVzc2FnZSAmJiBsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhbnN3ZXItJylcbiAgICBjb25zdCBpc05ld1VzZXJNZXNzYWdlID0gbGFzdE1lc3NhZ2UgJiYgbGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgncXVlc3Rpb24tJylcbiAgICBjb25zdCBpc05ld0FwcHJvdmFsTWVzc2FnZSA9IGxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhcHByb3ZhbC0nKSB8fCAhIWxhc3RNZXNzYWdlLmFwcHJvdmFsKVxuICAgIGNvbnN0IGlzQXRCb3R0b20gPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyLnNjcm9sbFRvcCA8PSBjb250YWluZXIuY2xpZW50SGVpZ2h0ICsgMTAwXG4gICAgY29uc3QgaGFzTWVzc2FnZXMgPSAhIW1lc3NhZ2VzLmxlbmd0aFxuICAgIGNvbnN0IGlzTm90SW5pdGlhbE1lc3NhZ2UgPSAhbWVzc2FnZXMuc29tZShtc2cgPT4gbXNnLmlkID09PSAndXNlci1pbml0aWFsLW1lc3NhZ2UnKVxuXG4gICAgaWYgKChpc05ld0Fuc3dlck1lc3NhZ2UgfHwgaXNOZXdVc2VyTWVzc2FnZSB8fCBpc05ld0FwcHJvdmFsTWVzc2FnZSkgJiYgaXNBdEJvdHRvbSkge1xuICAgICAgLy8gUGFyYSBtZW5zYWplcyBkZSBhcHJvYmFjacOzbiwgdXNhciB1biBwZXF1ZcOxbyBkZWxheSBwYXJhIGFzZWd1cmFyIHF1ZSBlbCBBcHByb3ZhbEJveCBzZSBoYXlhIHJlbmRlcml6YWRvXG4gICAgICBjb25zdCBzY3JvbGxEZWxheSA9IGlzTmV3QXBwcm92YWxNZXNzYWdlID8gMTAwIDogMFxuICAgICAgY29uc3QgZG9TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0XG4gICAgICAgICAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgICAgc2V0U2hvd1Njcm9sbFRvQm90dG9tKHNob3VsZFNob3cpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHNjcm9sbERlbGF5ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KGRvU2Nyb2xsLCBzY3JvbGxEZWxheSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvU2Nyb2xsKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgaGFzTWVzc2FnZXMgJiZcbiAgICAgIGlzTm90SW5pdGlhbE1lc3NhZ2UgJiZcbiAgICAgICFpc05ld0Fuc3dlck1lc3NhZ2UgJiZcbiAgICAgICFpc05ld1VzZXJNZXNzYWdlICYmXG4gICAgICAhaXNOZXdBcHByb3ZhbE1lc3NhZ2VcbiAgICApIHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgICAgIHNldFNob3dTY3JvbGxUb0JvdHRvbShzaG91bGRTaG93KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgd2FpdGluZ1Jlc3BvbnNlXSlcblxuICAvLyBWZXJpZmljYXIgZWwgZXN0YWRvIGluaWNpYWwgZGVsIHNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZXNzYWdlc1JlZi5jdXJyZW50ICYmICFsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG4gICAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcbiAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgICAgc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgPSBzaG91bGRTaG93XG4gICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICB9XG4gIH0sIFtsb2FkaW5nTWVzc2FnZXMsIG1lc3NhZ2VzLmxlbmd0aF0pXG5cbiAgLy8gT2J0ZW5lciBlbCDDumx0aW1vIG1lbnNhamUgZGVsIHVzdWFyaW8gcGFyYSB2ZXJpZmljYXIgc2kgdGllbmUgYXR0YWNobWVudHNcbiAgY29uc3QgbGFzdFVzZXJNZXNzYWdlID0gbWVzc2FnZXNcbiAgICAuZmlsdGVyKG1zZyA9PiBtc2cucm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLlVTRVIgfHwgbXNnLnVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKCkpXG4gICAgLmF0KC0xKVxuXG4gIGNvbnN0IGhhc0F0dGFjaG1lbnRzID1cbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LmF0dGFjaG1lbnRzKSAmJiBsYXN0VXNlck1lc3NhZ2UuYXR0YWNobWVudHMubGVuZ3RoKSB8fFxuICAgIChBcnJheS5pc0FycmF5KGxhc3RVc2VyTWVzc2FnZT8uc291cmNlcykgJiYgbGFzdFVzZXJNZXNzYWdlLnNvdXJjZXMubGVuZ3RoKVxuXG4gIGNvbnN0IGlzU2Nyb2xsT25QYXJlbnQgPSAhIWV4cGFuZGVkXG5cbiAgY29uc3QgbWVzc2FnZXNDb250ZW50ID0gKFxuICAgIDw+XG4gICAgICB7aXNMb2FkaW5nTW9yZU1lc3NhZ2VzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdjaGF0LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAge21lc3NhZ2VzLm1hcCgobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEobWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoIHx8IG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoKSAmJlxuICAgICAgICAgICFtZXNzYWdlLm1lc3NhZ2UgJiZcbiAgICAgICAgICAhbWVzc2FnZS5wcm9qZWN0Py5uYW1lICYmXG4gICAgICAgICAgIW1lc3NhZ2UuYXBwcm92YWxcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VGZWVkYmFjayA9XG4gICAgICAgICAgbWVzc2FnZT8ud2FzSGVscGZ1bCA9PT0gdW5kZWZpbmVkIHx8IG1lc3NhZ2Uud2FzSGVscGZ1bCA9PT0gbnVsbFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IG1lc3NhZ2Uud2FzSGVscGZ1bFxuICAgICAgICAgICAgICA/IEZlZWRiYWNrLlRIVU1CU19VUFxuICAgICAgICAgICAgICA6IEZlZWRiYWNrLlRIVU1CU19ET1dOXG5cbiAgICAgICAgY29uc3QgaXNBc3Npc3RhbnRNZXNzYWdlID0gbWVzc2FnZS5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IG1lc3NhZ2UudXNlci5pZCA9PT0gJ2Fzc2lzdGFudCdcbiAgICAgICAgY29uc3QgaXNMYXN0TWVzc2FnZSA9IGluZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxXG4gICAgICAgIGNvbnN0IGlzU3RyZWFtaW5nID0gaXNBc3Npc3RhbnRNZXNzYWdlICYmIGlzTGFzdE1lc3NhZ2UgJiYgKHdhaXRpbmdSZXNwb25zZSB8fCBpc1dyaXRpbmcpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TWVzc2FnZUl0ZW1cbiAgICAgICAgICAgIHsuLi5tZXNzYWdlfVxuICAgICAgICAgICAga2V5PXttZXNzYWdlLmlkICE9IG51bGwgPyBgJHttZXNzYWdlLmlkfS0ke21lc3NhZ2UuZGF0ZX1gIDogYG1zZy0ke2luZGV4fWB9XG4gICAgICAgICAgICBhdXRoVXNlcj17YXV0aFVzZXJ9XG4gICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrPXtoYW5kbGVGZWVkYmFja31cbiAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb249e2hhbmRsZUFwcHJvdmFsRGVjaXNpb259XG4gICAgICAgICAgICBkaXNhYmxlRmVlZGJhY2s9e21lc3NhZ2VGZWVkYmFja31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICAgIHsod2FpdGluZ1Jlc3BvbnNlIHx8IGxvYWRpbmdNZXNzYWdlIHx8IE9iamVjdC5rZXlzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgIDxTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICAgICB7KHdhaXRpbmdSZXNwb25zZSB8fCBsb2FkaW5nTWVzc2FnZSkgJiYgKFxuICAgICAgICAgICAgPExvYWRpbmdUZXh0XG4gICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgIGxvYWRpbmdNZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgKGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgICAgICAgICAgICAgICA/ICdCdXNjYW5kbyBlbiBsYSB3ZWInXG4gICAgICAgICAgICAgICAgICA6IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/IHQoJ2NoYXQuZ2VuZXJhdGluZ0RlZXBTZWFyY2gnKVxuICAgICAgICAgICAgICAgICAgICA6IGhhc0F0dGFjaG1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgPyB0KCdjaGF0LmdlbmVyYXRpbmdBdHRhY2htZW50JylcbiAgICAgICAgICAgICAgICAgICAgICA6IHQoJ2NoYXQuZ2VuZXJhdGluZycpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKGFjdGl2ZUxvYWRpbmdzIHx8IHt9KS5tYXAoKFt0aHJlYWRJZCwgbWVzc2FnZV0pID0+IChcbiAgICAgICAgICAgIDxMb2FkaW5nVGV4dCBrZXk9e2Bsb2FkaW5nLSR7dGhyZWFkSWR9YH0gdGV4dD17bWVzc2FnZX0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VzT3V0ZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT5cbiAgICAgIHtpc1Njcm9sbE9uUGFyZW50ID8gKFxuICAgICAgICA8U0NNZXNzYWdlc1Njcm9sbCByZWY9e21lc3NhZ2VzUmVmfSBvblNjcm9sbD17aGFuZGxlU2Nyb2xsVG9Cb3R0b219PlxuICAgICAgICAgIDxTQ01lc3NhZ2VzSW5uZXIgJHNjcm9sbE9uUGFyZW50PXtpc1Njcm9sbE9uUGFyZW50fT57bWVzc2FnZXNDb250ZW50fTwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgICA8L1NDTWVzc2FnZXNTY3JvbGw+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNZXNzYWdlc0lubmVyIHJlZj17bWVzc2FnZXNSZWZ9IG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGxUb0JvdHRvbX0gJHNjcm9sbE9uUGFyZW50PXtmYWxzZX0+XG4gICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgPC9TQ01lc3NhZ2VzSW5uZXI+XG4gICAgICApfVxuXG4gICAgICB7c2hvd1Njcm9sbFRvQm90dG9tICYmIChcbiAgICAgICAgPFNjcm9sbFRvQm90dG9tQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Njcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8QXJyb3dTbWFsbERvd24gY29sb3I9XCIjNjY2XCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvU2Nyb2xsVG9Cb3R0b21CdXR0b24+XG4gICAgICApfVxuXG4gICAgICB7bG9hZGluZ01lc3NhZ2VzICYmIDxMb2FkZXIgLz59XG4gICAgPC9TQ01lc3NhZ2VzT3V0ZXI+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSU1lc3NhZ2VzID0gUmVhY3QubWVtbyhDaGF0QUlNZXNzYWdlc0lubmVyKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLElBQVFDLElBQUksRUFBYUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFBQyxhQUFBLElBQUFDLGNBQUEsUUFBUSxPQUFPO0FBQzVGLFNBQVNDLFVBQVUsUUFBUSxZQUFZO0FBQ3ZDLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsaURBQWlEO0FBRWhGLFNBQVNDLGNBQWMsUUFBUSwyQ0FBMkM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLHFDQUFxQztBQUNqRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFDM0UsU0FBU0MsbUJBQW1CLFFBQVEsZ0RBQWdEO0FBRXBGLFNBQXNCQyxlQUFlLFFBQWtCLHFCQUFxQjtBQUU1RSxTQUFrQkMsT0FBTyxRQUFRLDJCQUEyQjtBQUU1RCxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGNBQWMsUUFBUSw4Q0FBOEM7QUFDN0UsU0FBU0MsWUFBWSxRQUFRLDZCQUE2QjtBQUUxRCxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFJM0MsU0FBU0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsc0JBQXNCLEVBQUVDLHVCQUF1QixRQUFRLFVBQVU7QUFDN0csU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUNFQyxtQkFBbUIsRUFDbkJDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNmQyxnQkFBZ0IsRUFDaEJDLGVBQWUsRUFDZkMs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
|