@projectcor/maia-components 2.48.1-1 → 2.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/App.js +19 -44
- package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.js +37 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +3 -37
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +53 -1
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +28 -52
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +37 -1
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +33 -66
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +227 -1
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +53 -177
- package/lib/components/atoms/ClientSelector/ClientSelector.helpers.js +26 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.js +12 -21
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +29 -1
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +12 -28
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
- package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +74 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +173 -1
- package/lib/components/atoms/MAIAInput/MAIAInput.js +126 -171
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +47 -1
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +40 -61
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +24 -41
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +10 -25
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +43 -78
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +11 -9
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -37
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.js +101 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +21 -77
- package/lib/components/atoms/TextArea/TextArea.helpers.js +23 -0
- package/lib/components/atoms/TextArea/TextArea.js +11 -20
- package/lib/components/index.js +1 -2
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +30 -1
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +13 -18
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +48 -1
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +17 -26
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
- package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.js +370 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +266 -321
- package/lib/components/molecules/ChatAIHome/styles.js +78 -85
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +345 -1
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +201 -200
- package/lib/components/molecules/ChatAIMessages/newStyles.js +35 -32
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +373 -5
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +199 -271
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +20 -1
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +87 -74
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.js +39 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +30 -33
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.js +41 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +9 -35
- package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -10
- package/lib/components/molecules/Sidebar/Sidebar.helpers.js +43 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +46 -61
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +314 -1
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +261 -480
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.js +37 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +13 -25
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +1 -4
- package/lib/dev/DevReasoningTimeline.js +37 -68
- package/lib/dev/Providers.js +3 -5
- package/lib/hooks/useAgentModel/useCreateAgent.helpers.js +144 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +38 -102
- package/lib/hooks/useChatManager/useChatManager.helpers.js +550 -1
- package/lib/hooks/useChatManager/useChatManager.js +245 -429
- package/lib/hooks/useChatMessages/useChatMessages.helpers.js +257 -1
- package/lib/hooks/useChatMessages/useChatMessages.js +50 -206
- package/lib/hooks/useContextMentions.helpers.js +61 -1
- package/lib/hooks/useContextMentions.js +5 -62
- package/lib/hooks/useEntitySearch.helpers.js +49 -1
- package/lib/hooks/useEntitySearch.js +22 -53
- package/lib/hooks/useFrequentlyUsedActions.js +22 -60
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.js +86 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +8 -82
- package/lib/index.js +2 -5
- package/lib/lang/br/index.js +1 -26
- package/lib/lang/en/index.js +1 -26
- package/lib/lang/es/index.js +1 -26
- package/lib/lang/fr/index.js +1 -26
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Agents/getAgents.helpers.js +61 -1
- package/lib/services/maia/Agents/getAgents.js +31 -59
- package/lib/services/utils/mapChatMessages.helpers.js +223 -0
- package/lib/services/utils/mapChatMessages.js +25 -249
- package/lib/store/sessions/sessionStreamManager.helpers.js +134 -0
- package/lib/store/sessions/sessionStreamManager.js +213 -273
- package/lib/styles/cascade.js +3 -29
- package/lib/styles/transitions.js +1 -3
- package/lib/types/global.d.js +1 -1
- package/lib/utils/hoursPlannerQuickActionType.js +1 -74
- package/lib/utils/renderContextMentions.helpers.js +110 -0
- package/lib/utils/renderContextMentions.js +4 -110
- package/lib/utils/streamActivityMessages.helpers.js +222 -0
- package/lib/utils/streamActivityMessages.js +21 -251
- package/package.json +1 -1
- package/lib/components/atoms/ActionableButton.spec.js +0 -111
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
- package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -66
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -211
- package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -41
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -253
- package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -33
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -25
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
- package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
- package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
- package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
- package/lib/components/atoms/Chip/Chip.spec.js +0 -82
- package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
- package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -88
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
- package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -77
- package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -48
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -231
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
- package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
- package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
- package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
- package/lib/components/atoms/Expand/Expand.spec.js +0 -57
- package/lib/components/atoms/Fade/Fade.spec.js +0 -31
- package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
- package/lib/components/atoms/HelpButton.spec.js +0 -87
- package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
- package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
- package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
- package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
- package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
- package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
- package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -26
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -444
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -20
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -53
- package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -22
- package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
- package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
- package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
- package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
- package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
- package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
- package/lib/components/atoms/NextPageLoader.spec.js +0 -37
- package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
- package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -86
- package/lib/components/atoms/PrimaryButton.spec.js +0 -42
- package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -170
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -199
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
- package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -8
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +0 -29
- package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +0 -38
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
- package/lib/components/atoms/Switch/Switch.spec.js +0 -41
- package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
- package/lib/components/atoms/TextArea/TextArea.spec.js +0 -68
- package/lib/components/atoms/ThirdButton.spec.js +0 -29
- package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
- package/lib/components/atoms/WithAppCfg.spec.js +0 -60
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -495
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -57
- package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -227
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -108
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -254
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
- package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
- package/lib/components/molecules/AgentInputBlock/index.js +0 -5
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
- package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
- package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
- package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
- package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
- package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
- package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -246
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -77
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -445
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -471
- package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -659
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -95
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
- package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
- package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -172
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
- package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -369
- package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -82
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
- package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
- package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
- package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
- package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -453
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -391
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1204
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -405
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -246
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -275
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -275
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -195
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -94
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -69
- package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
- package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
- package/lib/components/organisms/ChatAIPage/index.js +0 -3
- package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
- package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
- package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
- package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
- package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
- package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
- package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
- package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
- package/lib/constants/maiaFeatureAccess.spec.js +0 -30
- package/lib/constants/maiaHourAgentAccess.spec.js +0 -30
- package/lib/constants/maiaTaskPanelAccess.spec.js +0 -30
- package/lib/constants/permissions/clientRoleAccess.spec.js +0 -31
- package/lib/constants/permissions/utils.spec.js +0 -128
- package/lib/dev/DevMaiaPage.js +0 -30
- package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
- package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
- package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
- package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -231
- package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -313
- package/lib/hooks/useAgentSuggestions.spec.js +0 -89
- package/lib/hooks/useCaretPosition.spec.js +0 -58
- package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -506
- package/lib/hooks/useChatManager/useChatManager.spec.js +0 -1261
- package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -176
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -379
- package/lib/hooks/useChats/useChats.spec.js +0 -208
- package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
- package/lib/hooks/useClientSearch.spec.js +0 -86
- package/lib/hooks/useContextMentions.helpers.spec.js +0 -143
- package/lib/hooks/useContextMentions.spec.js +0 -239
- package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -115
- package/lib/hooks/useContextPinPopover.spec.js +0 -159
- package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
- package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
- package/lib/hooks/useDebounce.spec.js +0 -42
- package/lib/hooks/useEntitySearch.helpers.spec.js +0 -321
- package/lib/hooks/useEntitySearch.spec.js +0 -443
- package/lib/hooks/useEvent.spec.js +0 -45
- package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
- package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -135
- package/lib/hooks/useIsMaiaPageRoute.js +0 -26
- package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
- package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
- package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
- package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
- package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
- package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
- package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
- package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
- package/lib/hooks/useMentionPopover.helpers.spec.js +0 -71
- package/lib/hooks/useMentionPopover.spec.js +0 -215
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -132
- package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
- package/lib/hooks/useModal/useModal.spec.js +0 -73
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -192
- package/lib/hooks/useProjectSearch.helpers.spec.js +0 -70
- package/lib/hooks/useProjectSearch.spec.js +0 -91
- package/lib/hooks/useProjectSummary.spec.js +0 -193
- package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -92
- package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
- package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
- package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
- package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
- package/lib/hooks/useRecentContexts.spec.js +0 -139
- package/lib/hooks/useResize.spec.js +0 -37
- package/lib/hooks/useSkillsCatalog.spec.js +0 -88
- package/lib/hooks/useSlashCommands.spec.js +0 -139
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
- package/lib/hooks/useStreamResponse.spec.js +0 -199
- package/lib/hooks/useT.spec.js +0 -20
- package/lib/hooks/useToggle.spec.js +0 -33
- package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
- package/lib/services/maia/Access/updateAccess.spec.js +0 -137
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -56
- package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
- package/lib/services/maia/Agents/connectors.spec.js +0 -359
- package/lib/services/maia/Agents/createAgent.spec.js +0 -55
- package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
- package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
- package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -211
- package/lib/services/maia/Agents/getAgents.spec.js +0 -697
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
- package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
- package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
- package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
- package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
- package/lib/services/maia/Chats/patchChat.spec.js +0 -41
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
- package/lib/services/maia/Knowledge/delete.spec.js +0 -45
- package/lib/services/maia/Knowledge/download.spec.js +0 -78
- package/lib/services/maia/Knowledge/save.spec.js +0 -58
- package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -153
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
- package/lib/services/maia/Skills/createSkill.spec.js +0 -68
- package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
- package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
- package/lib/services/maia/Skills/getSkills.spec.js +0 -152
- package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
- package/lib/services/maia/client.spec.js +0 -56
- package/lib/services/utils/fetchCOR.spec.js +0 -211
- package/lib/services/utils/getCookie.spec.js +0 -20
- package/lib/services/utils/mapChatMessages.spec.js +0 -254
- package/lib/store/chatsSidebarOptimistic.spec.js +0 -112
- package/lib/store/maiaLastChatPersistence.spec.js +0 -22
- package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
- package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
- package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
- package/lib/store/sessions/sessionNotifications.spec.js +0 -106
- package/lib/store/sessions/sessionStreamManager.spec.js +0 -503
- package/lib/store/sessions/sessions.types.spec.js +0 -16
- package/lib/store/sessions/useSessionsStore.spec.js +0 -135
- package/lib/store/useChatsStore.spec.js +0 -619
- package/lib/store/useFaqsStore.spec.js +0 -57
- package/lib/utils/actionCategoryMap.spec.js +0 -18
- package/lib/utils/agentDisplayName.spec.js +0 -44
- package/lib/utils/autoApproveStorage.spec.js +0 -25
- package/lib/utils/chatInputFiles.spec.js +0 -39
- package/lib/utils/contextMentionIcons.spec.js +0 -41
- package/lib/utils/contextMentionLabel.spec.js +0 -13
- package/lib/utils/contextMentionTriggers.spec.js +0 -38
- package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
- package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
- package/lib/utils/entityLinkRender.spec.js +0 -72
- package/lib/utils/fileDownloadHelper.spec.js +0 -67
- package/lib/utils/formatQuickActionMessage.spec.js +0 -27
- package/lib/utils/formatUnreadCount.spec.js +0 -12
- package/lib/utils/getUnitFileSize.spec.js +0 -18
- package/lib/utils/hitlAnalytics.spec.js +0 -100
- package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
- package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
- package/lib/utils/imagePreprocessor.spec.js +0 -112
- package/lib/utils/maiaPageRoute.js +0 -24
- package/lib/utils/maiaPageRoute.spec.js +0 -23
- package/lib/utils/mapBackendLang.spec.js +0 -19
- package/lib/utils/navigateContextEntity.spec.js +0 -50
- package/lib/utils/normalizeAgentConnectors.spec.js +0 -98
- package/lib/utils/orchestratorSubagents.spec.js +0 -32
- package/lib/utils/reasoningMappers.spec.js +0 -103
- package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
- package/lib/utils/renderContextMentions.spec.js +0 -158
- package/lib/utils/retryCompletion.spec.js +0 -99
- package/lib/utils/skillContentSize.spec.js +0 -13
- package/lib/utils/slashCommandMarker.spec.js +0 -43
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
- package/lib/utils/sseStreamContent.spec.js +0 -31
- package/lib/utils/streamActivityMessages.spec.js +0 -253
- package/lib/utils/validateTrimmedFields.spec.js +0 -26
|
@@ -20,7 +20,7 @@ import { useUser } from '../../../context/cor-user';
|
|
|
20
20
|
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
21
21
|
import { useOnboardingNavigation } from '../../../hooks/useOnboardingNavigation';
|
|
22
22
|
import { useMaiaTaskPanelZIndex } from '../../../hooks/useMaiaTaskPanelZIndex';
|
|
23
|
-
import { computeModelDropdownHeight, EMOJI_PORTAL_ID, filterAvailableAgentModels, resolveDropdownPosition, VALIDATION_FIELDS_RULES } from './AbmGeneralSection.helpers';
|
|
23
|
+
import { buildAbmGeneralFormValues, computeModelDropdownHeight, EMOJI_PORTAL_ID, filterAvailableAgentModels, resolveDropdownPosition, resolveModelDropdownToggleState, shouldCloseModelDropdownOnEscape, shouldCloseModelDropdownOnOutsideClick, shouldRegisterModelDropdownListeners, shouldRepositionModelDropdown, shouldUpdateSelectedAgentModel, VALIDATION_FIELDS_RULES } from './AbmGeneralSection.helpers';
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
25
|
var validationFieldsRules = VALIDATION_FIELDS_RULES;
|
|
26
26
|
export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
@@ -51,13 +51,8 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
51
51
|
focusedField = _useState6[0],
|
|
52
52
|
setFocusedField = _useState6[1];
|
|
53
53
|
var selectorRef = useRef(null);
|
|
54
|
-
var _useState7 = useState({
|
|
55
|
-
|
|
56
|
-
aiModel: values.general.aiModel,
|
|
57
|
-
inputPlaceholder: values.general.inputPlaceholder || '',
|
|
58
|
-
introduction: values.general.introduction || '',
|
|
59
|
-
userPrompt: values.general.userPrompt || '',
|
|
60
|
-
emoji: values.general.emoji || ''
|
|
54
|
+
var _useState7 = useState(function () {
|
|
55
|
+
return buildAbmGeneralFormValues(values.general);
|
|
61
56
|
}),
|
|
62
57
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
63
58
|
formValues = _useState8[0],
|
|
@@ -74,7 +69,7 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
74
69
|
}, [dropdownHeight]);
|
|
75
70
|
var handleOpenModalAiModel = function handleOpenModalAiModel() {
|
|
76
71
|
eventAmplitude(EVENTS.selectModel);
|
|
77
|
-
if (
|
|
72
|
+
if (resolveModelDropdownToggleState(openModalAiModel)) {
|
|
78
73
|
updateDropdownPosition();
|
|
79
74
|
}
|
|
80
75
|
setOpenModalAiModel(function (prev) {
|
|
@@ -86,7 +81,7 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
86
81
|
if (event) {
|
|
87
82
|
event.stopPropagation();
|
|
88
83
|
}
|
|
89
|
-
if (
|
|
84
|
+
if (shouldUpdateSelectedAgentModel(formValues === null || formValues === void 0 || (_formValues$aiModel = formValues.aiModel) === null || _formValues$aiModel === void 0 ? void 0 : _formValues$aiModel.id, model.id)) {
|
|
90
85
|
eventAmplitude(EVENTS.chooseModel, {
|
|
91
86
|
option: model.display_name
|
|
92
87
|
});
|
|
@@ -104,23 +99,23 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
104
99
|
};
|
|
105
100
|
useEffect(function () {
|
|
106
101
|
var handleClickOutside = function handleClickOutside(event) {
|
|
107
|
-
if (openModalAiModel) {
|
|
102
|
+
if (shouldRegisterModelDropdownListeners(openModalAiModel)) {
|
|
108
103
|
var target = event.target;
|
|
109
|
-
var isInModal = target.closest('[data-selector-modal]');
|
|
110
|
-
var isInOption = target.closest('[data-selector-option]');
|
|
111
|
-
if (
|
|
104
|
+
var isInModal = Boolean(target.closest('[data-selector-modal]'));
|
|
105
|
+
var isInOption = Boolean(target.closest('[data-selector-option]'));
|
|
106
|
+
if (shouldCloseModelDropdownOnOutsideClick(openModalAiModel, isInModal, isInOption)) {
|
|
112
107
|
setOpenModalAiModel(false);
|
|
113
108
|
}
|
|
114
109
|
}
|
|
115
110
|
};
|
|
116
111
|
var handleKeyDown = function handleKeyDown(event) {
|
|
117
|
-
if (event.key
|
|
112
|
+
if (shouldCloseModelDropdownOnEscape(event.key, openModalAiModel)) {
|
|
118
113
|
event.preventDefault();
|
|
119
114
|
event.stopPropagation();
|
|
120
115
|
setOpenModalAiModel(false);
|
|
121
116
|
}
|
|
122
117
|
};
|
|
123
|
-
if (openModalAiModel) {
|
|
118
|
+
if (shouldRegisterModelDropdownListeners(openModalAiModel)) {
|
|
124
119
|
document.addEventListener('keydown', handleKeyDown);
|
|
125
120
|
document.addEventListener('click', handleClickOutside);
|
|
126
121
|
return function () {
|
|
@@ -131,7 +126,7 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
131
126
|
return undefined;
|
|
132
127
|
}, [openModalAiModel]);
|
|
133
128
|
useEffect(function () {
|
|
134
|
-
if (!openModalAiModel) return undefined;
|
|
129
|
+
if (!shouldRepositionModelDropdown(openModalAiModel)) return undefined;
|
|
135
130
|
var handleReposition = function handleReposition() {
|
|
136
131
|
return updateDropdownPosition();
|
|
137
132
|
};
|
|
@@ -378,4 +373,4 @@ export var AbmGeneralSection = function AbmGeneralSection(_ref) {
|
|
|
378
373
|
}), renderModelDropdown()]
|
|
379
374
|
});
|
|
380
375
|
};
|
|
381
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwiY3JlYXRlUG9ydGFsIiwiUGx1cyIsIkNoZXZyb25Eb3duIiwiT3BlbiIsIkNVU2VsZWN0IiwiQnV0dG9uRW1vamkiLCJ1c2VUcmFuc2xhdGlvbiIsIlRvb2x0aXAiLCJBZ2VudE1haWFJY29uIiwiQ3VzdG9tSW5wdXQiLCJTQ0FHU1dyYXBwZXJTZWxlY3RvciIsIlNDQUdTU2VsZWN0b3JNb2RhbCIsIlNDQUdTT3B0aW9uIiwiU0NBR1NPcHRpb25MYWJlbCIsIlNDQUdTT3B0aW9uRGVzY3JpcHRpb24iLCJTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50IiwiU0NBR1NXcmFwcGVyQ29udGVudCIsIlNDQUdTV3JhcHBlckVtb2ppIiwiU0NBR1NXcmFwcGVyQWRkSWNvbiIsIlNDQUdTQnV0dG9uRW1vamkiLCJTQ0FHU1dyYXBwZXJFbW9qaUNvbnRlbnQiLCJTQ0FHU1dyYXBwZXJFbW9qaUljb24iLCJTQ0FHU1dyYXBwZXIiLCJTQ0FHU1dyYXBwZXJIZWFkZXIiLCJTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZSIsIlNDQUdTV3JhcHBlckhlYWRlckluZm8iLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQiLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nVGV4dCIsIlNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQiLCJTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQiLCJTQ0FHU0dlbmVyYWxDYXJkIiwiU0NBR1NGaWVsZFN1cmZhY2UiLCJTQ0FHU05vTW9kZWxzQXZhaWxhYmxlIiwiU0NBR1NPcHRpb25hbEZpZWxkcyIsIlNDQUdTT3B0aW9uYWxMYWJlbCIsIkN1c3RvbVRleHRBcmVhIiwidXNlVXNlciIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlT25ib2FyZGluZ05hdmlnYXRpb24iLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiY29tcHV0ZU1vZGVsRHJvcGRvd25IZWlnaHQiLCJFTU9KSV9QT1JUQUxfSUQiLCJmaWx0ZXJBdmFpbGFibGVBZ2VudE1vZGVscyIsInJlc29sdmVEcm9wZG93blBvc2l0aW9uIiwiVkFMSURBVElPTl9GSUVMRFNfUlVMRVMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidmFsaWRhdGlvbkZpZWxkc1J1bGVzIiwiQWJtR2VuZXJhbFNlY3Rpb24iLCJfcmVmIiwiX3ZhbHVlcyRnZW5lcmFsJGNyZWF0IiwiX3ZhbHVlcyRnZW5lcmFsJGNyZWF0MiIsIl92YWx1ZXMkZ2VuZXJhbCR1c2VyUCIsIl9mb3JtVmFsdWVzJGFpTW9kZWw0IiwiX3ZhbHVlcyRnZW5lcmFsJGludHJvIiwiX3ZhbHVlcyRnZW5lcmFsJGlucHV0IiwidmFsdWVzIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJhZ2VudE1vZGVscyIsImxvYWRpbmciLCJ0b29sdGlwWkluZGV4IiwidXNlciIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VPbmJvYXJkaW5nTmF2aWdhdCIsImhhbmRsZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIiwiZW1vamlQb3J0YWxaSW5kZXgiLCJtb2RlbERyb3Bkb3duWkluZGV4IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwib3Blbk1vZGFsQWlNb2RlbCIsInNldE9wZW5Nb2RhbEFpTW9kZWwiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImRyb3Bkb3duUG9zaXRpb24iLCJzZXREcm9wZG93blBvc2l0aW9uIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJmb2N1c2VkRmllbGQiLCJzZXRGb2N1c2VkRmllbGQiLCJzZWxlY3RvclJlZiIsIl91c2VTdGF0ZTciLCJuYW1lIiwiZ2VuZXJhbCIsImFpTW9kZWwiLCJpbnB1dFBsYWNlaG9sZGVyIiwiaW50cm9kdWN0aW9uIiwidXNlclByb21wdCIsImVtb2ppIiwiX3VzZVN0YXRlOCIsImZvcm1WYWx1ZXMiLCJzZXRGb3JtVmFsdWVzIiwiYXZhaWxhYmxlQWdlbnRNb2RlbHMiLCJkcm9wZG93bkhlaWdodCIsImxlbmd0aCIsInVwZGF0ZURyb3Bkb3duUG9zaXRpb24iLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaGFuZGxlT3Blbk1vZGFsQWlNb2RlbCIsInNlbGVjdE1vZGVsIiwicHJldiIsImhhbmRsZVNlbGVjdE1vZGVsIiwibW9kZWwiLCJldmVudCIsIl9mb3JtVmFsdWVzJGFpTW9kZWwiLCJzdG9wUHJvcGFnYXRpb24iLCJpZCIsImNob29zZU1vZGVsIiwib3B0aW9uIiwiZGlzcGxheV9uYW1lIiwiX29iamVjdFNwcmVhZCIsImtleSIsInZhbHVlIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiaXNJbk1vZGFsIiwiY2xvc2VzdCIsImlzSW5PcHRpb24iLCJoYW5kbGVLZXlEb3duIiwicHJldmVudERlZmF1bHQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidW5kZWZpbmVkIiwiaGFuZGxlUmVwb3NpdGlvbiIsIndpbmRvdyIsImNvbnRhaW5lciIsImdldEVsZW1lbnRCeUlkIiwiY3JlYXRlZCIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInBvc2l0aW9uIiwidG9wIiwibGVmdCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInpJbmRleCIsIlN0cmluZyIsIl9jb250YWluZXIiLCJwYXJlbnROb2RlIiwiaGFzQ2hpbGROb2RlcyIsInJlbW92ZUNoaWxkIiwiaGFuZGxlU2V0R2VuZXJhbFZhbHVlcyIsImhhbmRsZVNlbGVjdEVtb2ppIiwiaGFuZGxlRm9jdXMiLCJmaWVsZE5hbWUiLCJoYW5kbGVCbHVyIiwicmVuZGVyTW9kZWxEcm9wZG93biIsIiRsZWZ0IiwiJHdpZHRoIiwid2lkdGgiLCIkdG9wIiwiJGJvdHRvbSIsImJvdHRvbSIsIiR6SW5kZXgiLCIkcGxhY2VtZW50IiwicGxhY2VtZW50IiwiY2hpbGRyZW4iLCJtYXAiLCJfZm9ybVZhbHVlcyRhaU1vZGVsMiIsIl9mb3JtVmFsdWVzJGFpTW9kZWwzIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJrZXl3b3JkIiwiJGluZGV4IiwiY3JlYXRlZF9ieSIsInRpdGxlIiwiaXNfZGVsZXRlZCIsInBvcnRhbElkIiwib25TZWxlY3QiLCJyZW5kZXJDb21wb25lbnQiLCJhIiwicmVmIiwiaWNvblJlZiIsInR5cGUiLCJoYW5kbGVPcGVuU3VnZ2VzdGlvbkxpc3QiLCJoZWlnaHQiLCJjb2xvciIsImNvbXBhbnlJZCIsImNvbXBhbnlfaWQiLCJ0b1N0cmluZyIsImxhYmVsIiwiY29uY2F0IiwicGxhY2Vob2xkZXIiLCJlcnJvck1lc3NhZ2UiLCJvbkNoYW5nZSIsImlucHV0S2V5IiwibWF4TGVuZ3RoIiwiaXNUcmltbWVkIiwiaGFuZGxlQ2hhbmdlIiwiY3VzdG9tSGVpZ2h0IiwiZW5kSWNvbiIsImhhbmRsZUNsaWNrQWN0aW9uIiwiZGlzYWJsZSIsIm9wZW4iLCJoaWRkZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1HZW5lcmFsU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BsdXMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgT3BlbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL09wZW4nXG5pbXBvcnQgeyBDVVNlbGVjdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3NlbGVjdG9yL2xpYi9jb21wb25lbnRzL0NVU2VsZWN0J1xuaW1wb3J0IHsgQnV0dG9uRW1vamkgfSBmcm9tICdAcHJvamVjdGNvci9lbW9qaS1yZWFjdGlvbidcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHR5cGUgTW9kYWxWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudE1vZGFsJ1xuaW1wb3J0IHsgQWdlbnRNYWlhSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0FnZW50TWFpYUljb24nXG5pbXBvcnQgeyBDdXN0b21JbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL0lucHV0J1xuaW1wb3J0IHtcbiAgU0NBR1NXcmFwcGVyU2VsZWN0b3IsXG4gIFNDQUdTU2VsZWN0b3JNb2RhbCxcbiAgU0NBR1NPcHRpb24sXG4gIFNDQUdTT3B0aW9uTGFiZWwsXG4gIFNDQUdTT3B0aW9uRGVzY3JpcHRpb24sXG4gIFNDQUdTU2VsZWN0b3JNb2RhbENvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckNvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckVtb2ppLFxuICBTQ0FHU1dyYXBwZXJBZGRJY29uLFxuICBTQ0FHU0J1dHRvbkVtb2ppLFxuICBTQ0FHU1dyYXBwZXJFbW9qaUNvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckVtb2ppSWNvbixcbiAgU0NBR1NXcmFwcGVyLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXIsXG4gIFNDQUdTV3JhcHBlckhlYWRlclRpdGxlLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvLFxuICBTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nLFxuICBTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nQ29udGVudCxcbiAgU0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQsXG4gIFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQsXG4gIFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkLFxuICBTQ0FHU0dlbmVyYWxDYXJkLFxuICBTQ0FHU0ZpZWxkU3VyZmFjZSxcbiAgU0NBR1NOb01vZGVsc0F2YWlsYWJsZSxcbiAgU0NBR1NPcHRpb25hbEZpZWxkcyxcbiAgU0NBR1NPcHRpb25hbExhYmVsLFxufSBmcm9tICcuL0FibUdlbmVyYWxTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB0eXBlIHsgQWdlbnRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ3VzdG9tVGV4dEFyZWEgfSBmcm9tICcuLi8uLi9hdG9tcy9UZXh0QXJlYS9DdXN0b21UZXh0QXJlYSdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlT25ib2FyZGluZ05hdmlnYXRpb24gfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VPbmJvYXJkaW5nTmF2aWdhdGlvbidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuaW1wb3J0IHtcbiAgY29tcHV0ZU1vZGVsRHJvcGRvd25IZWlnaHQsXG4gIEVNT0pJX1BPUlRBTF9JRCxcbiAgZmlsdGVyQXZhaWxhYmxlQWdlbnRNb2RlbHMsXG4gIHJlc29sdmVEcm9wZG93blBvc2l0aW9uLFxuICBWQUxJREFUSU9OX0ZJRUxEU19SVUxFUyxcbiAgdHlwZSBEcm9wZG93blBvc2l0aW9uLFxufSBmcm9tICcuL0FibUdlbmVyYWxTZWN0aW9uLmhlbHBlcnMnXG5cbmNvbnN0IHZhbGlkYXRpb25GaWVsZHNSdWxlcyA9IFZBTElEQVRJT05fRklFTERTX1JVTEVTXG5cbmV4cG9ydCBjb25zdCBBYm1HZW5lcmFsU2VjdGlvbiA9ICh7XG4gIHZhbHVlcyxcbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXMsXG4gIGFnZW50TW9kZWxzLFxuICBsb2FkaW5nLFxuICB0b29sdGlwWkluZGV4LFxufToge1xuICB2YWx1ZXM6IE1vZGFsVmFsdWVzXG4gIGhhbmRsZVNldEFnZW50VmFsdWVzOiAoeyBrZXksIHZhbHVlIH06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0pID0+IHZvaWRcbiAgYWdlbnRNb2RlbHM6IEFnZW50TW9kZWxbXVxuICBsb2FkaW5nOiBib29sZWFuXG4gIHRvb2x0aXBaSW5kZXg/OiBudW1iZXJcbn0pID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2FibV9hZ2VudF9zZWN0aW9uJ10pXG4gIGNvbnN0IHsgaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24gfSA9IHVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKClcbiAgY29uc3QgZW1vamlQb3J0YWxaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDE1MDAsICduZXN0ZWRNb2RhbCcpXG4gIGNvbnN0IG1vZGVsRHJvcGRvd25aSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDE1MDAsICduZXN0ZWRNb2RhbCcpXG4gIGNvbnN0IFtvcGVuTW9kYWxBaU1vZGVsLCBzZXRPcGVuTW9kYWxBaU1vZGVsXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZHJvcGRvd25Qb3NpdGlvbiwgc2V0RHJvcGRvd25Qb3NpdGlvbl0gPSB1c2VTdGF0ZTxEcm9wZG93blBvc2l0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2ZvY3VzZWRGaWVsZCwgc2V0Rm9jdXNlZEZpZWxkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNlbGVjdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IFtmb3JtVmFsdWVzLCBzZXRGb3JtVmFsdWVzXSA9IHVzZVN0YXRlPHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBhaU1vZGVsOiBBZ2VudE1vZGVsIHwgbnVsbFxuICAgIGlucHV0UGxhY2Vob2xkZXI6IHN0cmluZ1xuICAgIGludHJvZHVjdGlvbjogc3RyaW5nXG4gICAgdXNlclByb21wdDogc3RyaW5nXG4gICAgZW1vamk6IHN0cmluZ1xuICB9Pih7XG4gICAgbmFtZTogdmFsdWVzLmdlbmVyYWwubmFtZSB8fCAnJyxcbiAgICBhaU1vZGVsOiB2YWx1ZXMuZ2VuZXJhbC5haU1vZGVsLFxuICAgIGlucHV0UGxhY2Vob2xkZXI6IHZhbHVlcy5nZW5lcmFsLmlucHV0UGxhY2Vob2xkZXIgfHwgJycsXG4gICAgaW50cm9kdWN0aW9uOiB2YWx1ZXMuZ2VuZXJhbC5pbnRyb2R1Y3Rpb24gfHwgJycsXG4gICAgdXNlclByb21wdDogdmFsdWVzLmdlbmVyYWwudXNlclByb21wdCB8fCAnJyxcbiAgICBlbW9qaTogdmFsdWVzLmdlbmVyYWwuZW1vamkgfHwgJycsXG4gIH0pXG5cbiAgY29uc3QgYXZhaWxhYmxlQWdlbnRNb2RlbHMgPSB1c2VNZW1vKCgpID0+IGZpbHRlckF2YWlsYWJsZUFnZW50TW9kZWxzKGFnZW50TW9kZWxzKSwgW2FnZW50TW9kZWxzXSlcblxuICBjb25zdCBkcm9wZG93bkhlaWdodCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gY29tcHV0ZU1vZGVsRHJvcGRvd25IZWlnaHQoYXZhaWxhYmxlQWdlbnRNb2RlbHMubGVuZ3RoKSxcbiAgICBbYXZhaWxhYmxlQWdlbnRNb2RlbHMubGVuZ3RoXVxuICApXG5cbiAgY29uc3QgdXBkYXRlRHJvcGRvd25Qb3NpdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXNlbGVjdG9yUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIHNldERyb3Bkb3duUG9zaXRpb24ocmVzb2x2ZURyb3Bkb3duUG9zaXRpb24oc2VsZWN0b3JSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgZHJvcGRvd25IZWlnaHQpKVxuICB9LCBbZHJvcGRvd25IZWlnaHRdKVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5Nb2RhbEFpTW9kZWwgPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLnNlbGVjdE1vZGVsKVxuICAgIGlmICghb3Blbk1vZGFsQWlNb2RlbCkge1xuICAgICAgdXBkYXRlRHJvcGRvd25Qb3NpdGlvbigpXG4gICAgfVxuICAgIHNldE9wZW5Nb2RhbEFpTW9kZWwocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE1vZGVsID0gKG1vZGVsOiBBZ2VudE1vZGVsLCBldmVudD86IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgfVxuICAgIGlmIChtb2RlbC5pZCAhPT0gZm9ybVZhbHVlcz8uYWlNb2RlbD8uaWQpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5jaG9vc2VNb2RlbCwgeyBvcHRpb246IG1vZGVsLmRpc3BsYXlfbmFtZSB9KVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGFpTW9kZWw6IG1vZGVsLFxuICAgICAgfSkpXG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7IGtleTogJ2FpTW9kZWwnLCB2YWx1ZTogbW9kZWwgfSlcbiAgICB9XG4gICAgc2V0T3Blbk1vZGFsQWlNb2RlbChmYWxzZSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKG9wZW5Nb2RhbEFpTW9kZWwpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICAgIGNvbnN0IGlzSW5Nb2RhbCA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1zZWxlY3Rvci1tb2RhbF0nKVxuICAgICAgICBjb25zdCBpc0luT3B0aW9uID0gdGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXNlbGVjdG9yLW9wdGlvbl0nKVxuXG4gICAgICAgIGlmICghaXNJbk1vZGFsICYmICFpc0luT3B0aW9uKSB7XG4gICAgICAgICAgc2V0T3Blbk1vZGFsQWlNb2RlbChmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnICYmIG9wZW5Nb2RhbEFpTW9kZWwpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICBzZXRPcGVuTW9kYWxBaU1vZGVsKGZhbHNlKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcGVuTW9kYWxBaU1vZGVsKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bilcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24pXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtvcGVuTW9kYWxBaU1vZGVsXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb3Blbk1vZGFsQWlNb2RlbCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUmVwb3NpdGlvbiA9ICgpID0+IHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXBvc2l0aW9uKVxuICAgIC8vIGNhcHR1cmU6IGVsIEFCTSBzY3JvbGxlYSBlbiBjb250ZW5lZG9yZXMgaW50ZXJub3MsIG5vIGVuIHdpbmRvd1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB0cnVlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB0cnVlKVxuICAgIH1cbiAgfSwgW29wZW5Nb2RhbEFpTW9kZWwsIHVwZGF0ZURyb3Bkb3duUG9zaXRpb25dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEVNT0pJX1BPUlRBTF9JRClcbiAgICBjb25zdCBjcmVhdGVkID0gIWNvbnRhaW5lclxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgY29udGFpbmVyLmlkID0gRU1PSklfUE9SVEFMX0lEXG4gICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gICAgICBjb250YWluZXIuc3R5bGUudG9wID0gJzAnXG4gICAgICBjb250YWluZXIuc3R5bGUubGVmdCA9ICcwJ1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpXG4gICAgfVxuICAgIGNvbnRhaW5lci5zdHlsZS56SW5kZXggPSBTdHJpbmcoZW1vamlQb3J0YWxaSW5kZXgpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjcmVhdGVkICYmIGNvbnRhaW5lcj8ucGFyZW50Tm9kZSAmJiAhY29udGFpbmVyLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250YWluZXIpXG4gICAgICB9XG4gICAgfVxuICB9LCBbZW1vamlQb3J0YWxaSW5kZXhdKVxuXG4gIGNvbnN0IGhhbmRsZVNldEdlbmVyYWxWYWx1ZXMgPSAodmFsdWU6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7IGtleSwgdmFsdWUgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEVtb2ppID0gZW1vamkgPT4ge1xuICAgIGhhbmRsZVNldEdlbmVyYWxWYWx1ZXMoZW1vamkuZW1vamksICdlbW9qaScpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGb2N1cyA9IChmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgIHNldEZvY3VzZWRGaWVsZChmaWVsZE5hbWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIHNldEZvY3VzZWRGaWVsZChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRGb3JtVmFsdWVzKHtcbiAgICAgIG5hbWU6IHZhbHVlcy5nZW5lcmFsLm5hbWUgfHwgJycsXG4gICAgICBhaU1vZGVsOiB2YWx1ZXMuZ2VuZXJhbC5haU1vZGVsLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogdmFsdWVzLmdlbmVyYWwuaW5wdXRQbGFjZWhvbGRlciB8fCAnJyxcbiAgICAgIGludHJvZHVjdGlvbjogdmFsdWVzLmdlbmVyYWwuaW50cm9kdWN0aW9uIHx8ICcnLFxuICAgICAgdXNlclByb21wdDogdmFsdWVzLmdlbmVyYWwudXNlclByb21wdCB8fCAnJyxcbiAgICAgIGVtb2ppOiB2YWx1ZXMuZ2VuZXJhbC5lbW9qaSB8fCAnJyxcbiAgICB9KVxuICB9LCBbdmFsdWVzLmdlbmVyYWxdKVxuXG4gIGNvbnN0IHJlbmRlck1vZGVsRHJvcGRvd24gPSAoKSA9PiB7XG4gICAgaWYgKCFvcGVuTW9kYWxBaU1vZGVsIHx8ICFkcm9wZG93blBvc2l0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0FHU1NlbGVjdG9yTW9kYWxcbiAgICAgICAgZGF0YS1zZWxlY3Rvci1tb2RhbFxuICAgICAgICAkbGVmdD17ZHJvcGRvd25Qb3NpdGlvbi5sZWZ0fVxuICAgICAgICAkd2lkdGg9e2Ryb3Bkb3duUG9zaXRpb24ud2lkdGh9XG4gICAgICAgICR0b3A9e2Ryb3Bkb3duUG9zaXRpb24udG9wfVxuICAgICAgICAkYm90dG9tPXtkcm9wZG93blBvc2l0aW9uLmJvdHRvbX1cbiAgICAgICAgJHpJbmRleD17bW9kZWxEcm9wZG93blpJbmRleH1cbiAgICAgICAgJHBsYWNlbWVudD17ZHJvcGRvd25Qb3NpdGlvbi5wbGFjZW1lbnR9XG4gICAgICA+XG4gICAgICAgIDxTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50PlxuICAgICAgICAgIHthdmFpbGFibGVBZ2VudE1vZGVscy5sZW5ndGggPT09IDAgJiYgIWxvYWRpbmcgPyAoXG4gICAgICAgICAgICA8U0NBR1NOb01vZGVsc0F2YWlsYWJsZT57dCgnZ2VuZXJhbFNlY3Rpb24ubm9Nb2RlbHNBdmFpbGFibGUnKX08L1NDQUdTTm9Nb2RlbHNBdmFpbGFibGU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIGF2YWlsYWJsZUFnZW50TW9kZWxzLm1hcChtb2RlbCA9PiAoXG4gICAgICAgICAgICAgIDxTQ0FHU09wdGlvblxuICAgICAgICAgICAgICAgIGtleT17bW9kZWwuaWR9XG4gICAgICAgICAgICAgICAgdmFsdWU9e21vZGVsLmlkfVxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e21vZGVsLmlkID09PSBmb3JtVmFsdWVzPy5haU1vZGVsPy5pZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBoYW5kbGVTZWxlY3RNb2RlbChtb2RlbCwgZXZlbnQpfVxuICAgICAgICAgICAgICAgIGRhdGEtc2VsZWN0b3Itb3B0aW9uXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NBR1NPcHRpb25MYWJlbCBpc1NlbGVjdGVkPXttb2RlbC5pZCA9PT0gZm9ybVZhbHVlcz8uYWlNb2RlbD8uaWR9PlxuICAgICAgICAgICAgICAgICAge21vZGVsLmRpc3BsYXlfbmFtZX1cbiAgICAgICAgICAgICAgICA8L1NDQUdTT3B0aW9uTGFiZWw+XG4gICAgICAgICAgICAgICAge21vZGVsLmtleXdvcmQgJiYgPFNDQUdTT3B0aW9uRGVzY3JpcHRpb24+e21vZGVsLmtleXdvcmR9PC9TQ0FHU09wdGlvbkRlc2NyaXB0aW9uPn1cbiAgICAgICAgICAgICAgPC9TQ0FHU09wdGlvbj5cbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50PlxuICAgICAgPC9TQ0FHU1NlbGVjdG9yTW9kYWw+LFxuICAgICAgZG9jdW1lbnQuYm9keVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUdTV3JhcHBlciBvcGVuTW9kYWxBaU1vZGVsPXtvcGVuTW9kYWxBaU1vZGVsfT5cbiAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXIgJGluZGV4PXswfT5cbiAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlclRpdGxlPlxuICAgICAgICAgIDxzcGFuPnt0KCdnZW5lcmFsU2VjdGlvbi5nZW5lcmFsU2V0dGluZ3MnKX08L3NwYW4+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQ+e3QoJ2dlbmVyYWxTZWN0aW9uLnJlcXVpcmVkRmllbGRzTGFiZWwnKX08L1NDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQ+XG4gICAgICAgIDwvU0NBR1NXcmFwcGVySGVhZGVyVGl0bGU+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvPnt0KCdnZW5lcmFsU2VjdGlvbi5pbmZvTGFiZWwnKX08L1NDQUdTV3JhcHBlckhlYWRlckluZm8+XG4gICAgICA8L1NDQUdTV3JhcHBlckhlYWRlcj5cbiAgICAgIHsnY3JlYXRlZF9ieScgaW4gdmFsdWVzLmdlbmVyYWwgJiYgdmFsdWVzLmdlbmVyYWwuY3JlYXRlZF9ieSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgekluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgIHZhbHVlcy5nZW5lcmFsLmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWRcbiAgICAgICAgICAgICAgPyB0KCdnZW5lcmFsU2VjdGlvbi5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpXG4gICAgICAgICAgICAgIDogdCgnZ2VuZXJhbFNlY3Rpb24uY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbFNlY3Rpb24uY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0TmFtZT57dmFsdWVzLmdlbmVyYWwuY3JlYXRlZF9ieT8ubmFtZX08L1NDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVySGVhZGVyQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKX1cbiAgICAgIDxTQ0FHU0dlbmVyYWxDYXJkICRpbmRleD17MX0+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJDb250ZW50PlxuICAgICAgICAgIDxTQ0FHU1dyYXBwZXJFbW9qaT5cbiAgICAgICAgICAgIDxCdXR0b25FbW9qaVxuICAgICAgICAgICAgICBwb3J0YWxJZD17RU1PSklfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlU2VsZWN0RW1vaml9XG4gICAgICAgICAgICAgIHJlbmRlckNvbXBvbmVudD17YSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxTQ0FHU0J1dHRvbkVtb2ppXG4gICAgICAgICAgICAgICAgICAgIHJlZj17YS5pY29uUmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17YS5oYW5kbGVPcGVuU3VnZ2VzdGlvbkxpc3R9XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYWJtLWdlbmVyYWwtZW1vamktYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFNDQUdTV3JhcHBlckVtb2ppQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NBR1NXcmFwcGVyRW1vamlJY29uPntmb3JtVmFsdWVzLmVtb2ppIHx8IDxBZ2VudE1haWFJY29uIC8+fTwvU0NBR1NXcmFwcGVyRW1vamlJY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ0FHU1dyYXBwZXJBZGRJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBsdXMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSBjb2xvcj1cInJnYmEoMTM1LCA2NCwgMTkxLCAxKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ0FHU1dyYXBwZXJBZGRJY29uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDQUdTV3JhcHBlckVtb2ppQ29udGVudD5cbiAgICAgICAgICAgICAgICAgIDwvU0NBR1NCdXR0b25FbW9qaT5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNvbXBhbnlJZD17dXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyRW1vamk+XG4gICAgICAgICAgPFNDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICAgICAgPEN1c3RvbUlucHV0XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5uYW1lJyl9ICogKCR7dmFsdWVzLmdlbmVyYWwubmFtZS5sZW5ndGggfHwgMH0tJHt2YWxpZGF0aW9uRmllbGRzUnVsZXMubmFtZX0pYH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLm5hbWVQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U9e3QoJ2dlbmVyYWxTZWN0aW9uLmVycm9yLm1heENhcmFjdGVyTmFtZScpfVxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybVZhbHVlcz8ubmFtZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgICAgIGlucHV0S2V5PVwibmFtZVwiXG4gICAgICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgaGFuZGxlQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLm5hbWV9XG4gICAgICAgICAgICAgIGlzVHJpbW1lZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICA8L1NDQUdTV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nPlxuICAgICAgICAgIDxTQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICAgIDxDdXN0b21UZXh0QXJlYVxuICAgICAgICAgICAgICBsYWJlbD17YCR7dCgnZ2VuZXJhbFNlY3Rpb24uaW5pdGlhbFByb21wdCcpfSAqICgke3ZhbHVlcy5nZW5lcmFsLnVzZXJQcm9tcHQ/Lmxlbmd0aCB8fCAwfS0ke3ZhbGlkYXRpb25GaWVsZHNSdWxlcy51c2VyUHJvbXB0fSlgfVxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybVZhbHVlcz8udXNlclByb21wdH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLmluaXRpYWxQcm9tcHRQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgaGFuZGxlQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgICAgIGlucHV0S2V5PVwidXNlclByb21wdFwiXG4gICAgICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLnVzZXJQcm9tcHR9XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4Q2FyYWN0ZXJJbml0aWFsUHJvbXB0Jyl9XG4gICAgICAgICAgICAgIGN1c3RvbUhlaWdodD17MTcwfVxuICAgICAgICAgICAgICBpc1RyaW1tZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQgb25DbGljaz17KCkgPT4gaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24oJ2hvd1RvV3JpdGVQcm9tcHQnKX0+XG4gICAgICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQ+e3QoJ2dlbmVyYWxTZWN0aW9uLmhvd1RvV3JpdGVQcm9tcHQnKX08L1NDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0PnsnICd9XG4gICAgICAgICAgICA8T3BlbiB3aWR0aD17MTJ9IGhlaWdodD17MTJ9IGNvbG9yPVwiIzAwNmZhZlwiIC8+XG4gICAgICAgICAgPC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nQ29udGVudD5cbiAgICAgICAgPC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nPlxuICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZz5cbiAgICAgICAgICA8U0NBR1NXcmFwcGVyU2VsZWN0b3IgcmVmPXtzZWxlY3RvclJlZn0gZGF0YS1zZWxlY3Rvci1tb2RhbD5cbiAgICAgICAgICAgIDxTQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICAgICAgPENVU2VsZWN0XG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2dlbmVyYWxTZWN0aW9uLm1vZGVsQWlMYWJlbCcpfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtsb2FkaW5nID8gJ0NhcmdhbmRvIG1vZGVsb3MuLi4nIDogJ1NlbGVjY2lvbmFyIG1vZGVsbyd9XG4gICAgICAgICAgICAgICAgZW5kSWNvbj17PENoZXZyb25Eb3duIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj17bG9hZGluZyA/ICcjYmZiZmJmJyA6ICcjOTk5OTk5J30gLz59XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249e2hhbmRsZU9wZW5Nb2RhbEFpTW9kZWx9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1WYWx1ZXM/LmFpTW9kZWw/LmRpc3BsYXlfbmFtZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlPXtsb2FkaW5nfVxuICAgICAgICAgICAgICAgIG9wZW49e29wZW5Nb2RhbEFpTW9kZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7LyogQ1VTZWxlY3QgZXhpZ2UgY2hpbGRyZW4gcGFyYSBoYWJpbGl0YXIgZWwgY2xpY2s7IGVsIG1lbsO6IHJlYWwgdmEgcG9yIHBvcnRhbC4gKi99XG4gICAgICAgICAgICAgICAgPHNwYW4gaGlkZGVuIGFyaWEtaGlkZGVuIC8+XG4gICAgICAgICAgICAgIDwvQ1VTZWxlY3Q+XG4gICAgICAgICAgICA8L1NDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyU2VsZWN0b3I+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlck9uYm9hcmRpbmdDb250ZW50IG9uQ2xpY2s9eygpID0+IGhhbmRsZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKCd3aGF0SXNNb2RlbEFpJyl9PlxuICAgICAgICAgICAgPFNDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0Pnt0KCdnZW5lcmFsU2VjdGlvbi53aGF0SXNNb2RlbEFpJyl9PC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nVGV4dD57JyAnfVxuICAgICAgICAgICAgPE9wZW4gd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMwMDZmYWZcIiAvPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQ+XG4gICAgICAgIDwvU0NBR1NXcmFwcGVyT25ib2FyZGluZz5cbiAgICAgIDwvU0NBR1NHZW5lcmFsQ2FyZD5cbiAgICAgIDxTQ0FHU09wdGlvbmFsRmllbGRzICRpbmRleD17Mn0+XG4gICAgICAgIDxTQ0FHU09wdGlvbmFsTGFiZWw+e3QoJ2dlbmVyYWxTZWN0aW9uLm9wdGlvbmFsTGFiZWwnKX08L1NDQUdTT3B0aW9uYWxMYWJlbD5cbiAgICAgICAgPEN1c3RvbVRleHRBcmVhXG4gICAgICAgICAgdmFsdWU9e2Zvcm1WYWx1ZXM/LmludHJvZHVjdGlvbn1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17dCgnZ2VuZXJhbFNlY3Rpb24uaW50cm9kdWN0aW9uUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgaGFuZGxlRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgIGhhbmRsZUJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgaW5wdXRLZXk9XCJpbnRyb2R1Y3Rpb25cIlxuICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5pbnRyb2R1Y3Rpb24nKX0gKCR7dmFsdWVzLmdlbmVyYWwuaW50cm9kdWN0aW9uPy5sZW5ndGggfHwgMH0tJHt2YWxpZGF0aW9uRmllbGRzUnVsZXMuaW50cm9kdWN0aW9ufSlgfVxuICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4Q2FyYWN0ZXJJbnRyb2R1Y3Rpb24nKX1cbiAgICAgICAgICBtYXhMZW5ndGg9e3ZhbGlkYXRpb25GaWVsZHNSdWxlcy5pbnRyb2R1Y3Rpb259XG4gICAgICAgIC8+XG4gICAgICAgIDxDdXN0b21JbnB1dFxuICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5pbnB1dFBsYWNlaG9sZGVyVGl0bGUnKX0gKCR7dmFsdWVzLmdlbmVyYWwuaW5wdXRQbGFjZWhvbGRlcj8ubGVuZ3RoIHx8IDB9LSR7dmFsaWRhdGlvbkZpZWxkc1J1bGVzLmlucHV0UGxhY2Vob2xkZXJ9KWB9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLmlucHV0UGxhY2Vob2xkZXInKX1cbiAgICAgICAgICBpbnB1dEtleT1cImlucHV0UGxhY2Vob2xkZXJcIlxuICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4SW5wdXRQbGFjZWhvbGRlcicpfVxuICAgICAgICAgIHZhbHVlPXtmb3JtVmFsdWVzPy5pbnB1dFBsYWNlaG9sZGVyfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZXRHZW5lcmFsVmFsdWVzfVxuICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICBoYW5kbGVCbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgIGZvY3VzZWRGaWVsZD17Zm9jdXNlZEZpZWxkfVxuICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLmlucHV0UGxhY2Vob2xkZXJ9XG4gICAgICAgIC8+XG4gICAgICA8L1NDQUdTT3B0aW9uYWxGaWVsZHM+XG4gICAgICB7cmVuZGVyTW9kZWxEcm9wZG93bigpfVxuICAgIDwvU0NBR1NXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUNoRixTQUFTQyxZQUFZLFFBQVEsV0FBVztBQUN4QyxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxRQUFRLFFBQVEsOENBQThDO0FBQ3ZFLFNBQVNDLFdBQVcsUUFBUSw0QkFBNEI7QUFDeEQsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUV0RSxTQUFTQyxhQUFhLFFBQVEsaUNBQWlDO0FBQy9ELFNBQVNDLFdBQVcsUUFBUSxtQkFBbUI7QUFDL0MsU0FDRUMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMsZ0JBQWdCLEVBQ2hCQyxzQkFBc0IsRUFDdEJDLHlCQUF5QixFQUN6QkMsbUJBQW1CLEVBQ25CQyxpQkFBaUIsRUFDakJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyx3QkFBd0IsRUFDeEJDLHFCQUFxQixFQUNyQkMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLHVCQUF1QixFQUN2QkMsc0JBQXNCLEVBQ3RCQyxzQkFBc0IsRUFDdEJDLDZCQUE2QixFQUM3QkMsMEJBQTBCLEVBQzFCQywrQkFBK0IsRUFDL0JDLG1DQUFtQyxFQUNuQ0MsK0JBQStCLEVBQy9CQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixRQUNiLDRCQUE0QjtBQUVuQyxTQUFTQyxjQUFjLFFBQVEscUNBQXFDO0FBQ3BFLFNBQVNDLE9BQU8sUUFBUSwyQkFBMkI7QUFDbkQsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLHVCQUF1QixRQUFRLHdDQUF3QztBQUNoRixTQUFTQyxzQkFBc0IsUUFBUSx1Q0FBdUM7QUFDOUUsU0FDRUMsMEJBQTBCLEVBQzFCQyxlQUFlLEVBQ2ZDLDBCQUEwQixFQUMxQkMsdUJBQXVCLEVBQ3ZCQyx1QkFBdUIsUUFFbEIsNkJBQTZCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUVwQyxJQUFNQyxxQkFBcUIsR0FBR0wsdUJBQXVCO0FBRXJELE9BQU8sSUFBTU0saUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQUMsSUFBQSxFQVl4QjtFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLG9CQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHFCQUFBO0VBQUEsSUFYSkMsTUFBTSxHQUFBUCxJQUFBLENBQU5PLE1BQU07SUFDTkMsb0JBQW9CLEdBQUFSLElBQUEsQ0FBcEJRLG9CQUFvQjtJQUNwQkMsV0FBVyxHQUFBVCxJQUFBLENBQVhTLFdBQVc7SUFDWEMsT0FBTyxHQUFBVixJQUFBLENBQVBVLE9BQU87SUFDUEMsYUFBYSxHQUFBWCxJQUFBLENBQWJXLGFBQWE7RUFRYixJQUFNQyxJQUFJLEdBQUc1QixPQUFPLENBQUMsQ0FBQztFQUN0QixJQUFNNkIsY0FBYyxHQUFHM0IsUUFBUSxDQUFDLENBQUM7RUFDakMsSUFBQTRCLGVBQUEsR0FBYzlELGNBQWMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFBM0MrRCxDQUFDLEdBQUFELGVBQUEsQ0FBREMsQ0FBQztFQUNULElBQUFDLHFCQUFBLEdBQXVDN0IsdUJBQXVCLENBQUMsQ0FBQztJQUF4RDhCLDBCQUEwQixHQUFBRCxxQkFBQSxDQUExQkMsMEJBQTBCO0VBQ2xDLElBQU1DLGlCQUFpQixHQUFHOUIsc0JBQXNCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztFQUNyRSxJQUFNK0IsbUJBQW1CLEdBQUcvQixzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0VBQ3ZFLElBQUFnQyxTQUFBLEdBQWdEOUUsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBK0UsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBeERHLGdCQUFnQixHQUFBRixVQUFBO0lBQUVHLG1CQUFtQixHQUFBSCxVQUFBO0VBQzVDLElBQUFJLFVBQUEsR0FBZ0RuRixRQUFRLENBQTBCLElBQUksQ0FBQztJQUFBb0YsVUFBQSxHQUFBSixjQUFBLENBQUFHLFVBQUE7SUFBaEZFLGdCQUFnQixHQUFBRCxVQUFBO0lBQUVFLG1CQUFtQixHQUFBRixVQUFBO0VBQzVDLElBQUFHLFVBQUEsR0FBd0N2RixRQUFRLENBQWdCLElBQUksQ0FBQztJQUFBd0YsVUFBQSxHQUFBUixjQUFBLENBQUFPLFVBQUE7SUFBOURFLFlBQVksR0FBQUQsVUFBQTtJQUFFRSxlQUFlLEdBQUFGLFVBQUE7RUFDcEMsSUFBTUcsV0FBVyxHQUFHekYsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFFaEQsSUFBQTBGLFVBQUEsR0FBb0M1RixRQUFRLENBT3pDO01BQ0Q2RixJQUFJLEVBQUU1QixNQUFNLENBQUM2QixPQUFPLENBQUNELElBQUksSUFBSSxFQUFFO01BQy9CRSxPQUFPLEVBQUU5QixNQUFNLENBQUM2QixPQUFPLENBQUNDLE9BQU87TUFDL0JDLGdCQUFnQixFQUFFL0IsTUFBTSxDQUFDNkIsT0FBTyxDQUFDRSxnQkFBZ0IsSUFBSSxFQUFFO01BQ3ZEQyxZQUFZLEVBQUVoQyxNQUFNLENBQUM2QixPQUFPLENBQUNHLFlBQVksSUFBSSxFQUFFO01BQy9DQyxVQUFVLEVBQUVqQyxNQUFNLENBQUM2QixPQUFPLENBQUNJLFVBQVUsSUFBSSxFQUFFO01BQzNDQyxLQUFLLEVBQUVsQyxNQUFNLENBQUM2QixPQUFPLENBQUNLLEtBQUssSUFBSTtJQUNqQyxDQUFDLENBQUM7SUFBQUMsVUFBQSxHQUFBcEIsY0FBQSxDQUFBWSxVQUFBO0lBZEtTLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFnQmhDLElBQU1HLG9CQUFvQixHQUFHdEcsT0FBTyxDQUFDO0lBQUEsT0FBTWdELDBCQUEwQixDQUFDa0IsV0FBVyxDQUFDO0VBQUEsR0FBRSxDQUFDQSxXQUFXLENBQUMsQ0FBQztFQUVsRyxJQUFNcUMsY0FBYyxHQUFHdkcsT0FBTyxDQUM1QjtJQUFBLE9BQU04QywwQkFBMEIsQ0FBQ3dELG9CQUFvQixDQUFDRSxNQUFNLENBQUM7RUFBQSxHQUM3RCxDQUFDRixvQkFBb0IsQ0FBQ0UsTUFBTSxDQUM5QixDQUFDO0VBRUQsSUFBTUMsc0JBQXNCLEdBQUd2RyxXQUFXLENBQUMsWUFBTTtJQUMvQyxJQUFJLENBQUN3RixXQUFXLENBQUNnQixPQUFPLEVBQUU7SUFDMUJyQixtQkFBbUIsQ0FBQ3BDLHVCQUF1QixDQUFDeUMsV0FBVyxDQUFDZ0IsT0FBTyxDQUFDQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUVKLGNBQWMsQ0FBQyxDQUFDO0VBQzNHLENBQUMsRUFBRSxDQUFDQSxjQUFjLENBQUMsQ0FBQztFQUVwQixJQUFNSyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBLEVBQVM7SUFDbkN0QyxjQUFjLENBQUM1QixNQUFNLENBQUNtRSxXQUFXLENBQUM7SUFDbEMsSUFBSSxDQUFDN0IsZ0JBQWdCLEVBQUU7TUFDckJ5QixzQkFBc0IsQ0FBQyxDQUFDO0lBQzFCO0lBQ0F4QixtQkFBbUIsQ0FBQyxVQUFBNkIsSUFBSTtNQUFBLE9BQUksQ0FBQ0EsSUFBSTtJQUFBLEVBQUM7RUFDcEMsQ0FBQztFQUVELElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLEtBQWlCLEVBQUVDLEtBQXdCLEVBQUs7SUFBQSxJQUFBQyxtQkFBQTtJQUN6RSxJQUFJRCxLQUFLLEVBQUU7TUFDVEEsS0FBSyxDQUFDRSxlQUFlLENBQUMsQ0FBQztJQUN6QjtJQUNBLElBQUlILEtBQUssQ0FBQ0ksRUFBRSxNQUFLaEIsVUFBVSxhQUFWQSxVQUFVLGdCQUFBYyxtQkFBQSxHQUFWZCxVQUFVLENBQUVOLE9BQU8sY0FBQW9CLG1CQUFBLHVCQUFuQkEsbUJBQUEsQ0FBcUJFLEVBQUUsR0FBRTtNQUN4QzlDLGNBQWMsQ0FBQzVCLE1BQU0sQ0FBQzJFLFdBQVcsRUFBRTtRQUFFQyxNQUFNLEVBQUVOLEtBQUssQ0FBQ087TUFBYSxDQUFDLENBQUM7TUFDbEVsQixhQUFhLENBQUMsVUFBQVMsSUFBSTtRQUFBLE9BQUFVLGFBQUEsQ0FBQUEsYUFBQSxLQUNiVixJQUFJO1VBQ1BoQixPQUFPLEVBQUVrQjtRQUFLO01BQUEsQ0FDZCxDQUFDO01BQ0gvQyxvQkFBb0IsQ0FBQztRQUFFd0QsR0FBRyxFQUFFLFNBQVM7UUFBRUMsS0FBSyxFQUFFVjtNQUFNLENBQUMsQ0FBQztJQUN4RDtJQUNBL0IsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0VBQzVCLENBQUM7RUFFRG5GLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBTTZILGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlWLEtBQVksRUFBSztNQUMzQyxJQUFJakMsZ0JBQWdCLEVBQUU7UUFDcEIsSUFBTTRDLE1BQU0sR0FBR1gsS0FBSyxDQUFDVyxNQUFxQjtRQUMxQyxJQUFNQyxTQUFTLEdBQUdELE1BQU0sQ0FBQ0UsT0FBTyxDQUFDLHVCQUF1QixDQUFDO1FBQ3pELElBQU1DLFVBQVUsR0FBR0gsTUFBTSxDQUFDRSxPQUFPLENBQUMsd0JBQXdCLENBQUM7UUFFM0QsSUFBSSxDQUFDRCxTQUFTLElBQUksQ0FBQ0UsVUFBVSxFQUFFO1VBQzdCOUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBQzVCO01BQ0Y7SUFDRixDQUFDO0lBRUQsSUFBTStDLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSWYsS0FBb0IsRUFBSztNQUM5QyxJQUFJQSxLQUFLLENBQUNRLEdBQUcsS0FBSyxRQUFRLElBQUl6QyxnQkFBZ0IsRUFBRTtRQUM5Q2lDLEtBQUssQ0FBQ2dCLGNBQWMsQ0FBQyxDQUFDO1FBQ3RCaEIsS0FBSyxDQUFDRSxlQUFlLENBQUMsQ0FBQztRQUN2QmxDLG1CQUFtQixDQUFDLEtBQUssQ0FBQztNQUM1QjtJQUNGLENBQUM7SUFFRCxJQUFJRCxnQkFBZ0IsRUFBRTtNQUNwQmtELFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFSCxhQUFhLENBQUM7TUFDbkRFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsT0FBTyxFQUFFUixrQkFBa0IsQ0FBQztNQUN0RCxPQUFPLFlBQU07UUFDWE8sUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUVKLGFBQWEsQ0FBQztRQUN0REUsUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVULGtCQUFrQixDQUFDO01BQzNELENBQUM7SUFDSDtJQUNBLE9BQU9VLFNBQVM7RUFDbEIsQ0FBQyxFQUFFLENBQUNyRCxnQkFBZ0IsQ0FBQyxDQUFDO0VBRXRCbEYsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNrRixnQkFBZ0IsRUFBRSxPQUFPcUQsU0FBUztJQUV2QyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBO01BQUEsT0FBUzdCLHNCQUFzQixDQUFDLENBQUM7SUFBQTtJQUN2RDhCLE1BQU0sQ0FBQ0osZ0JBQWdCLENBQUMsUUFBUSxFQUFFRyxnQkFBZ0IsQ0FBQztJQUNuRDtJQUNBQyxNQUFNLENBQUNKLGdCQUFnQixDQUFDLFFBQVEsRUFBRUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDO0lBQ3pELE9BQU8sWUFBTTtNQUNYQyxNQUFNLENBQUNILG1CQUFtQixDQUFDLFFBQVEsRUFBRUUsZ0JBQWdCLENBQUM7TUFDdERDLE1BQU0sQ0FBQ0gsbUJBQW1CLENBQUMsUUFBUSxFQUFFRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7SUFDOUQsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDdEQsZ0JBQWdCLEVBQUV5QixzQkFBc0IsQ0FBQyxDQUFDO0VBRTlDM0csU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJMEksU0FBUyxHQUFHTixRQUFRLENBQUNPLGNBQWMsQ0FBQzFGLGVBQWUsQ0FBQztJQUN4RCxJQUFNMkYsT0FBTyxHQUFHLENBQUNGLFNBQVM7SUFDMUIsSUFBSSxDQUFDQSxTQUFTLEVBQUU7TUFDZEEsU0FBUyxHQUFHTixRQUFRLENBQUNTLGFBQWEsQ0FBQyxLQUFLLENBQUM7TUFDekNILFNBQVMsQ0FBQ3BCLEVBQUUsR0FBR3JFLGVBQWU7TUFDOUJ5RixTQUFTLENBQUNJLEtBQUssQ0FBQ0MsUUFBUSxHQUFHLE9BQU87TUFDbENMLFNBQVMsQ0FBQ0ksS0FBSyxDQUFDRSxHQUFHLEdBQUcsR0FBRztNQUN6Qk4sU0FBUyxDQUFDSSxLQUFLLENBQUNHLElBQUksR0FBRyxHQUFHO01BQzFCYixRQUFRLENBQUNjLElBQUksQ0FBQ0MsV0FBVyxDQUFDVCxTQUFTLENBQUM7SUFDdEM7SUFDQUEsU0FBUyxDQUFDSSxLQUFLLENBQUNNLE1BQU0sR0FBR0MsTUFBTSxDQUFDeEUsaUJBQWlCLENBQUM7SUFDbEQsT0FBTyxZQUFNO01BQUEsSUFBQXlFLFVBQUE7TUFDWCxJQUFJVixPQUFPLEtBQUFVLFVBQUEsR0FBSVosU0FBUyxjQUFBWSxVQUFBLGVBQVRBLFVBQUEsQ0FBV0MsVUFBVSxJQUFJLENBQUNiLFNBQVMsQ0FBQ2MsYUFBYSxDQUFDLENBQUMsRUFBRTtRQUNsRWQsU0FBUyxDQUFDYSxVQUFVLENBQUNFLFdBQVcsQ0FBQ2YsU0FBUyxDQUFDO01BQzdDO0lBQ0YsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDN0QsaUJBQWlCLENBQUMsQ0FBQztFQUV2QixJQUFNNkUsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSTlCLEtBQWEsRUFBRUQsR0FBVyxFQUFLO0lBQzdEeEQsb0JBQW9CLENBQUM7TUFBRXdELEdBQUcsRUFBSEEsR0FBRztNQUFFQyxLQUFLLEVBQUxBO0lBQU0sQ0FBQyxDQUFDO0VBQ3RDLENBQUM7RUFFRCxJQUFNK0IsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBR3ZELEtBQUssRUFBSTtJQUNqQ3NELHNCQUFzQixDQUFDdEQsS0FBSyxDQUFDQSxLQUFLLEVBQUUsT0FBTyxDQUFDO0VBQzlDLENBQUM7RUFFRCxJQUFNd0QsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLFNBQWlCLEVBQUs7SUFDekNsRSxlQUFlLENBQUNrRSxTQUFTLENBQUM7RUFDNUIsQ0FBQztFQUVELElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7SUFDdkJuRSxlQUFlLENBQUMsSUFBSSxDQUFDO0VBQ3ZCLENBQUM7RUFFRDNGLFNBQVMsQ0FBQyxZQUFNO0lBQ2R1RyxhQUFhLENBQUM7TUFDWlQsSUFBSSxFQUFFNUIsTUFBTSxDQUFDNkIsT0FBTyxDQUFDRCxJQUFJLElBQUksRUFBRTtNQUMvQkUsT0FBTyxFQUFFOUIsTUFBTSxDQUFDNkIsT0FBTyxDQUFDQyxPQUFPO01BQy9CQyxnQkFBZ0IsRUFBRS9CLE1BQU0sQ0FBQzZCLE9BQU8sQ0FBQ0UsZ0JBQWdCLElBQUksRUFBRTtNQUN2REMsWUFBWSxFQUFFaEMsTUFBTSxDQUFDNkIsT0FBTyxDQUFDRyxZQUFZLElBQUksRUFBRTtNQUMvQ0MsVUFBVSxFQUFFakMsTUFBTSxDQUFDNkIsT0FBTyxDQUFDSSxVQUFVLElBQUksRUFBRTtNQUMzQ0MsS0FBSyxFQUFFbEMsTUFBTSxDQUFDNkIsT0FBTyxDQUFDSyxLQUFLLElBQUk7SUFDakMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUNsQyxNQUFNLENBQUM2QixPQUFPLENBQUMsQ0FBQztFQUVwQixJQUFNZ0UsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQSxFQUFTO0lBQ2hDLElBQUksQ0FBQzdFLGdCQUFnQixJQUFJLENBQUNJLGdCQUFnQixFQUFFLE9BQU8sSUFBSTtJQUV2RCxvQkFBT2pGLFlBQVksY0FDakJpRCxJQUFBLENBQUN0QyxrQkFBa0I7TUFDakIsMkJBQW1CO01BQ25CZ0osS0FBSyxFQUFFMUUsZ0JBQWdCLENBQUMyRCxJQUFLO01BQzdCZ0IsTUFBTSxFQUFFM0UsZ0JBQWdCLENBQUM0RSxLQUFNO01BQy9CQyxJQUFJLEVBQUU3RSxnQkFBZ0IsQ0FBQzBELEdBQUk7TUFDM0JvQixPQUFPLEVBQUU5RSxnQkFBZ0IsQ0FBQytFLE1BQU87TUFDakNDLE9BQU8sRUFBRXhGLG1CQUFvQjtNQUM3QnlGLFVBQVUsRUFBRWpGLGdCQUFnQixDQUFDa0YsU0FBVTtNQUFBQyxRQUFBLGVBRXZDbkgsSUFBQSxDQUFDbEMseUJBQXlCO1FBQUFxSixRQUFBLEVBQ3ZCakUsb0JBQW9CLENBQUNFLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQ3JDLE9BQU8sZ0JBQzVDZixJQUFBLENBQUNmLHNCQUFzQjtVQUFBa0ksUUFBQSxFQUFFL0YsQ0FBQyxDQUFDLGtDQUFrQztRQUFDLENBQXlCLENBQUMsR0FFeEY4QixvQkFBb0IsQ0FBQ2tFLEdBQUcsQ0FBQyxVQUFBeEQsS0FBSztVQUFBLElBQUF5RCxvQkFBQSxFQUFBQyxvQkFBQTtVQUFBLG9CQUM1QnBILEtBQUEsQ0FBQ3ZDLFdBQVc7WUFFVjJHLEtBQUssRUFBRVYsS0FBSyxDQUFDSSxFQUFHO1lBQ2hCdUQsVUFBVSxFQUFFM0QsS0FBSyxDQUFDSSxFQUFFLE1BQUtoQixVQUFVLGFBQVZBLFVBQVUsZ0JBQUFxRSxvQkFBQSxHQUFWckUsVUFBVSxDQUFFTixPQUFPLGNBQUEyRSxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCckQsRUFBRSxDQUFDO1lBQ2pEd0QsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUUzRCxLQUFLO2NBQUEsT0FBSUYsaUJBQWlCLENBQUNDLEtBQUssRUFBRUMsS0FBSyxDQUFDO1lBQUEsQ0FBQztZQUNsRCw0QkFBb0I7WUFBQXNELFFBQUEsZ0JBRXBCbkgsSUFBQSxDQUFDcEMsZ0JBQWdCO2NBQUMySixVQUFVLEVBQUUzRCxLQUFLLENBQUNJLEVBQUUsTUFBS2hCLFVBQVUsYUFBVkEsVUFBVSxnQkFBQXNFLG9CQUFBLEdBQVZ0RSxVQUFVLENBQUVOLE9BQU8sY0FBQTRFLG9CQUFBLHVCQUFuQkEsb0JBQUEsQ0FBcUJ0RCxFQUFFLENBQUM7Y0FBQW1ELFFBQUEsRUFDaEV2RCxLQUFLLENBQUNPO1lBQVksQ0FDSCxDQUFDLEVBQ2xCUCxLQUFLLENBQUM2RCxPQUFPLGlCQUFJekgsSUFBQSxDQUFDbkMsc0JBQXNCO2NBQUFzSixRQUFBLEVBQUV2RCxLQUFLLENBQUM2RDtZQUFPLENBQXlCLENBQUM7VUFBQSxHQVQ3RTdELEtBQUssQ0FBQ0ksRUFVQSxDQUFDO1FBQUEsQ0FDZjtNQUNGLENBQ3dCO0lBQUMsQ0FDVixDQUFDLEVBQ3JCYyxRQUFRLENBQUNjLElBQ1gsQ0FBQztFQUNILENBQUM7RUFFRCxvQkFDRTFGLEtBQUEsQ0FBQzdCLFlBQVk7SUFBQ3VELGdCQUFnQixFQUFFQSxnQkFBaUI7SUFBQXVGLFFBQUEsZ0JBQy9DakgsS0FBQSxDQUFDNUIsa0JBQWtCO01BQUNvSixNQUFNLEVBQUUsQ0FBRTtNQUFBUCxRQUFBLGdCQUM1QmpILEtBQUEsQ0FBQzNCLHVCQUF1QjtRQUFBNEksUUFBQSxnQkFDdEJuSCxJQUFBO1VBQUFtSCxRQUFBLEVBQU8vRixDQUFDLENBQUMsZ0NBQWdDO1FBQUMsQ0FBTyxDQUFDLGVBQ2xEcEIsSUFBQSxDQUFDbEIsK0JBQStCO1VBQUFxSSxRQUFBLEVBQUUvRixDQUFDLENBQUMsb0NBQW9DO1FBQUMsQ0FBa0MsQ0FBQztNQUFBLENBQ3JGLENBQUMsZUFDMUJwQixJQUFBLENBQUN4QixzQkFBc0I7UUFBQTJJLFFBQUEsRUFBRS9GLENBQUMsQ0FBQywwQkFBMEI7TUFBQyxDQUF5QixDQUFDO0lBQUEsQ0FDOUQsQ0FBQyxFQUNwQixZQUFZLElBQUlSLE1BQU0sQ0FBQzZCLE9BQU8sSUFBSTdCLE1BQU0sQ0FBQzZCLE9BQU8sQ0FBQ2tGLFVBQVUsaUJBQzFEM0gsSUFBQSxDQUFDMUMsT0FBTztNQUNOd0ksTUFBTSxFQUFFOUUsYUFBYztNQUN0QjRHLEtBQUssRUFDSCxDQUFBdEgscUJBQUEsR0FBQU0sTUFBTSxDQUFDNkIsT0FBTyxDQUFDa0YsVUFBVSxjQUFBckgscUJBQUEsZUFBekJBLHFCQUFBLENBQTJCdUgsVUFBVSxHQUNqQ3pHLENBQUMsQ0FBQyx3Q0FBd0MsQ0FBQyxHQUMzQ0EsQ0FBQyxDQUFDLGlDQUFpQyxDQUN4QztNQUFBK0YsUUFBQSxlQUVEakgsS0FBQSxDQUFDdEIsK0JBQStCO1FBQUF1SSxRQUFBLEdBQzdCL0YsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQUUsR0FBRyxlQUNuQ3BCLElBQUEsQ0FBQ25CLG1DQUFtQztVQUFBc0ksUUFBQSxHQUFBNUcsc0JBQUEsR0FBRUssTUFBTSxDQUFDNkIsT0FBTyxDQUFDa0YsVUFBVSxjQUFBcEgsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQmlDO1FBQUksQ0FBc0MsQ0FBQztNQUFBLENBQzdFO0lBQUMsQ0FDM0IsQ0FDVixlQUNEdEMsS0FBQSxDQUFDbkIsZ0JBQWdCO01BQUMySSxNQUFNLEVBQUUsQ0FBRTtNQUFBUCxRQUFBLGdCQUMxQmpILEtBQUEsQ0FBQ25DLG1CQUFtQjtRQUFBb0osUUFBQSxnQkFDbEJuSCxJQUFBLENBQUNoQyxpQkFBaUI7VUFBQW1KLFFBQUEsZUFDaEJuSCxJQUFBLENBQUM1QyxXQUFXO1lBQ1YwSyxRQUFRLEVBQUVuSSxlQUFnQjtZQUMxQm9JLFFBQVEsRUFBRTFCLGlCQUFrQjtZQUM1QjJCLGVBQWUsRUFBRSxTQUFqQkEsZUFBZUEsQ0FBRUMsQ0FBQyxFQUFJO2NBQ3BCLG9CQUNFakksSUFBQSxDQUFDOUIsZ0JBQWdCO2dCQUNmZ0ssR0FBRyxFQUFFRCxDQUFDLENBQUNFLE9BQVE7Z0JBQ2ZDLElBQUksRUFBQyxRQUFRO2dCQUNiWixPQUFPLEVBQUVTLENBQUMsQ0FBQ0ksd0JBQXlCO2dCQUNwQ3JFLEVBQUUsRUFBQywwQkFBMEI7Z0JBQUFtRCxRQUFBLGVBRTdCakgsS0FBQSxDQUFDL0Isd0JBQXdCO2tCQUFBZ0osUUFBQSxnQkFDdkJuSCxJQUFBLENBQUM1QixxQkFBcUI7b0JBQUErSSxRQUFBLEVBQUVuRSxVQUFVLENBQUNGLEtBQUssaUJBQUk5QyxJQUFBLENBQUN6QyxhQUFhLElBQUU7a0JBQUMsQ0FBd0IsQ0FBQyxlQUN0RnlDLElBQUEsQ0FBQy9CLG1CQUFtQjtvQkFBQWtKLFFBQUEsZUFDbEJuSCxJQUFBLENBQUNoRCxJQUFJO3NCQUFDNEosS0FBSyxFQUFFLEVBQUc7c0JBQUMwQixNQUFNLEVBQUUsRUFBRztzQkFBQ0MsS0FBSyxFQUFDO29CQUF1QixDQUFFO2tCQUFDLENBQzFDLENBQUM7Z0JBQUEsQ0FDRTtjQUFDLENBQ1gsQ0FBQztZQUV2QixDQUFFO1lBQ0ZDLFNBQVMsRUFBRXZILElBQUksQ0FBQ3dILFVBQVUsQ0FBQ0MsUUFBUSxDQUFDO1VBQUUsQ0FDdkM7UUFBQyxDQUNlLENBQUMsZUFDcEIxSSxJQUFBLENBQUNoQixpQkFBaUI7VUFBQW1JLFFBQUEsZUFDaEJuSCxJQUFBLENBQUN4QyxXQUFXO1lBQ1ZtTCxLQUFLLEtBQUFDLE1BQUEsQ0FBS3hILENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFBd0gsTUFBQSxDQUFPaEksTUFBTSxDQUFDNkIsT0FBTyxDQUFDRCxJQUFJLENBQUNZLE1BQU0sSUFBSSxDQUFDLE9BQUF3RixNQUFBLENBQUl6SSxxQkFBcUIsQ0FBQ3FDLElBQUksTUFBSTtZQUMxR3FHLFdBQVcsRUFBRXpILENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBRTtZQUNqRDBILFlBQVksRUFBRTFILENBQUMsQ0FBQyxzQ0FBc0MsQ0FBRTtZQUN4RGtELEtBQUssRUFBRXRCLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFUixJQUFLO1lBQ3hCdUcsUUFBUSxFQUFFM0Msc0JBQXVCO1lBQ2pDNEMsUUFBUSxFQUFDLE1BQU07WUFDZjFDLFdBQVcsRUFBRUEsV0FBWTtZQUN6QkUsVUFBVSxFQUFFQSxVQUFXO1lBQ3ZCcEUsWUFBWSxFQUFFQSxZQUFhO1lBQzNCNkcsU0FBUyxFQUFFOUkscUJBQXFCLENBQUNxQyxJQUFLO1lBQ3RDMEcsU0FBUztVQUFBLENBQ1Y7UUFBQyxDQUNlLENBQUM7TUFBQSxDQUNELENBQUMsZUFDdEJoSixLQUFBLENBQUN6QixzQkFBc0I7UUFBQTBJLFFBQUEsZ0JBQ3JCbkgsSUFBQSxDQUFDaEIsaUJBQWlCO1VBQUFtSSxRQUFBLGVBQ2hCbkgsSUFBQSxDQUFDWixjQUFjO1lBQ2J1SixLQUFLLEtBQUFDLE1BQUEsQ0FBS3hILENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxVQUFBd0gsTUFBQSxDQUFPLEVBQUFwSSxxQkFBQSxHQUFBSSxNQUFNLENBQUM2QixPQUFPLENBQUNJLFVBQVUsY0FBQXJDLHFCQUFBLHVCQUF6QkEscUJBQUEsQ0FBMkI0QyxNQUFNLEtBQUksQ0FBQyxPQUFBd0YsTUFBQSxDQUFJekkscUJBQXFCLENBQUMwQyxVQUFVLE1BQUk7WUFDaEl5QixLQUFLLEVBQUV0QixVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRUgsVUFBVztZQUM5QmdHLFdBQVcsRUFBRXpILENBQUMsQ0FBQyx5Q0FBeUMsQ0FBRTtZQUMxRCtILFlBQVksRUFBRS9DLHNCQUF1QjtZQUNyQ0UsV0FBVyxFQUFFQSxXQUFZO1lBQ3pCRSxVQUFVLEVBQUVBLFVBQVc7WUFDdkJwRSxZQUFZLEVBQUVBLFlBQWE7WUFDM0I0RyxRQUFRLEVBQUMsWUFBWTtZQUNyQkMsU0FBUyxFQUFFOUkscUJBQXFCLENBQUMwQyxVQUFXO1lBQzVDaUcsWUFBWSxFQUFFMUgsQ0FBQyxDQUFDLCtDQUErQyxDQUFFO1lBQ2pFZ0ksWUFBWSxFQUFFLEdBQUk7WUFDbEJGLFNBQVM7VUFBQSxDQUNWO1FBQUMsQ0FDZSxDQUFDLGVBQ3BCaEosS0FBQSxDQUFDeEIsNkJBQTZCO1VBQUM4SSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtZQUFBLE9BQVFsRywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQztVQUFBLENBQUM7VUFBQTZGLFFBQUEsZ0JBQzNGbkgsSUFBQSxDQUFDckIsMEJBQTBCO1lBQUF3SSxRQUFBLEVBQUUvRixDQUFDLENBQUMsaUNBQWlDO1VBQUMsQ0FBNkIsQ0FBQyxFQUFDLEdBQUcsZUFDbkdwQixJQUFBLENBQUM5QyxJQUFJO1lBQUMwSixLQUFLLEVBQUUsRUFBRztZQUFDMEIsTUFBTSxFQUFFLEVBQUc7WUFBQ0MsS0FBSyxFQUFDO1VBQVMsQ0FBRSxDQUFDO1FBQUEsQ0FDbEIsQ0FBQztNQUFBLENBQ1YsQ0FBQyxlQUN6QnJJLEtBQUEsQ0FBQ3pCLHNCQUFzQjtRQUFBMEksUUFBQSxnQkFDckJuSCxJQUFBLENBQUN2QyxvQkFBb0I7VUFBQ3lLLEdBQUcsRUFBRTVGLFdBQVk7VUFBQywyQkFBbUI7VUFBQTZFLFFBQUEsZUFDekRuSCxJQUFBLENBQUNoQixpQkFBaUI7WUFBQW1JLFFBQUEsZUFDaEJuSCxJQUFBLENBQUM3QyxRQUFRO2NBQ1B5SyxLQUFLLEVBQUV4RyxDQUFDLENBQUMsNkJBQTZCLENBQUU7Y0FDeEN5SCxXQUFXLEVBQUU5SCxPQUFPLEdBQUcscUJBQXFCLEdBQUcsb0JBQXFCO2NBQ3BFc0ksT0FBTyxlQUFFckosSUFBQSxDQUFDL0MsV0FBVztnQkFBQzJKLEtBQUssRUFBQyxNQUFNO2dCQUFDMEIsTUFBTSxFQUFDLE1BQU07Z0JBQUNDLEtBQUssRUFBRXhILE9BQU8sR0FBRyxTQUFTLEdBQUc7Y0FBVSxDQUFFLENBQUU7Y0FDNUZ1SSxpQkFBaUIsRUFBRTlGLHNCQUF1QjtjQUMxQ2MsS0FBSyxFQUFFdEIsVUFBVSxhQUFWQSxVQUFVLGdCQUFBdkMsb0JBQUEsR0FBVnVDLFVBQVUsQ0FBRU4sT0FBTyxjQUFBakMsb0JBQUEsdUJBQW5CQSxvQkFBQSxDQUFxQjBELFlBQWE7Y0FDekNvRixPQUFPLEVBQUV4SSxPQUFRO2NBQ2pCeUksSUFBSSxFQUFFNUgsZ0JBQWlCO2NBQUF1RixRQUFBLGVBR3ZCbkgsSUFBQTtnQkFBTXlKLE1BQU07Z0JBQUM7Y0FBVyxDQUFFO1lBQUMsQ0FDbkI7VUFBQyxDQUNNO1FBQUMsQ0FDQSxDQUFDLGVBQ3ZCdkosS0FBQSxDQUFDeEIsNkJBQTZCO1VBQUM4SSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtZQUFBLE9BQVFsRywwQkFBMEIsQ0FBQyxlQUFlLENBQUM7VUFBQSxDQUFDO1VBQUE2RixRQUFBLGdCQUN4Rm5ILElBQUEsQ0FBQ3JCLDBCQUEwQjtZQUFBd0ksUUFBQSxFQUFFL0YsQ0FBQyxDQUFDLDhCQUE4QjtVQUFDLENBQTZCLENBQUMsRUFBQyxHQUFHLGVBQ2hHcEIsSUFBQSxDQUFDOUMsSUFBSTtZQUFDMEosS0FBSyxFQUFFLEVBQUc7WUFBQzBCLE1BQU0sRUFBRSxFQUFHO1lBQUNDLEtBQUssRUFBQztVQUFTLENBQUUsQ0FBQztRQUFBLENBQ2xCLENBQUM7TUFBQSxDQUNWLENBQUM7SUFBQSxDQUNULENBQUMsZUFDbkJySSxLQUFBLENBQUNoQixtQkFBbUI7TUFBQ3dJLE1BQU0sRUFBRSxDQUFFO01BQUFQLFFBQUEsZ0JBQzdCbkgsSUFBQSxDQUFDYixrQkFBa0I7UUFBQWdJLFFBQUEsRUFBRS9GLENBQUMsQ0FBQyw4QkFBOEI7TUFBQyxDQUFxQixDQUFDLGVBQzVFcEIsSUFBQSxDQUFDWixjQUFjO1FBQ2JrRixLQUFLLEVBQUV0QixVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRUosWUFBYTtRQUNoQ2lHLFdBQVcsRUFBRXpILENBQUMsQ0FBQyx3Q0FBd0MsQ0FBRTtRQUN6RCtILFlBQVksRUFBRS9DLHNCQUF1QjtRQUNyQ0UsV0FBVyxFQUFFQSxXQUFZO1FBQ3pCRSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJwRSxZQUFZLEVBQUVBLFlBQWE7UUFDM0I0RyxRQUFRLEVBQUMsY0FBYztRQUN2QkwsS0FBSyxLQUFBQyxNQUFBLENBQUt4SCxDQUFDLENBQUMsNkJBQTZCLENBQUMsUUFBQXdILE1BQUEsQ0FBSyxFQUFBbEkscUJBQUEsR0FBQUUsTUFBTSxDQUFDNkIsT0FBTyxDQUFDRyxZQUFZLGNBQUFsQyxxQkFBQSx1QkFBM0JBLHFCQUFBLENBQTZCMEMsTUFBTSxLQUFJLENBQUMsT0FBQXdGLE1BQUEsQ0FBSXpJLHFCQUFxQixDQUFDeUMsWUFBWSxNQUFJO1FBQ2pJa0csWUFBWSxFQUFFMUgsQ0FBQyxDQUFDLDhDQUE4QyxDQUFFO1FBQ2hFNkgsU0FBUyxFQUFFOUkscUJBQXFCLENBQUN5QztNQUFhLENBQy9DLENBQUMsZUFDRjVDLElBQUEsQ0FBQ3hDLFdBQVc7UUFDVm1MLEtBQUssS0FBQUMsTUFBQSxDQUFLeEgsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDLFFBQUF3SCxNQUFBLENBQUssRUFBQWpJLHFCQUFBLEdBQUFDLE1BQU0sQ0FBQzZCLE9BQU8sQ0FBQ0UsZ0JBQWdCLGNBQUFoQyxxQkFBQSx1QkFBL0JBLHFCQUFBLENBQWlDeUMsTUFBTSxLQUFJLENBQUMsT0FBQXdGLE1BQUEsQ0FBSXpJLHFCQUFxQixDQUFDd0MsZ0JBQWdCLE1BQUk7UUFDbEprRyxXQUFXLEVBQUV6SCxDQUFDLENBQUMsaUNBQWlDLENBQUU7UUFDbEQ0SCxRQUFRLEVBQUMsa0JBQWtCO1FBQzNCRixZQUFZLEVBQUUxSCxDQUFDLENBQUMsMENBQTBDLENBQUU7UUFDNURrRCxLQUFLLEVBQUV0QixVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRUwsZ0JBQWlCO1FBQ3BDb0csUUFBUSxFQUFFM0Msc0JBQXVCO1FBQ2pDRSxXQUFXLEVBQUVBLFdBQVk7UUFDekJFLFVBQVUsRUFBRUEsVUFBVztRQUN2QnBFLFlBQVksRUFBRUEsWUFBYTtRQUMzQjZHLFNBQVMsRUFBRTlJLHFCQUFxQixDQUFDd0M7TUFBaUIsQ0FDbkQsQ0FBQztJQUFBLENBQ2lCLENBQUMsRUFDckI4RCxtQkFBbUIsQ0FBQyxDQUFDO0VBQUEsQ0FDVixDQUFDO0FBRW5CLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
376
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwiY3JlYXRlUG9ydGFsIiwiUGx1cyIsIkNoZXZyb25Eb3duIiwiT3BlbiIsIkNVU2VsZWN0IiwiQnV0dG9uRW1vamkiLCJ1c2VUcmFuc2xhdGlvbiIsIlRvb2x0aXAiLCJBZ2VudE1haWFJY29uIiwiQ3VzdG9tSW5wdXQiLCJTQ0FHU1dyYXBwZXJTZWxlY3RvciIsIlNDQUdTU2VsZWN0b3JNb2RhbCIsIlNDQUdTT3B0aW9uIiwiU0NBR1NPcHRpb25MYWJlbCIsIlNDQUdTT3B0aW9uRGVzY3JpcHRpb24iLCJTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50IiwiU0NBR1NXcmFwcGVyQ29udGVudCIsIlNDQUdTV3JhcHBlckVtb2ppIiwiU0NBR1NXcmFwcGVyQWRkSWNvbiIsIlNDQUdTQnV0dG9uRW1vamkiLCJTQ0FHU1dyYXBwZXJFbW9qaUNvbnRlbnQiLCJTQ0FHU1dyYXBwZXJFbW9qaUljb24iLCJTQ0FHU1dyYXBwZXIiLCJTQ0FHU1dyYXBwZXJIZWFkZXIiLCJTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZSIsIlNDQUdTV3JhcHBlckhlYWRlckluZm8iLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nIiwiU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQiLCJTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nVGV4dCIsIlNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQiLCJTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0TmFtZSIsIlNDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQiLCJTQ0FHU0dlbmVyYWxDYXJkIiwiU0NBR1NGaWVsZFN1cmZhY2UiLCJTQ0FHU05vTW9kZWxzQXZhaWxhYmxlIiwiU0NBR1NPcHRpb25hbEZpZWxkcyIsIlNDQUdTT3B0aW9uYWxMYWJlbCIsIkN1c3RvbVRleHRBcmVhIiwidXNlVXNlciIsIkVWRU5UUyIsInVzZUV2ZW50IiwidXNlT25ib2FyZGluZ05hdmlnYXRpb24iLCJ1c2VNYWlhVGFza1BhbmVsWkluZGV4IiwiYnVpbGRBYm1HZW5lcmFsRm9ybVZhbHVlcyIsImNvbXB1dGVNb2RlbERyb3Bkb3duSGVpZ2h0IiwiRU1PSklfUE9SVEFMX0lEIiwiZmlsdGVyQXZhaWxhYmxlQWdlbnRNb2RlbHMiLCJyZXNvbHZlRHJvcGRvd25Qb3NpdGlvbiIsInJlc29sdmVNb2RlbERyb3Bkb3duVG9nZ2xlU3RhdGUiLCJzaG91bGRDbG9zZU1vZGVsRHJvcGRvd25PbkVzY2FwZSIsInNob3VsZENsb3NlTW9kZWxEcm9wZG93bk9uT3V0c2lkZUNsaWNrIiwic2hvdWxkUmVnaXN0ZXJNb2RlbERyb3Bkb3duTGlzdGVuZXJzIiwic2hvdWxkUmVwb3NpdGlvbk1vZGVsRHJvcGRvd24iLCJzaG91bGRVcGRhdGVTZWxlY3RlZEFnZW50TW9kZWwiLCJWQUxJREFUSU9OX0ZJRUxEU19SVUxFUyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJ2YWxpZGF0aW9uRmllbGRzUnVsZXMiLCJBYm1HZW5lcmFsU2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGdlbmVyYWwkY3JlYXQiLCJfdmFsdWVzJGdlbmVyYWwkY3JlYXQyIiwiX3ZhbHVlcyRnZW5lcmFsJHVzZXJQIiwiX2Zvcm1WYWx1ZXMkYWlNb2RlbDQiLCJfdmFsdWVzJGdlbmVyYWwkaW50cm8iLCJfdmFsdWVzJGdlbmVyYWwkaW5wdXQiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsImFnZW50TW9kZWxzIiwibG9hZGluZyIsInRvb2x0aXBaSW5kZXgiLCJ1c2VyIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiX3VzZU9uYm9hcmRpbmdOYXZpZ2F0IiwiaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24iLCJlbW9qaVBvcnRhbFpJbmRleCIsIm1vZGVsRHJvcGRvd25aSW5kZXgiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJvcGVuTW9kYWxBaU1vZGVsIiwic2V0T3Blbk1vZGFsQWlNb2RlbCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZHJvcGRvd25Qb3NpdGlvbiIsInNldERyb3Bkb3duUG9zaXRpb24iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImZvY3VzZWRGaWVsZCIsInNldEZvY3VzZWRGaWVsZCIsInNlbGVjdG9yUmVmIiwiX3VzZVN0YXRlNyIsImdlbmVyYWwiLCJfdXNlU3RhdGU4IiwiZm9ybVZhbHVlcyIsInNldEZvcm1WYWx1ZXMiLCJhdmFpbGFibGVBZ2VudE1vZGVscyIsImRyb3Bkb3duSGVpZ2h0IiwibGVuZ3RoIiwidXBkYXRlRHJvcGRvd25Qb3NpdGlvbiIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJoYW5kbGVPcGVuTW9kYWxBaU1vZGVsIiwic2VsZWN0TW9kZWwiLCJwcmV2IiwiaGFuZGxlU2VsZWN0TW9kZWwiLCJtb2RlbCIsImV2ZW50IiwiX2Zvcm1WYWx1ZXMkYWlNb2RlbCIsInN0b3BQcm9wYWdhdGlvbiIsImFpTW9kZWwiLCJpZCIsImNob29zZU1vZGVsIiwib3B0aW9uIiwiZGlzcGxheV9uYW1lIiwiX29iamVjdFNwcmVhZCIsImtleSIsInZhbHVlIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiaXNJbk1vZGFsIiwiQm9vbGVhbiIsImNsb3Nlc3QiLCJpc0luT3B0aW9uIiwiaGFuZGxlS2V5RG93biIsInByZXZlbnREZWZhdWx0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInVuZGVmaW5lZCIsImhhbmRsZVJlcG9zaXRpb24iLCJ3aW5kb3ciLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsImNyZWF0ZWQiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsImxlZnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJ6SW5kZXgiLCJTdHJpbmciLCJfY29udGFpbmVyIiwicGFyZW50Tm9kZSIsImhhc0NoaWxkTm9kZXMiLCJyZW1vdmVDaGlsZCIsImhhbmRsZVNldEdlbmVyYWxWYWx1ZXMiLCJoYW5kbGVTZWxlY3RFbW9qaSIsImVtb2ppIiwiaGFuZGxlRm9jdXMiLCJmaWVsZE5hbWUiLCJoYW5kbGVCbHVyIiwibmFtZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb24iLCJ1c2VyUHJvbXB0IiwicmVuZGVyTW9kZWxEcm9wZG93biIsIiRsZWZ0IiwiJHdpZHRoIiwid2lkdGgiLCIkdG9wIiwiJGJvdHRvbSIsImJvdHRvbSIsIiR6SW5kZXgiLCIkcGxhY2VtZW50IiwicGxhY2VtZW50IiwiY2hpbGRyZW4iLCJtYXAiLCJfZm9ybVZhbHVlcyRhaU1vZGVsMiIsIl9mb3JtVmFsdWVzJGFpTW9kZWwzIiwiaXNTZWxlY3RlZCIsIm9uQ2xpY2siLCJrZXl3b3JkIiwiJGluZGV4IiwiY3JlYXRlZF9ieSIsInRpdGxlIiwiaXNfZGVsZXRlZCIsInBvcnRhbElkIiwib25TZWxlY3QiLCJyZW5kZXJDb21wb25lbnQiLCJhIiwicmVmIiwiaWNvblJlZiIsInR5cGUiLCJoYW5kbGVPcGVuU3VnZ2VzdGlvbkxpc3QiLCJoZWlnaHQiLCJjb2xvciIsImNvbXBhbnlJZCIsImNvbXBhbnlfaWQiLCJ0b1N0cmluZyIsImxhYmVsIiwiY29uY2F0IiwicGxhY2Vob2xkZXIiLCJlcnJvck1lc3NhZ2UiLCJvbkNoYW5nZSIsImlucHV0S2V5IiwibWF4TGVuZ3RoIiwiaXNUcmltbWVkIiwiaGFuZGxlQ2hhbmdlIiwiY3VzdG9tSGVpZ2h0IiwiZW5kSWNvbiIsImhhbmRsZUNsaWNrQWN0aW9uIiwiZGlzYWJsZSIsIm9wZW4iLCJoaWRkZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1HZW5lcmFsU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlUmVmLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BsdXMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgT3BlbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL09wZW4nXG5pbXBvcnQgeyBDVVNlbGVjdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3NlbGVjdG9yL2xpYi9jb21wb25lbnRzL0NVU2VsZWN0J1xuaW1wb3J0IHsgQnV0dG9uRW1vamkgfSBmcm9tICdAcHJvamVjdGNvci9lbW9qaS1yZWFjdGlvbidcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHR5cGUgTW9kYWxWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudE1vZGFsJ1xuaW1wb3J0IHsgQWdlbnRNYWlhSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0FnZW50TWFpYUljb24nXG5pbXBvcnQgeyBDdXN0b21JbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL0lucHV0J1xuaW1wb3J0IHtcbiAgU0NBR1NXcmFwcGVyU2VsZWN0b3IsXG4gIFNDQUdTU2VsZWN0b3JNb2RhbCxcbiAgU0NBR1NPcHRpb24sXG4gIFNDQUdTT3B0aW9uTGFiZWwsXG4gIFNDQUdTT3B0aW9uRGVzY3JpcHRpb24sXG4gIFNDQUdTU2VsZWN0b3JNb2RhbENvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckNvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckVtb2ppLFxuICBTQ0FHU1dyYXBwZXJBZGRJY29uLFxuICBTQ0FHU0J1dHRvbkVtb2ppLFxuICBTQ0FHU1dyYXBwZXJFbW9qaUNvbnRlbnQsXG4gIFNDQUdTV3JhcHBlckVtb2ppSWNvbixcbiAgU0NBR1NXcmFwcGVyLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXIsXG4gIFNDQUdTV3JhcHBlckhlYWRlclRpdGxlLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvLFxuICBTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nLFxuICBTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nQ29udGVudCxcbiAgU0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQsXG4gIFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQsXG4gIFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lLFxuICBTQ0FHU1dyYXBwZXJIZWFkZXJUaXRsZVJlcXVpcmVkLFxuICBTQ0FHU0dlbmVyYWxDYXJkLFxuICBTQ0FHU0ZpZWxkU3VyZmFjZSxcbiAgU0NBR1NOb01vZGVsc0F2YWlsYWJsZSxcbiAgU0NBR1NPcHRpb25hbEZpZWxkcyxcbiAgU0NBR1NPcHRpb25hbExhYmVsLFxufSBmcm9tICcuL0FibUdlbmVyYWxTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB0eXBlIHsgQWdlbnRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ3VzdG9tVGV4dEFyZWEgfSBmcm9tICcuLi8uLi9hdG9tcy9UZXh0QXJlYS9DdXN0b21UZXh0QXJlYSdcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlT25ib2FyZGluZ05hdmlnYXRpb24gfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VPbmJvYXJkaW5nTmF2aWdhdGlvbidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNYWlhVGFza1BhbmVsWkluZGV4J1xuaW1wb3J0IHtcbiAgYnVpbGRBYm1HZW5lcmFsRm9ybVZhbHVlcyxcbiAgY29tcHV0ZU1vZGVsRHJvcGRvd25IZWlnaHQsXG4gIEVNT0pJX1BPUlRBTF9JRCxcbiAgZmlsdGVyQXZhaWxhYmxlQWdlbnRNb2RlbHMsXG4gIHJlc29sdmVEcm9wZG93blBvc2l0aW9uLFxuICByZXNvbHZlTW9kZWxEcm9wZG93blRvZ2dsZVN0YXRlLFxuICBzaG91bGRDbG9zZU1vZGVsRHJvcGRvd25PbkVzY2FwZSxcbiAgc2hvdWxkQ2xvc2VNb2RlbERyb3Bkb3duT25PdXRzaWRlQ2xpY2ssXG4gIHNob3VsZFJlZ2lzdGVyTW9kZWxEcm9wZG93bkxpc3RlbmVycyxcbiAgc2hvdWxkUmVwb3NpdGlvbk1vZGVsRHJvcGRvd24sXG4gIHNob3VsZFVwZGF0ZVNlbGVjdGVkQWdlbnRNb2RlbCxcbiAgVkFMSURBVElPTl9GSUVMRFNfUlVMRVMsXG4gIHR5cGUgRHJvcGRvd25Qb3NpdGlvbixcbn0gZnJvbSAnLi9BYm1HZW5lcmFsU2VjdGlvbi5oZWxwZXJzJ1xuXG5jb25zdCB2YWxpZGF0aW9uRmllbGRzUnVsZXMgPSBWQUxJREFUSU9OX0ZJRUxEU19SVUxFU1xuXG5leHBvcnQgY29uc3QgQWJtR2VuZXJhbFNlY3Rpb24gPSAoe1xuICB2YWx1ZXMsXG4gIGhhbmRsZVNldEFnZW50VmFsdWVzLFxuICBhZ2VudE1vZGVscyxcbiAgbG9hZGluZyxcbiAgdG9vbHRpcFpJbmRleCxcbn06IHtcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlczogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG4gIGFnZW50TW9kZWxzOiBBZ2VudE1vZGVsW11cbiAgbG9hZGluZzogYm9vbGVhblxuICB0b29sdGlwWkluZGV4PzogbnVtYmVyXG59KSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydhYm1fYWdlbnRfc2VjdGlvbiddKVxuICBjb25zdCB7IGhhbmRsZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIH0gPSB1c2VPbmJvYXJkaW5nTmF2aWdhdGlvbigpXG4gIGNvbnN0IGVtb2ppUG9ydGFsWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnbmVzdGVkTW9kYWwnKVxuICBjb25zdCBtb2RlbERyb3Bkb3duWkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxNTAwLCAnbmVzdGVkTW9kYWwnKVxuICBjb25zdCBbb3Blbk1vZGFsQWlNb2RlbCwgc2V0T3Blbk1vZGFsQWlNb2RlbF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Ryb3Bkb3duUG9zaXRpb24sIHNldERyb3Bkb3duUG9zaXRpb25dID0gdXNlU3RhdGU8RHJvcGRvd25Qb3NpdGlvbiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtmb2N1c2VkRmllbGQsIHNldEZvY3VzZWRGaWVsZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBzZWxlY3RvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBbZm9ybVZhbHVlcywgc2V0Rm9ybVZhbHVlc10gPSB1c2VTdGF0ZSgoKSA9PiBidWlsZEFibUdlbmVyYWxGb3JtVmFsdWVzKHZhbHVlcy5nZW5lcmFsKSlcblxuICBjb25zdCBhdmFpbGFibGVBZ2VudE1vZGVscyA9IHVzZU1lbW8oKCkgPT4gZmlsdGVyQXZhaWxhYmxlQWdlbnRNb2RlbHMoYWdlbnRNb2RlbHMpLCBbYWdlbnRNb2RlbHNdKVxuXG4gIGNvbnN0IGRyb3Bkb3duSGVpZ2h0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjb21wdXRlTW9kZWxEcm9wZG93bkhlaWdodChhdmFpbGFibGVBZ2VudE1vZGVscy5sZW5ndGgpLFxuICAgIFthdmFpbGFibGVBZ2VudE1vZGVscy5sZW5ndGhdXG4gIClcblxuICBjb25zdCB1cGRhdGVEcm9wZG93blBvc2l0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghc2VsZWN0b3JSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgc2V0RHJvcGRvd25Qb3NpdGlvbihyZXNvbHZlRHJvcGRvd25Qb3NpdGlvbihzZWxlY3RvclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBkcm9wZG93bkhlaWdodCkpXG4gIH0sIFtkcm9wZG93bkhlaWdodF0pXG5cbiAgY29uc3QgaGFuZGxlT3Blbk1vZGFsQWlNb2RlbCA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuc2VsZWN0TW9kZWwpXG4gICAgaWYgKHJlc29sdmVNb2RlbERyb3Bkb3duVG9nZ2xlU3RhdGUob3Blbk1vZGFsQWlNb2RlbCkpIHtcbiAgICAgIHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oKVxuICAgIH1cbiAgICBzZXRPcGVuTW9kYWxBaU1vZGVsKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RNb2RlbCA9IChtb2RlbDogQWdlbnRNb2RlbCwgZXZlbnQ/OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIH1cbiAgICBpZiAoc2hvdWxkVXBkYXRlU2VsZWN0ZWRBZ2VudE1vZGVsKGZvcm1WYWx1ZXM/LmFpTW9kZWw/LmlkLCBtb2RlbC5pZCkpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5jaG9vc2VNb2RlbCwgeyBvcHRpb246IG1vZGVsLmRpc3BsYXlfbmFtZSB9KVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGFpTW9kZWw6IG1vZGVsLFxuICAgICAgfSkpXG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7IGtleTogJ2FpTW9kZWwnLCB2YWx1ZTogbW9kZWwgfSlcbiAgICB9XG4gICAgc2V0T3Blbk1vZGFsQWlNb2RlbChmYWxzZSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKHNob3VsZFJlZ2lzdGVyTW9kZWxEcm9wZG93bkxpc3RlbmVycyhvcGVuTW9kYWxBaU1vZGVsKSkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgY29uc3QgaXNJbk1vZGFsID0gQm9vbGVhbih0YXJnZXQuY2xvc2VzdCgnW2RhdGEtc2VsZWN0b3ItbW9kYWxdJykpXG4gICAgICAgIGNvbnN0IGlzSW5PcHRpb24gPSBCb29sZWFuKHRhcmdldC5jbG9zZXN0KCdbZGF0YS1zZWxlY3Rvci1vcHRpb25dJykpXG5cbiAgICAgICAgaWYgKHNob3VsZENsb3NlTW9kZWxEcm9wZG93bk9uT3V0c2lkZUNsaWNrKG9wZW5Nb2RhbEFpTW9kZWwsIGlzSW5Nb2RhbCwgaXNJbk9wdGlvbikpIHtcbiAgICAgICAgICBzZXRPcGVuTW9kYWxBaU1vZGVsKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKHNob3VsZENsb3NlTW9kZWxEcm9wZG93bk9uRXNjYXBlKGV2ZW50LmtleSwgb3Blbk1vZGFsQWlNb2RlbCkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICBzZXRPcGVuTW9kYWxBaU1vZGVsKGZhbHNlKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG91bGRSZWdpc3Rlck1vZGVsRHJvcGRvd25MaXN0ZW5lcnMob3Blbk1vZGFsQWlNb2RlbCkpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW29wZW5Nb2RhbEFpTW9kZWxdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRSZXBvc2l0aW9uTW9kZWxEcm9wZG93bihvcGVuTW9kYWxBaU1vZGVsKSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUmVwb3NpdGlvbiA9ICgpID0+IHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXBvc2l0aW9uKVxuICAgIC8vIGNhcHR1cmU6IGVsIEFCTSBzY3JvbGxlYSBlbiBjb250ZW5lZG9yZXMgaW50ZXJub3MsIG5vIGVuIHdpbmRvd1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB0cnVlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVSZXBvc2l0aW9uLCB0cnVlKVxuICAgIH1cbiAgfSwgW29wZW5Nb2RhbEFpTW9kZWwsIHVwZGF0ZURyb3Bkb3duUG9zaXRpb25dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEVNT0pJX1BPUlRBTF9JRClcbiAgICBjb25zdCBjcmVhdGVkID0gIWNvbnRhaW5lclxuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgY29udGFpbmVyLmlkID0gRU1PSklfUE9SVEFMX0lEXG4gICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gICAgICBjb250YWluZXIuc3R5bGUudG9wID0gJzAnXG4gICAgICBjb250YWluZXIuc3R5bGUubGVmdCA9ICcwJ1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpXG4gICAgfVxuICAgIGNvbnRhaW5lci5zdHlsZS56SW5kZXggPSBTdHJpbmcoZW1vamlQb3J0YWxaSW5kZXgpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjcmVhdGVkICYmIGNvbnRhaW5lcj8ucGFyZW50Tm9kZSAmJiAhY29udGFpbmVyLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250YWluZXIpXG4gICAgICB9XG4gICAgfVxuICB9LCBbZW1vamlQb3J0YWxaSW5kZXhdKVxuXG4gIGNvbnN0IGhhbmRsZVNldEdlbmVyYWxWYWx1ZXMgPSAodmFsdWU6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7IGtleSwgdmFsdWUgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEVtb2ppID0gZW1vamkgPT4ge1xuICAgIGhhbmRsZVNldEdlbmVyYWxWYWx1ZXMoZW1vamkuZW1vamksICdlbW9qaScpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGb2N1cyA9IChmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgIHNldEZvY3VzZWRGaWVsZChmaWVsZE5hbWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVCbHVyID0gKCkgPT4ge1xuICAgIHNldEZvY3VzZWRGaWVsZChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRGb3JtVmFsdWVzKHtcbiAgICAgIG5hbWU6IHZhbHVlcy5nZW5lcmFsLm5hbWUgfHwgJycsXG4gICAgICBhaU1vZGVsOiB2YWx1ZXMuZ2VuZXJhbC5haU1vZGVsLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogdmFsdWVzLmdlbmVyYWwuaW5wdXRQbGFjZWhvbGRlciB8fCAnJyxcbiAgICAgIGludHJvZHVjdGlvbjogdmFsdWVzLmdlbmVyYWwuaW50cm9kdWN0aW9uIHx8ICcnLFxuICAgICAgdXNlclByb21wdDogdmFsdWVzLmdlbmVyYWwudXNlclByb21wdCB8fCAnJyxcbiAgICAgIGVtb2ppOiB2YWx1ZXMuZ2VuZXJhbC5lbW9qaSB8fCAnJyxcbiAgICB9KVxuICB9LCBbdmFsdWVzLmdlbmVyYWxdKVxuXG4gIGNvbnN0IHJlbmRlck1vZGVsRHJvcGRvd24gPSAoKSA9PiB7XG4gICAgaWYgKCFvcGVuTW9kYWxBaU1vZGVsIHx8ICFkcm9wZG93blBvc2l0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICAgIDxTQ0FHU1NlbGVjdG9yTW9kYWxcbiAgICAgICAgZGF0YS1zZWxlY3Rvci1tb2RhbFxuICAgICAgICAkbGVmdD17ZHJvcGRvd25Qb3NpdGlvbi5sZWZ0fVxuICAgICAgICAkd2lkdGg9e2Ryb3Bkb3duUG9zaXRpb24ud2lkdGh9XG4gICAgICAgICR0b3A9e2Ryb3Bkb3duUG9zaXRpb24udG9wfVxuICAgICAgICAkYm90dG9tPXtkcm9wZG93blBvc2l0aW9uLmJvdHRvbX1cbiAgICAgICAgJHpJbmRleD17bW9kZWxEcm9wZG93blpJbmRleH1cbiAgICAgICAgJHBsYWNlbWVudD17ZHJvcGRvd25Qb3NpdGlvbi5wbGFjZW1lbnR9XG4gICAgICA+XG4gICAgICAgIDxTQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50PlxuICAgICAgICAgIHthdmFpbGFibGVBZ2VudE1vZGVscy5sZW5ndGggPT09IDAgJiYgIWxvYWRpbmcgPyAoXG4gICAgICAgICAgICA8U0NBR1NOb01vZGVsc0F2YWlsYWJsZT57dCgnZ2VuZXJhbFNlY3Rpb24ubm9Nb2RlbHNBdmFpbGFibGUnKX08L1NDQUdTTm9Nb2RlbHNBdmFpbGFibGU+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIGF2YWlsYWJsZUFnZW50TW9kZWxzLm1hcChtb2RlbCA9PiAoXG4gICAgICAgICAgICAgIDxTQ0FHU09wdGlvblxuICAgICAgICAgICAgICAgIGtleT17bW9kZWwuaWR9XG4gICAgICAgICAgICAgICAgdmFsdWU9e21vZGVsLmlkfVxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e21vZGVsLmlkID09PSBmb3JtVmFsdWVzPy5haU1vZGVsPy5pZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBoYW5kbGVTZWxlY3RNb2RlbChtb2RlbCwgZXZlbnQpfVxuICAgICAgICAgICAgICAgIGRhdGEtc2VsZWN0b3Itb3B0aW9uXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NBR1NPcHRpb25MYWJlbCBpc1NlbGVjdGVkPXttb2RlbC5pZCA9PT0gZm9ybVZhbHVlcz8uYWlNb2RlbD8uaWR9PlxuICAgICAgICAgICAgICAgICAge21vZGVsLmRpc3BsYXlfbmFtZX1cbiAgICAgICAgICAgICAgICA8L1NDQUdTT3B0aW9uTGFiZWw+XG4gICAgICAgICAgICAgICAge21vZGVsLmtleXdvcmQgJiYgPFNDQUdTT3B0aW9uRGVzY3JpcHRpb24+e21vZGVsLmtleXdvcmR9PC9TQ0FHU09wdGlvbkRlc2NyaXB0aW9uPn1cbiAgICAgICAgICAgICAgPC9TQ0FHU09wdGlvbj5cbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0FHU1NlbGVjdG9yTW9kYWxDb250ZW50PlxuICAgICAgPC9TQ0FHU1NlbGVjdG9yTW9kYWw+LFxuICAgICAgZG9jdW1lbnQuYm9keVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUdTV3JhcHBlciBvcGVuTW9kYWxBaU1vZGVsPXtvcGVuTW9kYWxBaU1vZGVsfT5cbiAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXIgJGluZGV4PXswfT5cbiAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlclRpdGxlPlxuICAgICAgICAgIDxzcGFuPnt0KCdnZW5lcmFsU2VjdGlvbi5nZW5lcmFsU2V0dGluZ3MnKX08L3NwYW4+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQ+e3QoJ2dlbmVyYWxTZWN0aW9uLnJlcXVpcmVkRmllbGRzTGFiZWwnKX08L1NDQUdTV3JhcHBlckhlYWRlclRpdGxlUmVxdWlyZWQ+XG4gICAgICAgIDwvU0NBR1NXcmFwcGVySGVhZGVyVGl0bGU+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXJJbmZvPnt0KCdnZW5lcmFsU2VjdGlvbi5pbmZvTGFiZWwnKX08L1NDQUdTV3JhcHBlckhlYWRlckluZm8+XG4gICAgICA8L1NDQUdTV3JhcHBlckhlYWRlcj5cbiAgICAgIHsnY3JlYXRlZF9ieScgaW4gdmFsdWVzLmdlbmVyYWwgJiYgdmFsdWVzLmdlbmVyYWwuY3JlYXRlZF9ieSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgekluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgIHZhbHVlcy5nZW5lcmFsLmNyZWF0ZWRfYnk/LmlzX2RlbGV0ZWRcbiAgICAgICAgICAgICAgPyB0KCdnZW5lcmFsU2VjdGlvbi5jcmVhdGVkQnlUb29sdGlwRGVsZXRlZCcpXG4gICAgICAgICAgICAgIDogdCgnZ2VuZXJhbFNlY3Rpb24uY3JlYXRlZEJ5VG9vbHRpcCcpXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHQ+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbFNlY3Rpb24uY3JlYXRlZEJ5Jyl9eycgJ31cbiAgICAgICAgICAgIDxTQ0FHU1dyYXBwZXJIZWFkZXJDcmVhdGVkQnlUZXh0TmFtZT57dmFsdWVzLmdlbmVyYWwuY3JlYXRlZF9ieT8ubmFtZX08L1NDQUdTV3JhcHBlckhlYWRlckNyZWF0ZWRCeVRleHROYW1lPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVySGVhZGVyQ3JlYXRlZEJ5VGV4dD5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgKX1cbiAgICAgIDxTQ0FHU0dlbmVyYWxDYXJkICRpbmRleD17MX0+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJDb250ZW50PlxuICAgICAgICAgIDxTQ0FHU1dyYXBwZXJFbW9qaT5cbiAgICAgICAgICAgIDxCdXR0b25FbW9qaVxuICAgICAgICAgICAgICBwb3J0YWxJZD17RU1PSklfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICBvblNlbGVjdD17aGFuZGxlU2VsZWN0RW1vaml9XG4gICAgICAgICAgICAgIHJlbmRlckNvbXBvbmVudD17YSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxTQ0FHU0J1dHRvbkVtb2ppXG4gICAgICAgICAgICAgICAgICAgIHJlZj17YS5pY29uUmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17YS5oYW5kbGVPcGVuU3VnZ2VzdGlvbkxpc3R9XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYWJtLWdlbmVyYWwtZW1vamktYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFNDQUdTV3JhcHBlckVtb2ppQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NBR1NXcmFwcGVyRW1vamlJY29uPntmb3JtVmFsdWVzLmVtb2ppIHx8IDxBZ2VudE1haWFJY29uIC8+fTwvU0NBR1NXcmFwcGVyRW1vamlJY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ0FHU1dyYXBwZXJBZGRJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBsdXMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSBjb2xvcj1cInJnYmEoMTM1LCA2NCwgMTkxLCAxKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ0FHU1dyYXBwZXJBZGRJY29uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDQUdTV3JhcHBlckVtb2ppQ29udGVudD5cbiAgICAgICAgICAgICAgICAgIDwvU0NBR1NCdXR0b25FbW9qaT5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNvbXBhbnlJZD17dXNlci5jb21wYW55X2lkLnRvU3RyaW5nKCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyRW1vamk+XG4gICAgICAgICAgPFNDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICAgICAgPEN1c3RvbUlucHV0XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5uYW1lJyl9ICogKCR7dmFsdWVzLmdlbmVyYWwubmFtZS5sZW5ndGggfHwgMH0tJHt2YWxpZGF0aW9uRmllbGRzUnVsZXMubmFtZX0pYH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLm5hbWVQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U9e3QoJ2dlbmVyYWxTZWN0aW9uLmVycm9yLm1heENhcmFjdGVyTmFtZScpfVxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybVZhbHVlcz8ubmFtZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgICAgIGlucHV0S2V5PVwibmFtZVwiXG4gICAgICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgaGFuZGxlQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLm5hbWV9XG4gICAgICAgICAgICAgIGlzVHJpbW1lZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICA8L1NDQUdTV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgIDxTQ0FHU1dyYXBwZXJPbmJvYXJkaW5nPlxuICAgICAgICAgIDxTQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICAgIDxDdXN0b21UZXh0QXJlYVxuICAgICAgICAgICAgICBsYWJlbD17YCR7dCgnZ2VuZXJhbFNlY3Rpb24uaW5pdGlhbFByb21wdCcpfSAqICgke3ZhbHVlcy5nZW5lcmFsLnVzZXJQcm9tcHQ/Lmxlbmd0aCB8fCAwfS0ke3ZhbGlkYXRpb25GaWVsZHNSdWxlcy51c2VyUHJvbXB0fSlgfVxuICAgICAgICAgICAgICB2YWx1ZT17Zm9ybVZhbHVlcz8udXNlclByb21wdH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLmluaXRpYWxQcm9tcHRQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgaGFuZGxlQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgICAgIGlucHV0S2V5PVwidXNlclByb21wdFwiXG4gICAgICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLnVzZXJQcm9tcHR9XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4Q2FyYWN0ZXJJbml0aWFsUHJvbXB0Jyl9XG4gICAgICAgICAgICAgIGN1c3RvbUhlaWdodD17MTcwfVxuICAgICAgICAgICAgICBpc1RyaW1tZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQgb25DbGljaz17KCkgPT4gaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24oJ2hvd1RvV3JpdGVQcm9tcHQnKX0+XG4gICAgICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZ1RleHQ+e3QoJ2dlbmVyYWxTZWN0aW9uLmhvd1RvV3JpdGVQcm9tcHQnKX08L1NDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0PnsnICd9XG4gICAgICAgICAgICA8T3BlbiB3aWR0aD17MTJ9IGhlaWdodD17MTJ9IGNvbG9yPVwiIzAwNmZhZlwiIC8+XG4gICAgICAgICAgPC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nQ29udGVudD5cbiAgICAgICAgPC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nPlxuICAgICAgICA8U0NBR1NXcmFwcGVyT25ib2FyZGluZz5cbiAgICAgICAgICA8U0NBR1NXcmFwcGVyU2VsZWN0b3IgcmVmPXtzZWxlY3RvclJlZn0gZGF0YS1zZWxlY3Rvci1tb2RhbD5cbiAgICAgICAgICAgIDxTQ0FHU0ZpZWxkU3VyZmFjZT5cbiAgICAgICAgICAgICAgPENVU2VsZWN0XG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2dlbmVyYWxTZWN0aW9uLm1vZGVsQWlMYWJlbCcpfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtsb2FkaW5nID8gJ0NhcmdhbmRvIG1vZGVsb3MuLi4nIDogJ1NlbGVjY2lvbmFyIG1vZGVsbyd9XG4gICAgICAgICAgICAgICAgZW5kSWNvbj17PENoZXZyb25Eb3duIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj17bG9hZGluZyA/ICcjYmZiZmJmJyA6ICcjOTk5OTk5J30gLz59XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249e2hhbmRsZU9wZW5Nb2RhbEFpTW9kZWx9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1WYWx1ZXM/LmFpTW9kZWw/LmRpc3BsYXlfbmFtZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlPXtsb2FkaW5nfVxuICAgICAgICAgICAgICAgIG9wZW49e29wZW5Nb2RhbEFpTW9kZWx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7LyogQ1VTZWxlY3QgZXhpZ2UgY2hpbGRyZW4gcGFyYSBoYWJpbGl0YXIgZWwgY2xpY2s7IGVsIG1lbsO6IHJlYWwgdmEgcG9yIHBvcnRhbC4gKi99XG4gICAgICAgICAgICAgICAgPHNwYW4gaGlkZGVuIGFyaWEtaGlkZGVuIC8+XG4gICAgICAgICAgICAgIDwvQ1VTZWxlY3Q+XG4gICAgICAgICAgICA8L1NDQUdTRmllbGRTdXJmYWNlPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyU2VsZWN0b3I+XG4gICAgICAgICAgPFNDQUdTV3JhcHBlck9uYm9hcmRpbmdDb250ZW50IG9uQ2xpY2s9eygpID0+IGhhbmRsZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKCd3aGF0SXNNb2RlbEFpJyl9PlxuICAgICAgICAgICAgPFNDQUdTV3JhcHBlck9uYm9hcmRpbmdUZXh0Pnt0KCdnZW5lcmFsU2VjdGlvbi53aGF0SXNNb2RlbEFpJyl9PC9TQ0FHU1dyYXBwZXJPbmJvYXJkaW5nVGV4dD57JyAnfVxuICAgICAgICAgICAgPE9wZW4gd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMwMDZmYWZcIiAvPlxuICAgICAgICAgIDwvU0NBR1NXcmFwcGVyT25ib2FyZGluZ0NvbnRlbnQ+XG4gICAgICAgIDwvU0NBR1NXcmFwcGVyT25ib2FyZGluZz5cbiAgICAgIDwvU0NBR1NHZW5lcmFsQ2FyZD5cbiAgICAgIDxTQ0FHU09wdGlvbmFsRmllbGRzICRpbmRleD17Mn0+XG4gICAgICAgIDxTQ0FHU09wdGlvbmFsTGFiZWw+e3QoJ2dlbmVyYWxTZWN0aW9uLm9wdGlvbmFsTGFiZWwnKX08L1NDQUdTT3B0aW9uYWxMYWJlbD5cbiAgICAgICAgPEN1c3RvbVRleHRBcmVhXG4gICAgICAgICAgdmFsdWU9e2Zvcm1WYWx1ZXM/LmludHJvZHVjdGlvbn1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17dCgnZ2VuZXJhbFNlY3Rpb24uaW50cm9kdWN0aW9uUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVNldEdlbmVyYWxWYWx1ZXN9XG4gICAgICAgICAgaGFuZGxlRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgIGhhbmRsZUJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgZm9jdXNlZEZpZWxkPXtmb2N1c2VkRmllbGR9XG4gICAgICAgICAgaW5wdXRLZXk9XCJpbnRyb2R1Y3Rpb25cIlxuICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5pbnRyb2R1Y3Rpb24nKX0gKCR7dmFsdWVzLmdlbmVyYWwuaW50cm9kdWN0aW9uPy5sZW5ndGggfHwgMH0tJHt2YWxpZGF0aW9uRmllbGRzUnVsZXMuaW50cm9kdWN0aW9ufSlgfVxuICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4Q2FyYWN0ZXJJbnRyb2R1Y3Rpb24nKX1cbiAgICAgICAgICBtYXhMZW5ndGg9e3ZhbGlkYXRpb25GaWVsZHNSdWxlcy5pbnRyb2R1Y3Rpb259XG4gICAgICAgIC8+XG4gICAgICAgIDxDdXN0b21JbnB1dFxuICAgICAgICAgIGxhYmVsPXtgJHt0KCdnZW5lcmFsU2VjdGlvbi5pbnB1dFBsYWNlaG9sZGVyVGl0bGUnKX0gKCR7dmFsdWVzLmdlbmVyYWwuaW5wdXRQbGFjZWhvbGRlcj8ubGVuZ3RoIHx8IDB9LSR7dmFsaWRhdGlvbkZpZWxkc1J1bGVzLmlucHV0UGxhY2Vob2xkZXJ9KWB9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ2dlbmVyYWxTZWN0aW9uLmlucHV0UGxhY2Vob2xkZXInKX1cbiAgICAgICAgICBpbnB1dEtleT1cImlucHV0UGxhY2Vob2xkZXJcIlxuICAgICAgICAgIGVycm9yTWVzc2FnZT17dCgnZ2VuZXJhbFNlY3Rpb24uZXJyb3IubWF4SW5wdXRQbGFjZWhvbGRlcicpfVxuICAgICAgICAgIHZhbHVlPXtmb3JtVmFsdWVzPy5pbnB1dFBsYWNlaG9sZGVyfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTZXRHZW5lcmFsVmFsdWVzfVxuICAgICAgICAgIGhhbmRsZUZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICBoYW5kbGVCbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgIGZvY3VzZWRGaWVsZD17Zm9jdXNlZEZpZWxkfVxuICAgICAgICAgIG1heExlbmd0aD17dmFsaWRhdGlvbkZpZWxkc1J1bGVzLmlucHV0UGxhY2Vob2xkZXJ9XG4gICAgICAgIC8+XG4gICAgICA8L1NDQUdTT3B0aW9uYWxGaWVsZHM+XG4gICAgICB7cmVuZGVyTW9kZWxEcm9wZG93bigpfVxuICAgIDwvU0NBR1NXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUNoRixTQUFTQyxZQUFZLFFBQVEsV0FBVztBQUN4QyxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLFdB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
3
|
export var MAX_KNOWLEDGE_TOTAL_SIZE = 5 * 1024 * 1024;
|
|
3
4
|
export var getUniqueString = function getUniqueString(prevStrings, stringToChange) {
|
|
@@ -83,4 +84,50 @@ export var canPreviewKnowledgeAttachment = function canPreviewKnowledgeAttachmen
|
|
|
83
84
|
if (attachment.status === 'failed') return false;
|
|
84
85
|
return attachment.file instanceof File || attachment.originalFile instanceof File || Boolean(attachment.url_thumbnail || attachment.url_original || attachment.url_file);
|
|
85
86
|
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsImNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSIsImF0dGFjaG1lbnRzIiwicmVkdWNlIiwidG90YWwiLCJhdHRhY2htZW50Iiwic2l6ZSIsIk51bWJlciIsImlzTmFOIiwicHJvY2Vzc0tub3dsZWRnZUZpbGVzIiwiX3JlZiIsImZpbGVzIiwiZXhpc3RpbmdBdHRhY2htZW50cyIsImFsbG93ZWRFeHRlbnNpb25zIiwiZmlsZVR5cGVzIiwiX3JlZiRtYXhUb3RhbFNpemUiLCJtYXhUb3RhbFNpemUiLCJfcmVmJGNyZWF0ZUlkIiwiY3JlYXRlSWQiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJydW5uaW5nVG90YWxTaXplIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImxlbmd0aCIsInBvcCIsInRvTG93ZXJDYXNlIiwicHVzaCIsIm5ld1RvdGFsU2l6ZSIsInR5cGVGaWxlIiwidHlwZSIsInVuaXF1ZU5hbWUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsImF0dGFjaG1lbnRGaWxlIiwiaWQiLCJzdGF0dXMiLCJoYXNFcnJvcnMiLCJjYW5QcmV2aWV3S25vd2xlZGdlQXR0YWNobWVudCIsIm9yaWdpbmFsRmlsZSIsIkJvb2xlYW4iLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1Lbm93bGVkZ2VTZWN0aW9uLmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcblxuZXhwb3J0IGNvbnN0IE1BWF9LTk9XTEVER0VfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNFxuXG5leHBvcnQgY29uc3QgZ2V0VW5pcXVlU3RyaW5nID0gKHByZXZTdHJpbmdzOiBzdHJpbmdbXSwgc3RyaW5nVG9DaGFuZ2U6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFtmaWxlbmFtZSwgZXh0ZW5zaW9uID0gJyddID0gc3RyaW5nVG9DaGFuZ2Uuc3BsaXQoJy4nKVxuICBjb25zdCBleHQgPSBleHRlbnNpb24gPyBgLiR7ZXh0ZW5zaW9ufWAgOiAnJ1xuXG4gIGlmICghcHJldlN0cmluZ3M/LmluY2x1ZGVzKHN0cmluZ1RvQ2hhbmdlKSkge1xuICAgIHJldHVybiBzdHJpbmdUb0NoYW5nZVxuICB9XG5cbiAgbGV0IGNvdW50ZXIgPSAxXG4gIGxldCBuZXdGaWxlbmFtZSA9IHN0cmluZ1RvQ2hhbmdlXG4gIHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKSB7XG4gICAgbmV3RmlsZW5hbWUgPSBgJHtmaWxlbmFtZX0oJHtjb3VudGVyfSkke2V4dH1gXG4gICAgY291bnRlciArPSAxXG4gIH1cblxuICByZXR1cm4gbmV3RmlsZW5hbWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSA9IChhdHRhY2htZW50czogUGljazxBdHRhY2htZW50RmlsZSwgJ3NpemUnPltdKTogbnVtYmVyID0+XG4gIGF0dGFjaG1lbnRzLnJlZHVjZSgodG90YWwsIGF0dGFjaG1lbnQpID0+IHtcbiAgICBjb25zdCBzaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgfSwgMClcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzUmVzdWx0ID0ge1xuICBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdXG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbiAgaGFzRXJyb3JzOiBib29sZWFuXG59XG5cbnR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyA9IHtcbiAgZmlsZXM6IEZpbGVbXVxuICBleGlzdGluZ0F0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmdbXVxuICBmaWxlVHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgbWF4VG90YWxTaXplPzogbnVtYmVyXG4gIGNyZWF0ZUlkPzogKCkgPT4gc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBwcm9jZXNzS25vd2xlZGdlRmlsZXMgPSAoe1xuICBmaWxlcyxcbiAgZXhpc3RpbmdBdHRhY2htZW50cyxcbiAgYWxsb3dlZEV4dGVuc2lvbnMsXG4gIGZpbGVUeXBlcyxcbiAgbWF4VG90YWxTaXplID0gTUFYX0tOT1dMRURHRV9UT1RBTF9TSVpFLFxuICBjcmVhdGVJZCA9ICgpID0+IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxufTogUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyk6IFByb2Nlc3NLbm93bGVkZ2VGaWxlc1Jlc3VsdCA9PiB7XG4gIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IGluc2VydGVkRmlsZXM6IEF0dGFjaG1lbnRGaWxlW10gPSBbXVxuICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gZXhpc3RpbmdBdHRhY2htZW50cy5tYXAoYXR0YWNobWVudCA9PiBhdHRhY2htZW50Lm5hbWUpXG4gIGxldCBydW5uaW5nVG90YWxTaXplID0gY29tcHV0ZUF0dGFjaG1lbnRzVG90YWxTaXplKGV4aXN0aW5nQXR0YWNobWVudHMpXG5cbiAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICBpZiAoIWFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBuZXdUb3RhbFNpemUgPSBydW5uaW5nVG90YWxTaXplICsgZmlsZS5zaXplXG4gICAgaWYgKG5ld1RvdGFsU2l6ZSA+IG1heFRvdGFsU2l6ZSkge1xuICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIHVuaXF1ZU5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcblxuICAgIGNvbnN0IGF0dGFjaG1lbnRGaWxlOiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICBpZDogY3JlYXRlSWQoKSxcbiAgICAgIG5hbWU6IHVuaXF1ZU5hbWUsXG4gICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgIHN0YXR1czogJ3N0YXJ0ZWQnLFxuICAgIH1cblxuICAgIGluc2VydGVkRmlsZXMucHVzaChhdHRhY2htZW50RmlsZSlcbiAgICBhdHRhY2htZW50c05hbWVzLnB1c2godW5pcXVlTmFtZSlcbiAgICBydW5uaW5nVG90YWxTaXplICs9IGZpbGUuc2l6ZVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaW5zZXJ0ZWRGaWxlcyxcbiAgICBleGNlZWRlZEZpbGVzLFxuICAgIGludmFsaWRFeHRlbnNpb25GaWxlcyxcbiAgICBoYXNFcnJvcnM6IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2FuUHJldmlld0tub3dsZWRnZUF0dGFjaG1lbnQgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpOiBib29sZWFuID0+IHtcbiAgaWYgKGF0dGFjaG1lbnQuc3RhdHVzID09PSAnZmFpbGVkJykgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIChcbiAgICBhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgQm9vbGVhbihhdHRhY2htZW50LnVybF90aHVtYm5haWwgfHwgYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfHwgYXR0YWNobWVudC51cmxfZmlsZSlcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxJQUFNQSx3QkFB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
|
|
87
|
+
export var shouldBlockKnowledgeUpload = function shouldBlockKnowledgeUpload(isAtSizeLimit) {
|
|
88
|
+
return isAtSizeLimit;
|
|
89
|
+
};
|
|
90
|
+
export var shouldEnableKnowledgeDragState = function shouldEnableKnowledgeDragState(isAtSizeLimit) {
|
|
91
|
+
return !isAtSizeLimit;
|
|
92
|
+
};
|
|
93
|
+
export var shouldProcessKnowledgeFileInput = function shouldProcessKnowledgeFileInput(files) {
|
|
94
|
+
return Boolean(files && files.length > 0);
|
|
95
|
+
};
|
|
96
|
+
export var appendKnowledgeAttachments = function appendKnowledgeAttachments(current, inserted) {
|
|
97
|
+
return [].concat(_toConsumableArray(current || []), _toConsumableArray(inserted));
|
|
98
|
+
};
|
|
99
|
+
export var removeKnowledgeAttachmentByIndex = function removeKnowledgeAttachmentByIndex(attachments, index) {
|
|
100
|
+
if (index < 0 || index >= attachments.length) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return attachments.filter(function (_, attachmentIndex) {
|
|
104
|
+
return attachmentIndex !== index;
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
export var resolveKnowledgeAttachmentAtIndex = function resolveKnowledgeAttachmentAtIndex(attachments, index) {
|
|
108
|
+
var _attachments$index;
|
|
109
|
+
return (_attachments$index = attachments[index]) !== null && _attachments$index !== void 0 ? _attachments$index : null;
|
|
110
|
+
};
|
|
111
|
+
export var shouldRunKnowledgeDownloadEffect = function shouldRunKnowledgeDownloadEffect(success, error, isLoading) {
|
|
112
|
+
return Boolean(success && !error && !isLoading);
|
|
113
|
+
};
|
|
114
|
+
export var shouldHandleKnowledgeAttachmentAction = function shouldHandleKnowledgeAttachmentAction(isDownloading) {
|
|
115
|
+
return !isDownloading;
|
|
116
|
+
};
|
|
117
|
+
export var resolveKnowledgeFileErrorModalState = function resolveKnowledgeFileErrorModalState(input) {
|
|
118
|
+
return {
|
|
119
|
+
isOpen: true,
|
|
120
|
+
excludedFiles: [],
|
|
121
|
+
exceededFiles: input.exceededFiles,
|
|
122
|
+
invalidExtensionFiles: input.invalidExtensionFiles
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
export var createClosedKnowledgeFileErrorModalState = function createClosedKnowledgeFileErrorModalState() {
|
|
126
|
+
return {
|
|
127
|
+
isOpen: false,
|
|
128
|
+
excludedFiles: [],
|
|
129
|
+
exceededFiles: [],
|
|
130
|
+
invalidExtensionFiles: []
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfS05PV0xFREdFX1RPVEFMX1NJWkUiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsImNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSIsImF0dGFjaG1lbnRzIiwicmVkdWNlIiwidG90YWwiLCJhdHRhY2htZW50Iiwic2l6ZSIsIk51bWJlciIsImlzTmFOIiwicHJvY2Vzc0tub3dsZWRnZUZpbGVzIiwiX3JlZiIsImZpbGVzIiwiZXhpc3RpbmdBdHRhY2htZW50cyIsImFsbG93ZWRFeHRlbnNpb25zIiwiZmlsZVR5cGVzIiwiX3JlZiRtYXhUb3RhbFNpemUiLCJtYXhUb3RhbFNpemUiLCJfcmVmJGNyZWF0ZUlkIiwiY3JlYXRlSWQiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJydW5uaW5nVG90YWxTaXplIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImxlbmd0aCIsInBvcCIsInRvTG93ZXJDYXNlIiwicHVzaCIsIm5ld1RvdGFsU2l6ZSIsInR5cGVGaWxlIiwidHlwZSIsInVuaXF1ZU5hbWUiLCJwYXJzZWRGaWxlIiwiRmlsZSIsImF0dGFjaG1lbnRGaWxlIiwiaWQiLCJzdGF0dXMiLCJoYXNFcnJvcnMiLCJjYW5QcmV2aWV3S25vd2xlZGdlQXR0YWNobWVudCIsIm9yaWdpbmFsRmlsZSIsIkJvb2xlYW4iLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJzaG91bGRCbG9ja0tub3dsZWRnZVVwbG9hZCIsImlzQXRTaXplTGltaXQiLCJzaG91bGRFbmFibGVLbm93bGVkZ2VEcmFnU3RhdGUiLCJzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0IiwiYXBwZW5kS25vd2xlZGdlQXR0YWNobWVudHMiLCJjdXJyZW50IiwiaW5zZXJ0ZWQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyZW1vdmVLbm93bGVkZ2VBdHRhY2htZW50QnlJbmRleCIsImluZGV4IiwiZmlsdGVyIiwiXyIsImF0dGFjaG1lbnRJbmRleCIsInJlc29sdmVLbm93bGVkZ2VBdHRhY2htZW50QXRJbmRleCIsIl9hdHRhY2htZW50cyRpbmRleCIsInNob3VsZFJ1bktub3dsZWRnZURvd25sb2FkRWZmZWN0Iiwic3VjY2VzcyIsImVycm9yIiwiaXNMb2FkaW5nIiwic2hvdWxkSGFuZGxlS25vd2xlZGdlQXR0YWNobWVudEFjdGlvbiIsImlzRG93bmxvYWRpbmciLCJyZXNvbHZlS25vd2xlZGdlRmlsZUVycm9yTW9kYWxTdGF0ZSIsImlucHV0IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1Lbm93bGVkZ2VTZWN0aW9uLmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcblxuZXhwb3J0IGNvbnN0IE1BWF9LTk9XTEVER0VfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNFxuXG5leHBvcnQgY29uc3QgZ2V0VW5pcXVlU3RyaW5nID0gKHByZXZTdHJpbmdzOiBzdHJpbmdbXSwgc3RyaW5nVG9DaGFuZ2U6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFtmaWxlbmFtZSwgZXh0ZW5zaW9uID0gJyddID0gc3RyaW5nVG9DaGFuZ2Uuc3BsaXQoJy4nKVxuICBjb25zdCBleHQgPSBleHRlbnNpb24gPyBgLiR7ZXh0ZW5zaW9ufWAgOiAnJ1xuXG4gIGlmICghcHJldlN0cmluZ3M/LmluY2x1ZGVzKHN0cmluZ1RvQ2hhbmdlKSkge1xuICAgIHJldHVybiBzdHJpbmdUb0NoYW5nZVxuICB9XG5cbiAgbGV0IGNvdW50ZXIgPSAxXG4gIGxldCBuZXdGaWxlbmFtZSA9IHN0cmluZ1RvQ2hhbmdlXG4gIHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKSB7XG4gICAgbmV3RmlsZW5hbWUgPSBgJHtmaWxlbmFtZX0oJHtjb3VudGVyfSkke2V4dH1gXG4gICAgY291bnRlciArPSAxXG4gIH1cblxuICByZXR1cm4gbmV3RmlsZW5hbWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZSA9IChhdHRhY2htZW50czogUGljazxBdHRhY2htZW50RmlsZSwgJ3NpemUnPltdKTogbnVtYmVyID0+XG4gIGF0dGFjaG1lbnRzLnJlZHVjZSgodG90YWwsIGF0dGFjaG1lbnQpID0+IHtcbiAgICBjb25zdCBzaXplID0gdHlwZW9mIGF0dGFjaG1lbnQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHRhY2htZW50LnNpemUgOiBOdW1iZXIoYXR0YWNobWVudC5zaXplKVxuICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgfSwgMClcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzUmVzdWx0ID0ge1xuICBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdXG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbiAgaGFzRXJyb3JzOiBib29sZWFuXG59XG5cbnR5cGUgUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyA9IHtcbiAgZmlsZXM6IEZpbGVbXVxuICBleGlzdGluZ0F0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdXG4gIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmdbXVxuICBmaWxlVHlwZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgbWF4VG90YWxTaXplPzogbnVtYmVyXG4gIGNyZWF0ZUlkPzogKCkgPT4gc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBwcm9jZXNzS25vd2xlZGdlRmlsZXMgPSAoe1xuICBmaWxlcyxcbiAgZXhpc3RpbmdBdHRhY2htZW50cyxcbiAgYWxsb3dlZEV4dGVuc2lvbnMsXG4gIGZpbGVUeXBlcyxcbiAgbWF4VG90YWxTaXplID0gTUFYX0tOT1dMRURHRV9UT1RBTF9TSVpFLFxuICBjcmVhdGVJZCA9ICgpID0+IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxufTogUHJvY2Vzc0tub3dsZWRnZUZpbGVzT3B0aW9ucyk6IFByb2Nlc3NLbm93bGVkZ2VGaWxlc1Jlc3VsdCA9PiB7XG4gIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IGluc2VydGVkRmlsZXM6IEF0dGFjaG1lbnRGaWxlW10gPSBbXVxuICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gZXhpc3RpbmdBdHRhY2htZW50cy5tYXAoYXR0YWNobWVudCA9PiBhdHRhY2htZW50Lm5hbWUpXG4gIGxldCBydW5uaW5nVG90YWxTaXplID0gY29tcHV0ZUF0dGFjaG1lbnRzVG90YWxTaXplKGV4aXN0aW5nQXR0YWNobWVudHMpXG5cbiAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICBpZiAoIWFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBuZXdUb3RhbFNpemUgPSBydW5uaW5nVG90YWxTaXplICsgZmlsZS5zaXplXG4gICAgaWYgKG5ld1RvdGFsU2l6ZSA+IG1heFRvdGFsU2l6ZSkge1xuICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHR5cGVGaWxlID0gZmlsZS50eXBlIHx8IGZpbGVUeXBlc1tmaWxlRXh0ZW5zaW9uXVxuICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIHVuaXF1ZU5hbWUsIHsgdHlwZTogdHlwZUZpbGUgfSlcblxuICAgIGNvbnN0IGF0dGFjaG1lbnRGaWxlOiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICBpZDogY3JlYXRlSWQoKSxcbiAgICAgIG5hbWU6IHVuaXF1ZU5hbWUsXG4gICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgIHN0YXR1czogJ3N0YXJ0ZWQnLFxuICAgIH1cblxuICAgIGluc2VydGVkRmlsZXMucHVzaChhdHRhY2htZW50RmlsZSlcbiAgICBhdHRhY2htZW50c05hbWVzLnB1c2godW5pcXVlTmFtZSlcbiAgICBydW5uaW5nVG90YWxTaXplICs9IGZpbGUuc2l6ZVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaW5zZXJ0ZWRGaWxlcyxcbiAgICBleGNlZWRlZEZpbGVzLFxuICAgIGludmFsaWRFeHRlbnNpb25GaWxlcyxcbiAgICBoYXNFcnJvcnM6IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY2FuUHJldmlld0tub3dsZWRnZUF0dGFjaG1lbnQgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpOiBib29sZWFuID0+IHtcbiAgaWYgKGF0dGFjaG1lbnQuc3RhdHVzID09PSAnZmFpbGVkJykgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIChcbiAgICBhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgQm9vbGVhbihhdHRhY2htZW50LnVybF90aHVtYm5haWwgfHwgYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfHwgYXR0YWNobWVudC51cmxfZmlsZSlcbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgc2hvdWxkQmxvY2tLbm93bGVkZ2VVcGxvYWQgPSAoaXNBdFNpemVMaW1pdDogYm9vbGVhbik6IGJvb2xlYW4gPT4gaXNBdFNpemVMaW1pdFxuXG5leHBvcnQgY29uc3Qgc2hvdWxkRW5hYmxlS25vd2xlZGdlRHJhZ1N0YXRlID0gKGlzQXRTaXplTGltaXQ6IGJvb2xlYW4pOiBib29sZWFuID0+ICFpc0F0U2l6ZUxpbWl0XG5cbmV4cG9ydCBjb25zdCBzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0ID0gKGZpbGVzOiBGaWxlTGlzdCB8IG51bGwgfCB1bmRlZmluZWQpOiBmaWxlcyBpcyBGaWxlTGlzdCA9PlxuICBCb29sZWFuKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApXG5cbmV4cG9ydCBjb25zdCBhcHBlbmRLbm93bGVkZ2VBdHRhY2htZW50cyA9IChjdXJyZW50OiBBdHRhY2htZW50RmlsZVtdLCBpbnNlcnRlZDogQXR0YWNobWVudEZpbGVbXSk6IEF0dGFjaG1lbnRGaWxlW10gPT4gW1xuICAuLi4oY3VycmVudCB8fCBbXSksXG4gIC4uLmluc2VydGVkLFxuXVxuXG5leHBvcnQgY29uc3QgcmVtb3ZlS25vd2xlZGdlQXR0YWNobWVudEJ5SW5kZXggPSAoXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdLFxuICBpbmRleDogbnVtYmVyXG4pOiBBdHRhY2htZW50RmlsZVtdIHwgbnVsbCA9PiB7XG4gIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gYXR0YWNobWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKChfLCBhdHRhY2htZW50SW5kZXgpID0+IGF0dGFjaG1lbnRJbmRleCAhPT0gaW5kZXgpXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlS25vd2xlZGdlQXR0YWNobWVudEF0SW5kZXggPSAoXG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50RmlsZVtdLFxuICBpbmRleDogbnVtYmVyXG4pOiBBdHRhY2htZW50RmlsZSB8IG51bGwgPT4gYXR0YWNobWVudHNbaW5kZXhdID8/IG51bGxcblxuZXhwb3J0IGNvbnN0IHNob3VsZFJ1bktub3dsZWRnZURvd25sb2FkRWZmZWN0ID0gKFxuICBzdWNjZXNzOiB1bmtub3duLFxuICBlcnJvcjogdW5rbm93bixcbiAgaXNMb2FkaW5nOiBib29sZWFuXG4pOiBzdWNjZXNzIGlzIHsgYmxvYjogQmxvYjsgZmlsZW5hbWU6IHN0cmluZyB9ID0+IEJvb2xlYW4oc3VjY2VzcyAmJiAhZXJyb3IgJiYgIWlzTG9hZGluZylcblxuZXhwb3J0IGNvbnN0IHNob3VsZEhhbmRsZUtub3dsZWRnZUF0dGFjaG1lbnRBY3Rpb24gPSAoaXNEb3dubG9hZGluZzogYm9vbGVhbik6IGJvb2xlYW4gPT4gIWlzRG93bmxvYWRpbmdcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVLbm93bGVkZ2VGaWxlRXJyb3JNb2RhbFN0YXRlID0gKGlucHV0OiB7XG4gIGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogc3RyaW5nW11cbn0pOiB7XG4gIGlzT3BlbjogYm9vbGVhblxuICBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXVxuICBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXVxuICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdXG59ID0+ICh7XG4gIGlzT3BlbjogdHJ1ZSxcbiAgZXhjbHVkZWRGaWxlczogW10sXG4gIGV4Y2VlZGVkRmlsZXM6IGlucHV0LmV4Y2VlZGVkRmlsZXMsXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogaW5wdXQuaW52YWxpZEV4dGVuc2lvbkZpbGVzLFxufSlcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUgPSAoKToge1xuICBpc09wZW46IGJvb2xlYW5cbiAgZXhjbHVkZWRGaWxlczogc3RyaW5nW11cbiAgZXhjZWVkZWRGaWxlczogc3RyaW5nW11cbiAgaW52YWxpZEV4dGVuc2lvbkZpbGVzOiBzdHJpbmdbXVxufSA9PiAoe1xuICBpc09wZW46IGZhbHNlLFxuICBleGNsdWRlZEZpbGVzOiBbXSxcbiAgZXhjZWVkZWRGaWxlczogW10sXG4gIGludmFsaWRFeHRlbnNpb25GaWxlczogW10sXG59KVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sSUFBTUEsd0JBQXdCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0FBRXZELE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxXQUFxQixFQUFFQyxjQUFzQixFQUFhO0VBQ3hGLElBQUFDLHFCQUFBLEdBQW1DRCxjQUFjLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFBQUMsc0JBQUEsR0FBQUMsY0FBQSxDQUFBSCxxQkFBQTtJQUFyREksUUFBUSxH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
|