@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
|
@@ -9,7 +9,7 @@ import { buildChipElement } from '../ContextMentionChip';
|
|
|
9
9
|
import { ContextMentionChipGlobalStyles } from '../ContextMentionChip/ContextMentionChip.styles';
|
|
10
10
|
import { buildSlashChipElement } from '../SlashCommandChip';
|
|
11
11
|
import { filesFromDataTransfer } from '../../../utils/chatInputFiles';
|
|
12
|
-
import { isPlaceholderTruncatedInEditor, resolveTriggerInsertPrefix } from './ContextMentionEditor.helpers';
|
|
12
|
+
import { isEditorVisuallyMultiline, isPlaceholderTruncatedInEditor, resolvePreviousCharBeforeCaret, resolveTriggerInsertPrefix, shouldMergeAtSignWithPreviousSibling, shouldEvaluatePlaceholderTruncation, shouldNormalizeEmptyEditorDom, shouldShowPlaceholderTooltip } from './ContextMentionEditor.helpers';
|
|
13
13
|
import { SCMEEditable } from './ContextMentionEditor.styles';
|
|
14
14
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
15
|
export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -50,14 +50,13 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
50
50
|
}
|
|
51
51
|
}, []);
|
|
52
52
|
var normalizeEmptyEditorDom = useCallback(function () {
|
|
53
|
-
var _editor$textContent;
|
|
54
53
|
var editor = editorRef.current;
|
|
55
54
|
if (!editor) return;
|
|
56
55
|
|
|
57
56
|
// Limpiar cualquier residuo (br, espacios) que deje el browser al vaciar el contenteditable.
|
|
58
57
|
// Sin esto, un espacio suelto activa data-empty="true" + ::before placeholder en línea 1
|
|
59
58
|
// y desplaza el cursor a la línea 2.
|
|
60
|
-
if ((
|
|
59
|
+
if (shouldNormalizeEmptyEditorDom(editor.textContent)) {
|
|
61
60
|
editor.innerHTML = '';
|
|
62
61
|
}
|
|
63
62
|
var selection = window.getSelection();
|
|
@@ -72,8 +71,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
72
71
|
var _placeholder$trim;
|
|
73
72
|
var el = editorRef.current;
|
|
74
73
|
var ph = (_placeholder$trim = placeholder === null || placeholder === void 0 ? void 0 : placeholder.trim()) !== null && _placeholder$trim !== void 0 ? _placeholder$trim : '';
|
|
75
|
-
|
|
76
|
-
if (!el || !ph || !isEditorLogicallyEmpty) {
|
|
74
|
+
if (!el || !shouldEvaluatePlaceholderTruncation(placeholder, serialize().text)) {
|
|
77
75
|
setPlaceholderTruncated(false);
|
|
78
76
|
return;
|
|
79
77
|
}
|
|
@@ -191,13 +189,9 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
191
189
|
}
|
|
192
190
|
var range = selection.getRangeAt(0);
|
|
193
191
|
range.collapse(true);
|
|
194
|
-
var prefix = '';
|
|
195
192
|
var startContainer = range.startContainer,
|
|
196
193
|
startOffset = range.startOffset;
|
|
197
|
-
|
|
198
|
-
var prevChar = startOffset > 0 ? startContainer.data.charAt(startOffset - 1) : '';
|
|
199
|
-
prefix = resolveTriggerInsertPrefix(prevChar);
|
|
200
|
-
}
|
|
194
|
+
var prefix = resolveTriggerInsertPrefix(resolvePreviousCharBeforeCaret(startContainer, startOffset));
|
|
201
195
|
var inserted = "".concat(prefix, "@");
|
|
202
196
|
var textNode = document.createTextNode(inserted);
|
|
203
197
|
range.insertNode(textNode);
|
|
@@ -207,7 +201,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
207
201
|
var prevSibling = textNode.previousSibling;
|
|
208
202
|
var caretNode = textNode;
|
|
209
203
|
var caretOffset = inserted.length;
|
|
210
|
-
if (prefix
|
|
204
|
+
if (shouldMergeAtSignWithPreviousSibling(prefix, prevSibling)) {
|
|
211
205
|
var prevText = prevSibling;
|
|
212
206
|
caretOffset = prevText.data.length + inserted.length;
|
|
213
207
|
prevText.data += inserted;
|
|
@@ -238,13 +232,9 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
238
232
|
}
|
|
239
233
|
var range = selection.getRangeAt(0);
|
|
240
234
|
range.collapse(true);
|
|
241
|
-
var prefix = '';
|
|
242
235
|
var startContainer = range.startContainer,
|
|
243
236
|
startOffset = range.startOffset;
|
|
244
|
-
|
|
245
|
-
var prevChar = startOffset > 0 ? startContainer.data.charAt(startOffset - 1) : '';
|
|
246
|
-
prefix = resolveTriggerInsertPrefix(prevChar);
|
|
247
|
-
}
|
|
237
|
+
var prefix = resolveTriggerInsertPrefix(resolvePreviousCharBeforeCaret(startContainer, startOffset));
|
|
248
238
|
var inserted = "".concat(prefix, "/");
|
|
249
239
|
var textNode = document.createTextNode(inserted);
|
|
250
240
|
range.insertNode(textNode);
|
|
@@ -271,13 +261,9 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
271
261
|
}
|
|
272
262
|
var range = selection.getRangeAt(0);
|
|
273
263
|
range.collapse(true);
|
|
274
|
-
var prefix = '';
|
|
275
264
|
var startContainer = range.startContainer,
|
|
276
265
|
startOffset = range.startOffset;
|
|
277
|
-
|
|
278
|
-
var prevChar = startOffset > 0 ? startContainer.data.charAt(startOffset - 1) : '';
|
|
279
|
-
prefix = resolveTriggerInsertPrefix(prevChar);
|
|
280
|
-
}
|
|
266
|
+
var prefix = resolveTriggerInsertPrefix(resolvePreviousCharBeforeCaret(startContainer, startOffset));
|
|
281
267
|
var inserted = "".concat(prefix, "#");
|
|
282
268
|
var textNode = document.createTextNode(inserted);
|
|
283
269
|
range.insertNode(textNode);
|
|
@@ -290,20 +276,19 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
290
276
|
serialize: serialize,
|
|
291
277
|
syncTriggerAtRunLength: syncTriggerAtRunLength,
|
|
292
278
|
hasVisualMultiline: function hasVisualMultiline() {
|
|
293
|
-
var _editor$textContent$t, _editor$
|
|
279
|
+
var _editor$textContent$t, _editor$textContent;
|
|
294
280
|
var editor = editorRef.current;
|
|
295
281
|
if (!editor) {
|
|
296
282
|
return false;
|
|
297
283
|
}
|
|
298
|
-
var text = (_editor$textContent$t = (_editor$
|
|
284
|
+
var text = (_editor$textContent$t = (_editor$textContent = editor.textContent) === null || _editor$textContent === void 0 ? void 0 : _editor$textContent.trim()) !== null && _editor$textContent$t !== void 0 ? _editor$textContent$t : '';
|
|
299
285
|
if (!text) {
|
|
300
286
|
return false;
|
|
301
287
|
}
|
|
302
288
|
var styles = window.getComputedStyle(editor);
|
|
303
289
|
var lineHeight = parseFloat(styles.lineHeight) || 22;
|
|
304
290
|
var editorHeight = editor.getBoundingClientRect().height;
|
|
305
|
-
|
|
306
|
-
return isMultiline;
|
|
291
|
+
return isEditorVisuallyMultiline(editorHeight, lineHeight);
|
|
307
292
|
},
|
|
308
293
|
getEditorClientRect: function getEditorClientRect() {
|
|
309
294
|
var _editorRef$current$ge, _editorRef$current;
|
|
@@ -465,8 +450,7 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
465
450
|
selection.collapseToEnd();
|
|
466
451
|
handleInput();
|
|
467
452
|
};
|
|
468
|
-
var
|
|
469
|
-
var placeholderTooltipTitle = logicalEmpty && placeholderTruncated && trimmedPlaceholder ? trimmedPlaceholder : '';
|
|
453
|
+
var placeholderTooltipTitle = shouldShowPlaceholderTooltip(logicalEmpty, placeholderTruncated, placeholder) ? (_placeholder$trim2 = placeholder === null || placeholder === void 0 ? void 0 : placeholder.trim()) !== null && _placeholder$trim2 !== void 0 ? _placeholder$trim2 : '' : '';
|
|
470
454
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
471
455
|
children: [/*#__PURE__*/_jsx(ContextMentionChipGlobalStyles, {}), /*#__PURE__*/_jsx(Tooltip, {
|
|
472
456
|
title: placeholderTooltipTitle,
|
|
@@ -501,4 +485,4 @@ export var ContextMentionEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
501
485
|
});
|
|
502
486
|
});
|
|
503
487
|
ContextMentionEditor.displayName = 'ContextMentionEditor';
|
|
504
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsImZpbGVzRnJvbURhdGFUcmFuc2ZlciIsImlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciIsInJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4IiwiU0NNRUVkaXRhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiQ29udGV4dE1lbnRpb25FZGl0b3IiLCJfcmVmIiwicmVmIiwiX3BsYWNlaG9sZGVyJHRyaW0yIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsImNsYXNzTmFtZSIsIm1heEhlaWdodCIsIm9uSW5wdXQiLCJvbktleURvd24iLCJvbkZvY3VzIiwib25CbHVyIiwib25QYXN0ZUZpbGVzIiwiX3VzZUNvbnRleHRNZW50aW9ucyIsImVkaXRvclJlZiIsInVwZGF0ZVRyaWdnZXIiLCJyZXBsYWNlVHJpZ2dlcldpdGhDaGlwIiwic3luY1RyaWdnZXJBdFJ1bkxlbmd0aCIsInVwZGF0ZVNsYXNoVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCIsInVwZGF0ZUhhc2hUcmlnZ2VyIiwicmVwbGFjZVRyaWdnZXJXaXRoU2tpbGxDaGlwIiwic2VyaWFsaXplIiwiY2xlYXJFZGl0b3JEb20iLCJjbGVhciIsImZvY3VzIiwic2tpcE5leHRJbnB1dCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwic2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvZ2ljYWxFbXB0eSIsInNldExvZ2ljYWxFbXB0eSIsInN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSIsImlzRW1wdHkiLCJjdXJyZW50Iiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwibm9ybWFsaXplRW1wdHlFZGl0b3JEb20iLCJfZWRpdG9yJHRleHRDb250ZW50IiwiZWRpdG9yIiwidGV4dENvbnRlbnQiLCJ0cmltIiwiaW5uZXJIVE1MIiwic2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2UiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZUNvbnRlbnRzIiwiY29sbGFwc2UiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiIsIl9wbGFjZWhvbGRlciR0cmltIiwiZWwiLCJwaCIsImlzRWRpdG9yTG9naWNhbGx5RW1wdHkiLCJ0ZXh0IiwidW5kZWZpbmVkIiwicm8iLCJSZXNpemVPYnNlcnZlciIsInF1ZXVlTWljcm90YXNrIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJlbWl0SW5wdXRTdGF0ZSIsInRyaWciLCJzbGFzaFRyaWciLCJoYXNoVHJpZyIsInN0YXRlIiwibWVudGlvbnMiLCJzbGFzaENvbW1hbmRzIiwiX29iamVjdFNwcmVhZCIsInRyaWdnZXIiLCJhY3RpdmUiLCJxdWVyeSIsImF0UnVuTGVuZ3RoIiwic2xhc2hUcmlnZ2VyIiwiaGFzaFRyaWdnZXIiLCJzZXRQbGFpblRleHQiLCJwbGFpbiIsImNoaWxkTm9kZXMiLCJsZW5ndGgiLCJpbnNlcnRNZW50aW9uVHJpZ2dlciIsImFuY2hvck5vZGUiLCJjb250YWlucyIsImVuZFJhbmdlIiwiZ2V0UmFuZ2VBdCIsInByZWZpeCIsInN0YXJ0Q29udGFpbmVyIiwic3RhcnRPZmZzZXQiLCJub2RlVHlwZSIsIk5vZGUiLCJURVhUX05PREUiLCJwcmV2Q2hhciIsImRhdGEiLCJjaGFyQXQiLCJpbnNlcnRlZCIsImNvbmNhdCIsInRleHROb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbnNlcnROb2RlIiwicHJldlNpYmxpbmciLCJwcmV2aW91c1NpYmxpbmciLCJjYXJldE5vZGUiLCJjYXJldE9mZnNldCIsImVuZHNXaXRoIiwicHJldlRleHQiLCJyZW1vdmUiLCJzZXRTdGFydCIsImluc2VydFNsYXNoVHJpZ2dlciIsImluc2VydFNraWxsVHJpZ2dlciIsImhhc1Zpc3VhbE11bHRpbGluZSIsIl9lZGl0b3IkdGV4dENvbnRlbnQkdCIsIl9lZGl0b3IkdGV4dENvbnRlbnQyIiwic3R5bGVzIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImxpbmVIZWlnaHQiLCJwYXJzZUZsb2F0IiwiZWRpdG9ySGVpZ2h0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiaGVpZ2h0IiwiaXNNdWx0aWxpbmUiLCJnZXRFZGl0b3JDbGllbnRSZWN0IiwiX2VkaXRvclJlZiRjdXJyZW50JGdlIiwiX2VkaXRvclJlZiRjdXJyZW50IiwiaW5zZXJ0TWVudGlvbiIsIm1lbnRpb24iLCJjaGlwIiwiYXBwZW5kTWVudGlvbkF0RW5kIiwiaWQiLCJ0eXBlIiwibGFiZWwiLCJ0cmFpbGluZ1NwYWNlIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRTa2lsbE1lbnRpb24iLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiaGFuZGxlSW5wdXQiLCJoYW5kbGVQYXN0ZSIsImUiLCJmaWxlcyIsImNsaXBib2FyZERhdGEiLCJwcmV2ZW50RGVmYXVsdCIsImdldERhdGEiLCJyYW5nZUNvdW50IiwiZGVsZXRlRnJvbURvY3VtZW50IiwiY29sbGFwc2VUb0VuZCIsInRyaW1tZWRQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsIndpZHRoIiwibWluV2lkdGgiLCIkbWF4SGVpZ2h0IiwiY29udGVudEVkaXRhYmxlIiwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiwicm9sZSIsIm9uUGFzdGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL0NvbnRleHRNZW50aW9uRWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGlwYm9hcmRFdmVudCxcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VDb250ZXh0TWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgYnVpbGRDaGlwRWxlbWVudCB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgYnVpbGRTbGFzaENoaXBFbGVtZW50LCBTbGFzaENvbW1hbmRDaGlwRGF0YSB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZENoaXAnXG5pbXBvcnQgeyBmaWxlc0Zyb21EYXRhVHJhbnNmZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jaGF0SW5wdXRGaWxlcydcbmltcG9ydCB7IGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvciwgcmVzb2x2ZVRyaWdnZXJJbnNlcnRQcmVmaXggfSBmcm9tICcuL0NvbnRleHRNZW50aW9uRWRpdG9yLmhlbHBlcnMnXG5pbXBvcnQgeyBTQ01FRWRpdGFibGUgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uRWRpdG9yLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgPSB7XG4gIGZvY3VzOiAoKSA9PiB2b2lkXG4gIGNsZWFyOiAoKSA9PiB2b2lkXG4gIHNldFBsYWluVGV4dDogKHRleHQ6IHN0cmluZykgPT4gdm9pZFxuICAvKiogSW5zZXJ0YSBgQGAgZW4gZWwgY2FyZXQgKGNvbiBlc3BhY2lvIHByZXZpbyBzaSBoYWNlIGZhbHRhKSB5IGFicmUgZWwgdHJpZ2dlciBkZSBtZW50aW9ucy4gKi9cbiAgaW5zZXJ0TWVudGlvblRyaWdnZXI6ICgpID0+IHZvaWRcbiAgLyoqIEluc2VydGEgYC9gIGVuIGVsIGNhcmV0IChjb24gZXNwYWNpbyBwcmV2aW8gc2kgaGFjZSBmYWx0YSkgeSBhYnJlIGVsIHRyaWdnZXIgZGUgc2xhc2ggY29tbWFuZHMuICovXG4gIGluc2VydFNsYXNoVHJpZ2dlcjogKCkgPT4gdm9pZFxuICAvKiogSW5zZXJ0YSBgI2AgZW4gZWwgY2FyZXQgKGNvbiBlc3BhY2lvIHByZXZpbyBzaSBoYWNlIGZhbHRhKSB5IGFicmUgZWwgdHJpZ2dlciBkZSBza2lsbHMuICovXG4gIGluc2VydFNraWxsVHJpZ2dlcjogKCkgPT4gdm9pZFxuICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgYXBwZW5kTWVudGlvbkF0RW5kOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgaW5zZXJ0U2xhc2hDb21tYW5kOiAoY29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHZvaWRcbiAgLyoqIFJlZW1wbGF6YSBlbCBgI3F1ZXJ5YCBwZW5kaWVudGUgcG9yIGVsIGNoaXAgZGUgbGEgc2tpbGwgZWxlZ2lkYS4gKi9cbiAgaW5zZXJ0U2tpbGxNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aDogKGF0UnVuTGVuZ3RoOiBudW1iZXIpID0+IHZvaWRcbiAgc2VyaWFsaXplOiAoKSA9PiB7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICBzbGFzaENvbW1hbmRzOiBTbGFzaENvbW1hbmRDaGlwRGF0YVtdXG4gIH1cbiAgaGFzVmlzdWFsTXVsdGlsaW5lOiAoKSA9PiBib29sZWFuXG4gIC8qKiBSZWN0IGRlbCDDoXJlYSBlZGl0YWJsZSAodmlld3BvcnQpOyBsbyB1c2EgZWwgcG9wb3ZlciBkZSBAIHBhcmEgYWxpbmVhciBhbmNobyB5IGZhbGxiYWNrIHZlcnRpY2FsLiAqL1xuICBnZXRFZGl0b3JDbGllbnRSZWN0OiAoKSA9PiBET01SZWN0IHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvclByb3BzID0ge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKiBBbHRvIG3DoXhpbW8gZGVsIMOhcmVhIGVkaXRhYmxlIChweCkuIFNlIGFqdXN0YSBjdWFuZG8gaGF5IGNoaXBzIGRlIGNvbnRleHRvL2FkanVudG9zLiAqL1xuICBtYXhIZWlnaHQ/OiBudW1iZXJcbiAgb25JbnB1dD86IChzdGF0ZToge1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgc2xhc2hDb21tYW5kczogU2xhc2hDb21tYW5kQ2hpcERhdGFbXVxuICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfVxuICB9KSA9PiB2b2lkXG4gIG9uS2V5RG93bj86IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZFxuICBvbkZvY3VzPzogKCkgPT4gdm9pZFxuICBvbkJsdXI/OiAoKSA9PiB2b2lkXG4gIC8qKiBDbGlwYm9hcmQgZmlsZXMgKHNjcmVlbnNob3RzLCBjb3BpZWQgaW1hZ2VzKS4gVGV4dCBpcyBzdGlsbCBpbnNlcnRlZCB3aGVuIHByZXNlbnQuICovXG4gIG9uUGFzdGVGaWxlcz86IChmaWxlczogRmlsZVtdKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvbkVkaXRvciA9IGZvcndhcmRSZWY8Q29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUsIENvbnRleHRNZW50aW9uRWRpdG9yUHJvcHM+KFxuICAoeyBwbGFjZWhvbGRlciwgZGlzYWJsZWQsIGNsYXNzTmFtZSwgbWF4SGVpZ2h0LCBvbklucHV0LCBvbktleURvd24sIG9uRm9jdXMsIG9uQmx1ciwgb25QYXN0ZUZpbGVzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGVkaXRvclJlZixcbiAgICAgIHVwZGF0ZVRyaWdnZXIsXG4gICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwLFxuICAgICAgc3luY1RyaWdnZXJBdFJ1bkxlbmd0aCxcbiAgICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCxcbiAgICAgIHVwZGF0ZUhhc2hUcmlnZ2VyLFxuICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2tpbGxDaGlwLFxuICAgICAgc2VyaWFsaXplLFxuICAgICAgY2xlYXI6IGNsZWFyRWRpdG9yRG9tLFxuICAgICAgZm9jdXMsXG4gICAgfSA9IHVzZUNvbnRleHRNZW50aW9ucygpXG4gICAgY29uc3Qgc2tpcE5leHRJbnB1dCA9IHVzZVJlZihmYWxzZSlcbiAgICBjb25zdCBbcGxhY2Vob2xkZXJUcnVuY2F0ZWQsIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtsb2dpY2FsRW1wdHksIHNldExvZ2ljYWxFbXB0eV0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gICAgY29uc3Qgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlID0gdXNlQ2FsbGJhY2soKGlzRW1wdHk6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChlZGl0b3JSZWYuY3VycmVudCkge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtZW1wdHknLCBTdHJpbmcoaXNFbXB0eSkpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBub3JtYWxpemVFbXB0eUVkaXRvckRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG5cbiAgICAgIC8vIExpbXBpYXIgY3VhbHF1aWVyIHJlc2lkdW8gKGJyLCBlc3BhY2lvcykgcXVlIGRlamUgZWwgYnJvd3NlciBhbCB2YWNpYXIgZWwgY29udGVudGVkaXRhYmxlLlxuICAgICAgLy8gU2luIGVzdG8sIHVuIGVzcGFjaW8gc3VlbHRvIGFjdGl2YSBkYXRhLWVtcHR5PVwidHJ1ZVwiICsgOjpiZWZvcmUgcGxhY2Vob2xkZXIgZW4gbMOtbmVhIDFcbiAgICAgIC8vIHkgZGVzcGxhemEgZWwgY3Vyc29yIGEgbGEgbMOtbmVhIDIuXG4gICAgICBpZiAoZWRpdG9yLnRleHRDb250ZW50Py50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSAnJ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICB9LCBbZWRpdG9yUmVmXSlcblxuICAgIGNvbnN0IHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHBoID0gcGxhY2Vob2xkZXI/LnRyaW0oKSA/PyAnJ1xuICAgICAgY29uc3QgaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSA9IHNlcmlhbGl6ZSgpLnRleHQudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoIWVsIHx8ICFwaCB8fCAhaXNFZGl0b3JMb2dpY2FsbHlFbXB0eSkge1xuICAgICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldFBsYWNlaG9sZGVyVHJ1bmNhdGVkKGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvcihlbCwgcGgpKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgc2VyaWFsaXplXSlcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgY29uc3QgZWwgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgaWYgKCFlbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgIH0pXG4gICAgICByby5vYnNlcnZlKGVsKVxuICAgICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKVxuICAgIH0sIFtwbGFjZWhvbGRlciwgZGlzYWJsZWQsIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbl0pXG5cbiAgICBjb25zdCBlbWl0SW5wdXRTdGF0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWcgPSB1cGRhdGVUcmlnZ2VyKClcbiAgICAgIGNvbnN0IHNsYXNoVHJpZyA9IHVwZGF0ZVNsYXNoVHJpZ2dlcigpXG4gICAgICBjb25zdCBoYXNoVHJpZyA9IHVwZGF0ZUhhc2hUcmlnZ2VyKClcbiAgICAgIGxldCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICBub3JtYWxpemVFbXB0eUVkaXRvckRvbSgpXG4gICAgICAgIHN0YXRlID0geyB0ZXh0OiAnJywgbWVudGlvbnM6IFtdLCBzbGFzaENvbW1hbmRzOiBbXSB9XG4gICAgICB9XG4gICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiB0cmlnLmFjdGl2ZSwgcXVlcnk6IHRyaWcucXVlcnksIGF0UnVuTGVuZ3RoOiB0cmlnLmF0UnVuTGVuZ3RoIH0sXG4gICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IHNsYXNoVHJpZy5hY3RpdmUsIHF1ZXJ5OiBzbGFzaFRyaWcucXVlcnkgfSxcbiAgICAgICAgaGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBoYXNoVHJpZy5hY3RpdmUsIHF1ZXJ5OiBoYXNoVHJpZy5xdWVyeSB9LFxuICAgICAgfSlcbiAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICB9LCBbXG4gICAgICB1cGRhdGVUcmlnZ2VyLFxuICAgICAgdXBkYXRlU2xhc2hUcmlnZ2VyLFxuICAgICAgdXBkYXRlSGFzaFRyaWdnZXIsXG4gICAgICBzZXJpYWxpemUsXG4gICAgICBub3JtYWxpemVFbXB0eUVkaXRvckRvbSxcbiAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSxcbiAgICAgIG9uSW5wdXQsXG4gICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24sXG4gICAgXSlcblxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgICByZWYsXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBmb2N1cyxcbiAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICBjbGVhckVkaXRvckRvbSgpXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKHRydWUpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KHRydWUpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2socmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKVxuICAgICAgICB9LFxuICAgICAgICBzZXRQbGFpblRleHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yKSByZXR1cm5cbiAgICAgICAgICBjb25zdCBwbGFpbiA9IHRleHQgPz8gJydcbiAgICAgICAgICBlZGl0b3IudGV4dENvbnRlbnQgPSBwbGFpblxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICBlZGl0b3IuaW5uZXJIVE1MID0gJydcbiAgICAgICAgICB9XG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgZWRpdG9yLmNoaWxkTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgaW5zZXJ0TWVudGlvblRyaWdnZXI6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yIHx8IGRpc2FibGVkKSByZXR1cm5cblxuICAgICAgICAgIGZvY3VzKClcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cblxuICAgICAgICAgIGlmICghc2VsZWN0aW9uLmFuY2hvck5vZGUgfHwgIWVkaXRvci5jb250YWlucyhzZWxlY3Rpb24uYW5jaG9yTm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgZW5kUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgICAgICAgIGVuZFJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UoZW5kUmFuZ2UpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG5cbiAgICAgICAgICBsZXQgcHJlZml4ID0gJydcbiAgICAgICAgICBjb25zdCB7IHN0YXJ0Q29udGFpbmVyLCBzdGFydE9mZnNldCB9ID0gcmFuZ2VcbiAgICAgICAgICBpZiAoc3RhcnRDb250YWluZXIubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Q2hhciA9IHN0YXJ0T2Zmc2V0ID4gMCA/IChzdGFydENvbnRhaW5lciBhcyBUZXh0KS5kYXRhLmNoYXJBdChzdGFydE9mZnNldCAtIDEpIDogJydcbiAgICAgICAgICAgIHByZWZpeCA9IHJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4KHByZXZDaGFyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGluc2VydGVkID0gYCR7cHJlZml4fUBgXG4gICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpbnNlcnRlZClcbiAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRleHROb2RlKVxuXG4gICAgICAgICAgLy8gU2kgZWwgYEBgIHF1ZWTDsyBlbiB1biBub2RvIG51ZXZvLCB1bmlyIGNvbiBlbCB0ZXh0IG5vZGUgcHJldmlvIHF1ZSB0ZXJtaW5hIGVuIGBAYFxuICAgICAgICAgIC8vIHBhcmEgcXVlIGRldGVjdE1lbnRpb25UcmlnZ2VyIHZlYSBlbCBydW4gY29tcGxldG8gKEBALCBAQEAsIOKApikuXG4gICAgICAgICAgY29uc3QgcHJldlNpYmxpbmcgPSB0ZXh0Tm9kZS5wcmV2aW91c1NpYmxpbmdcbiAgICAgICAgICBsZXQgY2FyZXROb2RlID0gdGV4dE5vZGVcbiAgICAgICAgICBsZXQgY2FyZXRPZmZzZXQgPSBpbnNlcnRlZC5sZW5ndGhcbiAgICAgICAgICBpZiAocHJlZml4ID09PSAnJyAmJiBwcmV2U2libGluZz8ubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmIChwcmV2U2libGluZyBhcyBUZXh0KS5kYXRhLmVuZHNXaXRoKCdAJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZUZXh0ID0gcHJldlNpYmxpbmcgYXMgVGV4dFxuICAgICAgICAgICAgY2FyZXRPZmZzZXQgPSBwcmV2VGV4dC5kYXRhLmxlbmd0aCArIGluc2VydGVkLmxlbmd0aFxuICAgICAgICAgICAgcHJldlRleHQuZGF0YSArPSBpbnNlcnRlZFxuICAgICAgICAgICAgdGV4dE5vZGUucmVtb3ZlKClcbiAgICAgICAgICAgIGNhcmV0Tm9kZSA9IHByZXZUZXh0XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRWwgY2FyZXQgZGViZSBxdWVkYXIgREVOVFJPIGRlbCB0ZXh0IG5vZGUgKGRlc3B1w6lzIGRlIGBAYCkuXG4gICAgICAgICAgLy8gYHNldFN0YXJ0QWZ0ZXJgIGxvIGRlamEgZW4gZWwgcGFkcmUgeSBkZXRlY3RNZW50aW9uVHJpZ2dlciBubyBhY3RpdmEgZWwgcG9wb3Zlci5cbiAgICAgICAgICByYW5nZS5zZXRTdGFydChjYXJldE5vZGUsIGNhcmV0T2Zmc2V0KVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuXG4gICAgICAgICAgZW1pdElucHV0U3RhdGUoKVxuICAgICAgICB9LFxuICAgICAgICBpbnNlcnRTbGFzaFRyaWdnZXI6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yIHx8IGRpc2FibGVkKSByZXR1cm5cblxuICAgICAgICAgIGZvY3VzKClcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cblxuICAgICAgICAgIGlmICghc2VsZWN0aW9uLmFuY2hvck5vZGUgfHwgIWVkaXRvci5jb250YWlucyhzZWxlY3Rpb24uYW5jaG9yTm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgZW5kUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgICAgICAgIGVuZFJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UoZW5kUmFuZ2UpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG5cbiAgICAgICAgICBsZXQgcHJlZml4ID0gJydcbiAgICAgICAgICBjb25zdCB7IHN0YXJ0Q29udGFpbmVyLCBzdGFydE9mZnNldCB9ID0gcmFuZ2VcbiAgICAgICAgICBpZiAoc3RhcnRDb250YWluZXIubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Q2hhciA9IHN0YXJ0T2Zmc2V0ID4gMCA/IChzdGFydENvbnRhaW5lciBhcyBUZXh0KS5kYXRhLmNoYXJBdChzdGFydE9mZnNldCAtIDEpIDogJydcbiAgICAgICAgICAgIHByZWZpeCA9IHJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4KHByZXZDaGFyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGluc2VydGVkID0gYCR7cHJlZml4fS9gXG4gICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpbnNlcnRlZClcbiAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRleHROb2RlKVxuXG4gICAgICAgICAgLy8gQ2FyZXQgZGVudHJvIGRlbCB0ZXh0IG5vZGUgcGFyYSBxdWUgZGV0ZWN0U2xhc2hUcmlnZ2VyIGFjdGl2ZSBlbCBkcm9wZG93bi5cbiAgICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgaW5zZXJ0ZWQubGVuZ3RoKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuXG4gICAgICAgICAgZW1pdElucHV0U3RhdGUoKVxuICAgICAgICB9LFxuICAgICAgICBpbnNlcnRTa2lsbFRyaWdnZXI6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yIHx8IGRpc2FibGVkKSByZXR1cm5cblxuICAgICAgICAgIGZvY3VzKClcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cblxuICAgICAgICAgIGlmICghc2VsZWN0aW9uLmFuY2hvck5vZGUgfHwgIWVkaXRvci5jb250YWlucyhzZWxlY3Rpb24uYW5jaG9yTm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgZW5kUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgICAgICAgIGVuZFJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UoZW5kUmFuZ2UpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG5cbiAgICAgICAgICBsZXQgcHJlZml4ID0gJydcbiAgICAgICAgICBjb25zdCB7IHN0YXJ0Q29udGFpbmVyLCBzdGFydE9mZnNldCB9ID0gcmFuZ2VcbiAgICAgICAgICBpZiAoc3RhcnRDb250YWluZXIubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2Q2hhciA9IHN0YXJ0T2Zmc2V0ID4gMCA/IChzdGFydENvbnRhaW5lciBhcyBUZXh0KS5kYXRhLmNoYXJBdChzdGFydE9mZnNldCAtIDEpIDogJydcbiAgICAgICAgICAgIHByZWZpeCA9IHJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4KHByZXZDaGFyKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGluc2VydGVkID0gYCR7cHJlZml4fSNgXG4gICAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpbnNlcnRlZClcbiAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRleHROb2RlKVxuXG4gICAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGV4dE5vZGUsIGluc2VydGVkLmxlbmd0aClcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcblxuICAgICAgICAgIGVtaXRJbnB1dFN0YXRlKClcbiAgICAgICAgfSxcbiAgICAgICAgc2VyaWFsaXplLFxuICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0ZXh0ID0gZWRpdG9yLnRleHRDb250ZW50Py50cmltKCkgPz8gJydcbiAgICAgICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVkaXRvcilcbiAgICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VGbG9hdChzdHlsZXMubGluZUhlaWdodCkgfHwgMjJcbiAgICAgICAgICBjb25zdCBlZGl0b3JIZWlnaHQgPSBlZGl0b3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG4gICAgICAgICAgY29uc3QgaXNNdWx0aWxpbmUgPSBlZGl0b3JIZWlnaHQgPiBsaW5lSGVpZ2h0ICogMS41XG5cbiAgICAgICAgICByZXR1cm4gaXNNdWx0aWxpbmVcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0RWRpdG9yQ2xpZW50UmVjdDogKCkgPT4gZWRpdG9yUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpID8/IG51bGwsXG4gICAgICAgIGluc2VydE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaXAgPSBidWlsZENoaXBFbGVtZW50KG1lbnRpb24pXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoQ2hpcChjaGlwLCBtZW50aW9uKVxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICAvLyBTaSBlbCBuYXZlZ2Fkb3Igbm8gZGlzcGFyYSBgaW5wdXRgIHRyYXMgZWwgY2hpcCwgZWwgZmxhZyBxdWVkYWJhIGVuIHRydWUgeSBlbCBwcsOzeGltbyBAIGRlbCB1c3VhcmlvIHNlIGlnbm9yYWJhLlxuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgYXBwZW5kTWVudGlvbkF0RW5kOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudFxuICAgICAgICAgIGlmICghZWRpdG9yKSByZXR1cm5cblxuICAgICAgICAgIGNvbnN0IGNoaXAgPSBidWlsZENoaXBFbGVtZW50KG1lbnRpb24pXG4gICAgICAgICAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbicsICd0cnVlJylcbiAgICAgICAgICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWlkJywgU3RyaW5nKG1lbnRpb24uaWQpKVxuICAgICAgICAgIGNoaXAuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tdHlwZScsIG1lbnRpb24udHlwZSlcbiAgICAgICAgICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWxhYmVsJywgbWVudGlvbi5sYWJlbClcbiAgICAgICAgICBjaGlwLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ2ZhbHNlJylcblxuICAgICAgICAgIGNvbnN0IHRyYWlsaW5nU3BhY2UgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnXFx1MDBhMCcpXG4gICAgICAgICAgZWRpdG9yLmFwcGVuZENoaWxkKGNoaXApXG4gICAgICAgICAgZWRpdG9yLmFwcGVuZENoaWxkKHRyYWlsaW5nU3BhY2UpXG5cbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgaGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoZmFsc2UpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGZhbHNlKVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICByYW5nZS5zZXRTdGFydCh0cmFpbGluZ1NwYWNlLCAxKVxuICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNraWxsTWVudGlvbjogKG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpcCA9IGJ1aWxkQ2hpcEVsZW1lbnQobWVudGlvbilcbiAgICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhTa2lsbENoaXAoY2hpcCwgbWVudGlvbilcbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgaGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgICAgIHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbigpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgaW5zZXJ0U2xhc2hDb21tYW5kOiAoY29tbWFuZDogU2xhc2hDb21tYW5kQ2hpcERhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRTbGFzaENoaXBFbGVtZW50KGNvbW1hbmQpXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwKGNoaXAsIGNvbW1hbmQpXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICAgIGhhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIFtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyRWRpdG9yRG9tLFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCxcbiAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2tpbGxDaGlwLFxuICAgICAgICBvbklucHV0LFxuICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24sXG4gICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSxcbiAgICAgICAgZW1pdElucHV0U3RhdGUsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBlZGl0b3JSZWYsXG4gICAgICBdXG4gICAgKVxuXG4gICAgY29uc3QgaGFuZGxlSW5wdXQgPSAoKSA9PiB7XG4gICAgICBpZiAoc2tpcE5leHRJbnB1dC5jdXJyZW50KSB7XG4gICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZW1pdElucHV0U3RhdGUoKVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVBhc3RlID0gKGU6IENsaXBib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgZmlsZXMgPSBmaWxlc0Zyb21EYXRhVHJhbnNmZXIoZS5jbGlwYm9hcmREYXRhKVxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCAmJiBvblBhc3RlRmlsZXMpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIG9uUGFzdGVGaWxlcyhmaWxlcylcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJylcbiAgICAgIGlmIChmaWxlcy5sZW5ndGggJiYgb25QYXN0ZUZpbGVzICYmICF0ZXh0KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKCFzZWxlY3Rpb24gfHwgc2VsZWN0aW9uLnJhbmdlQ291bnQgPT09IDApIHJldHVyblxuICAgICAgc2VsZWN0aW9uLmRlbGV0ZUZyb21Eb2N1bWVudCgpXG4gICAgICBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKVxuICAgICAgc2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKVxuICAgICAgaGFuZGxlSW5wdXQoKVxuICAgIH1cblxuICAgIGNvbnN0IHRyaW1tZWRQbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyPy50cmltKCkgPz8gJydcbiAgICBjb25zdCBwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSA9IGxvZ2ljYWxFbXB0eSAmJiBwbGFjZWhvbGRlclRydW5jYXRlZCAmJiB0cmltbWVkUGxhY2Vob2xkZXIgPyB0cmltbWVkUGxhY2Vob2xkZXIgOiAnJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3BsYWNlaG9sZGVyVG9vbHRpcFRpdGxlfT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCB3aWR0aDogJzEwMCUnLCBtaW5XaWR0aDogMCB9fT5cbiAgICAgICAgICAgIDxTQ01FRWRpdGFibGVcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAkbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHN0eWxlPXttYXhIZWlnaHQgIT0gbnVsbCA/IHsgbWF4SGVpZ2h0IH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBkYXRhLWVtcHR5PXtTdHJpbmcobG9naWNhbEVtcHR5KX1cbiAgICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e1N0cmluZyghIWRpc2FibGVkKX1cbiAgICAgICAgICAgICAgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXG4gICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxrQkFBa0IsUUFBUSxtQ0FBbUM7QUFFdEUsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELFNBQVNDLDhCQUE4QixRQUFRLGlEQUFpRDtBQUNoRyxTQUFTQyxxQkFBcUIsUUFBOEIscUJBQXFCO0FBQ2pGLFNBQVNDLHFCQUFxQixRQUFRLCtCQUErQjtBQUNyRSxTQUFTQyw4QkFBOEIsRUFBRUMsMEJBQTBCLFFBQVEsZ0NBQWdDO0FBQzNHLFNBQVNDLFlBQVksUUFBUSwrQkFBK0I7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWlENUQsT0FBTyxJQUFNQyxvQkFBb0IsZ0JBQUdyQixVQUFVLENBQzVDLFVBQUFzQixJQUFBLEVBQXFHQyxHQUFHLEVBQUs7RUFBQSxJQUFBQyxrQkFBQTtFQUFBLElBQTFHQyxXQUFXLEdBQUFILElBQUEsQ0FBWEcsV0FBVztJQUFFQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtJQUFFQyxTQUFTLEdBQUFMLElBQUEsQ0FBVEssU0FBUztJQUFFQyxTQUFTLEdBQUFOLElBQUEsQ0FBVE0sU0FBUztJQUFFQyxPQUFPLEdBQUFQLElBQUEsQ0FBUE8sT0FBTztJQUFFQyxTQUFTLEdBQUFSLElBQUEsQ0FBVFEsU0FBUztJQUFFQyxPQUFPLEdBQUFULElBQUEsQ0FBUFMsT0FBTztJQUFFQyxNQUFNLEdBQUFW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
|
|
488
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJUb29sdGlwIiwidXNlQ29udGV4dE1lbnRpb25zIiwiYnVpbGRDaGlwRWxlbWVudCIsIkNvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyIsImJ1aWxkU2xhc2hDaGlwRWxlbWVudCIsImZpbGVzRnJvbURhdGFUcmFuc2ZlciIsImlzRWRpdG9yVmlzdWFsbHlNdWx0aWxpbmUiLCJpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IiLCJyZXNvbHZlUHJldmlvdXNDaGFyQmVmb3JlQ2FyZXQiLCJyZXNvbHZlVHJpZ2dlckluc2VydFByZWZpeCIsInNob3VsZE1lcmdlQXRTaWduV2l0aFByZXZpb3VzU2libGluZyIsInNob3VsZEV2YWx1YXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uIiwic2hvdWxkTm9ybWFsaXplRW1wdHlFZGl0b3JEb20iLCJzaG91bGRTaG93UGxhY2Vob2xkZXJUb29sdGlwIiwiU0NNRUVkaXRhYmxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiQ29udGV4dE1lbnRpb25FZGl0b3IiLCJfcmVmIiwicmVmIiwiX3BsYWNlaG9sZGVyJHRyaW0yIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsImNsYXNzTmFtZSIsIm1heEhlaWdodCIsIm9uSW5wdXQiLCJvbktleURvd24iLCJvbkZvY3VzIiwib25CbHVyIiwib25QYXN0ZUZpbGVzIiwiX3VzZUNvbnRleHRNZW50aW9ucyIsImVkaXRvclJlZiIsInVwZGF0ZVRyaWdnZXIiLCJyZXBsYWNlVHJpZ2dlcldpdGhDaGlwIiwic3luY1RyaWdnZXJBdFJ1bkxlbmd0aCIsInVwZGF0ZVNsYXNoVHJpZ2dlciIsInJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcCIsInVwZGF0ZUhhc2hUcmlnZ2VyIiwicmVwbGFjZVRyaWdnZXJXaXRoU2tpbGxDaGlwIiwic2VyaWFsaXplIiwiY2xlYXJFZGl0b3JEb20iLCJjbGVhciIsImZvY3VzIiwic2tpcE5leHRJbnB1dCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInBsYWNlaG9sZGVyVHJ1bmNhdGVkIiwic2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvZ2ljYWxFbXB0eSIsInNldExvZ2ljYWxFbXB0eSIsInN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSIsImlzRW1wdHkiLCJjdXJyZW50Iiwic2V0QXR0cmlidXRlIiwiU3RyaW5nIiwibm9ybWFsaXplRW1wdHlFZGl0b3JEb20iLCJlZGl0b3IiLCJ0ZXh0Q29udGVudCIsImlubmVySFRNTCIsInNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsInJhbmdlIiwiZG9jdW1lbnQiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGVDb250ZW50cyIsImNvbGxhcHNlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24iLCJfcGxhY2Vob2xkZXIkdHJpbSIsImVsIiwicGgiLCJ0cmltIiwidGV4dCIsInVuZGVmaW5lZCIsInJvIiwiUmVzaXplT2JzZXJ2ZXIiLCJxdWV1ZU1pY3JvdGFzayIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiZW1pdElucHV0U3RhdGUiLCJ0cmlnIiwic2xhc2hUcmlnIiwiaGFzaFRyaWciLCJzdGF0ZSIsIm1lbnRpb25zIiwic2xhc2hDb21tYW5kcyIsIl9vYmplY3RTcHJlYWQiLCJ0cmlnZ2VyIiwiYWN0aXZlIiwicXVlcnkiLCJhdFJ1bkxlbmd0aCIsInNsYXNoVHJpZ2dlciIsImhhc2hUcmlnZ2VyIiwic2V0UGxhaW5UZXh0IiwicGxhaW4iLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiaW5zZXJ0TWVudGlvblRyaWdnZXIiLCJhbmNob3JOb2RlIiwiY29udGFpbnMiLCJlbmRSYW5nZSIsImdldFJhbmdlQXQiLCJzdGFydENvbnRhaW5lciIsInN0YXJ0T2Zmc2V0IiwicHJlZml4IiwiaW5zZXJ0ZWQiLCJjb25jYXQiLCJ0ZXh0Tm9kZSIsImNyZWF0ZVRleHROb2RlIiwiaW5zZXJ0Tm9kZSIsInByZXZTaWJsaW5nIiwicHJldmlvdXNTaWJsaW5nIiwiY2FyZXROb2RlIiwiY2FyZXRPZmZzZXQiLCJwcmV2VGV4dCIsImRhdGEiLCJyZW1vdmUiLCJzZXRTdGFydCIsImluc2VydFNsYXNoVHJpZ2dlciIsImluc2VydFNraWxsVHJpZ2dlciIsImhhc1Zpc3VhbE11bHRpbGluZSIsIl9lZGl0b3IkdGV4dENvbnRlbnQkdCIsIl9lZGl0b3IkdGV4dENvbnRlbnQiLCJzdHlsZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJlZGl0b3JIZWlnaHQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJoZWlnaHQiLCJnZXRFZGl0b3JDbGllbnRSZWN0IiwiX2VkaXRvclJlZiRjdXJyZW50JGdlIiwiX2VkaXRvclJlZiRjdXJyZW50IiwiaW5zZXJ0TWVudGlvbiIsIm1lbnRpb24iLCJjaGlwIiwiYXBwZW5kTWVudGlvbkF0RW5kIiwiaWQiLCJ0eXBlIiwibGFiZWwiLCJ0cmFpbGluZ1NwYWNlIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRTa2lsbE1lbnRpb24iLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiaGFuZGxlSW5wdXQiLCJoYW5kbGVQYXN0ZSIsImUiLCJmaWxlcyIsImNsaXBib2FyZERhdGEiLCJwcmV2ZW50RGVmYXVsdCIsImdldERhdGEiLCJyYW5nZUNvdW50IiwiZGVsZXRlRnJvbURvY3VtZW50IiwiY29sbGFwc2VUb0VuZCIsInBsYWNlaG9sZGVyVG9vbHRpcFRpdGxlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN0eWxlIiwiZGlzcGxheSIsIndpZHRoIiwibWluV2lkdGgiLCIkbWF4SGVpZ2h0IiwiY29udGVudEVkaXRhYmxlIiwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIiwicm9sZSIsIm9uUGFzdGUiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yL0NvbnRleHRNZW50aW9uRWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGlwYm9hcmRFdmVudCxcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VDb250ZXh0TWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgYnVpbGRDaGlwRWxlbWVudCB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcCdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uQ2hpcEdsb2JhbFN0eWxlcyB9IGZyb20gJy4uL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgYnVpbGRTbGFzaENoaXBFbGVtZW50LCBTbGFzaENvbW1hbmRDaGlwRGF0YSB9IGZyb20gJy4uL1NsYXNoQ29tbWFuZENoaXAnXG5pbXBvcnQgeyBmaWxlc0Zyb21EYXRhVHJhbnNmZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jaGF0SW5wdXRGaWxlcydcbmltcG9ydCB7XG4gIGlzRWRpdG9yVmlzdWFsbHlNdWx0aWxpbmUsXG4gIGlzUGxhY2Vob2xkZXJUcnVuY2F0ZWRJbkVkaXRvcixcbiAgcmVzb2x2ZVByZXZpb3VzQ2hhckJlZm9yZUNhcmV0LFxuICByZXNvbHZlVHJpZ2dlckluc2VydFByZWZpeCxcbiAgc2hvdWxkTWVyZ2VBdFNpZ25XaXRoUHJldmlvdXNTaWJsaW5nLFxuICBzaG91bGRFdmFsdWF0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbixcbiAgc2hvdWxkTm9ybWFsaXplRW1wdHlFZGl0b3JEb20sXG4gIHNob3VsZFNob3dQbGFjZWhvbGRlclRvb2x0aXAsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25FZGl0b3IuaGVscGVycydcbmltcG9ydCB7IFNDTUVFZGl0YWJsZSB9IGZyb20gJy4vQ29udGV4dE1lbnRpb25FZGl0b3Iuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSA9IHtcbiAgZm9jdXM6ICgpID0+IHZvaWRcbiAgY2xlYXI6ICgpID0+IHZvaWRcbiAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG4gIC8qKiBJbnNlcnRhIGBAYCBlbiBlbCBjYXJldCAoY29uIGVzcGFjaW8gcHJldmlvIHNpIGhhY2UgZmFsdGEpIHkgYWJyZSBlbCB0cmlnZ2VyIGRlIG1lbnRpb25zLiAqL1xuICBpbnNlcnRNZW50aW9uVHJpZ2dlcjogKCkgPT4gdm9pZFxuICAvKiogSW5zZXJ0YSBgL2AgZW4gZWwgY2FyZXQgKGNvbiBlc3BhY2lvIHByZXZpbyBzaSBoYWNlIGZhbHRhKSB5IGFicmUgZWwgdHJpZ2dlciBkZSBzbGFzaCBjb21tYW5kcy4gKi9cbiAgaW5zZXJ0U2xhc2hUcmlnZ2VyOiAoKSA9PiB2b2lkXG4gIC8qKiBJbnNlcnRhIGAjYCBlbiBlbCBjYXJldCAoY29uIGVzcGFjaW8gcHJldmlvIHNpIGhhY2UgZmFsdGEpIHkgYWJyZSBlbCB0cmlnZ2VyIGRlIHNraWxscy4gKi9cbiAgaW5zZXJ0U2tpbGxUcmlnZ2VyOiAoKSA9PiB2b2lkXG4gIGluc2VydE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBhcHBlbmRNZW50aW9uQXRFbmQ6IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBpbnNlcnRTbGFzaENvbW1hbmQ6IChjb21tYW5kOiBTbGFzaENvbW1hbmRDaGlwRGF0YSkgPT4gdm9pZFxuICAvKiogUmVlbXBsYXphIGVsIGAjcXVlcnlgIHBlbmRpZW50ZSBwb3IgZWwgY2hpcCBkZSBsYSBza2lsbCBlbGVnaWRhLiAqL1xuICBpbnNlcnRTa2lsbE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoOiAoYXRSdW5MZW5ndGg6IG51bWJlcikgPT4gdm9pZFxuICBzZXJpYWxpemU6ICgpID0+IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgICBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXVxuICAgIHNsYXNoQ29tbWFuZHM6IFNsYXNoQ29tbWFuZENoaXBEYXRhW11cbiAgfVxuICBoYXNWaXN1YWxNdWx0aWxpbmU6ICgpID0+IGJvb2xlYW5cbiAgLyoqIFJlY3QgZGVsIMOhcmVhIGVkaXRhYmxlICh2aWV3cG9ydCk7IGxvIHVzYSBlbCBwb3BvdmVyIGRlIEAgcGFyYSBhbGluZWFyIGFuY2hvIHkgZmFsbGJhY2sgdmVydGljYWwuICovXG4gIGdldEVkaXRvckNsaWVudFJlY3Q6ICgpID0+IERPTVJlY3QgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW50aW9uRWRpdG9yUHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqIEFsdG8gbcOheGltbyBkZWwgw6FyZWEgZWRpdGFibGUgKHB4KS4gU2UgYWp1c3RhIGN1YW5kbyBoYXkgY2hpcHMgZGUgY29udGV4dG8vYWRqdW50b3MuICovXG4gIG1heEhlaWdodD86IG51bWJlclxuICBvbklucHV0PzogKHN0YXRlOiB7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICBzbGFzaENvbW1hbmRzOiBTbGFzaENvbW1hbmRDaGlwRGF0YVtdXG4gICAgdHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfVxuICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIGhhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9XG4gIH0pID0+IHZvaWRcbiAgb25LZXlEb3duPzogKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkXG4gIG9uRm9jdXM/OiAoKSA9PiB2b2lkXG4gIG9uQmx1cj86ICgpID0+IHZvaWRcbiAgLyoqIENsaXBib2FyZCBmaWxlcyAoc2NyZWVuc2hvdHMsIGNvcGllZCBpbWFnZXMpLiBUZXh0IGlzIHN0aWxsIGluc2VydGVkIHdoZW4gcHJlc2VudC4gKi9cbiAgb25QYXN0ZUZpbGVzPzogKGZpbGVzOiBGaWxlW10pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uRWRpdG9yID0gZm9yd2FyZFJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSwgQ29udGV4dE1lbnRpb25FZGl0b3JQcm9wcz4oXG4gICh7IHBsYWNlaG9sZGVyLCBkaXNhYmxlZCwgY2xhc3NOYW1lLCBtYXhIZWlnaHQsIG9uSW5wdXQsIG9uS2V5RG93biwgb25Gb2N1cywgb25CbHVyLCBvblBhc3RlRmlsZXMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWRpdG9yUmVmLFxuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAsXG4gICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgdXBkYXRlU2xhc2hUcmlnZ2VyLFxuICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2xhc2hDaGlwLFxuICAgICAgdXBkYXRlSGFzaFRyaWdnZXIsXG4gICAgICByZXBsYWNlVHJpZ2dlcldpdGhTa2lsbENoaXAsXG4gICAgICBzZXJpYWxpemUsXG4gICAgICBjbGVhcjogY2xlYXJFZGl0b3JEb20sXG4gICAgICBmb2N1cyxcbiAgICB9ID0gdXNlQ29udGV4dE1lbnRpb25zKClcbiAgICBjb25zdCBza2lwTmV4dElucHV0ID0gdXNlUmVmKGZhbHNlKVxuICAgIGNvbnN0IFtwbGFjZWhvbGRlclRydW5jYXRlZCwgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgY29uc3QgW2xvZ2ljYWxFbXB0eSwgc2V0TG9naWNhbEVtcHR5XSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgICBjb25zdCBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUgPSB1c2VDYWxsYmFjaygoaXNFbXB0eTogYm9vbGVhbikgPT4ge1xuICAgICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1lbXB0eScsIFN0cmluZyhpc0VtcHR5KSlcbiAgICAgIH1cbiAgICB9LCBbXSlcblxuICAgIGNvbnN0IG5vcm1hbGl6ZUVtcHR5RWRpdG9yRG9tID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWRpdG9yKSByZXR1cm5cblxuICAgICAgLy8gTGltcGlhciBjdWFscXVpZXIgcmVzaWR1byAoYnIsIGVzcGFjaW9zKSBxdWUgZGVqZSBlbCBicm93c2VyIGFsIHZhY2lhciBlbCBjb250ZW50ZWRpdGFibGUuXG4gICAgICAvLyBTaW4gZXN0bywgdW4gZXNwYWNpbyBzdWVsdG8gYWN0aXZhIGRhdGEtZW1wdHk9XCJ0cnVlXCIgKyA6OmJlZm9yZSBwbGFjZWhvbGRlciBlbiBsw61uZWEgMVxuICAgICAgLy8geSBkZXNwbGF6YSBlbCBjdXJzb3IgYSBsYSBsw61uZWEgMi5cbiAgICAgIGlmIChzaG91bGROb3JtYWxpemVFbXB0eUVkaXRvckRvbShlZGl0b3IudGV4dENvbnRlbnQpKSB7XG4gICAgICAgIGVkaXRvci5pbm5lckhUTUwgPSAnJ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uKSByZXR1cm5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICB9LCBbZWRpdG9yUmVmXSlcblxuICAgIGNvbnN0IHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IHBoID0gcGxhY2Vob2xkZXI/LnRyaW0oKSA/PyAnJ1xuXG4gICAgICBpZiAoIWVsIHx8ICFzaG91bGRFdmFsdWF0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbihwbGFjZWhvbGRlciwgc2VyaWFsaXplKCkudGV4dCkpIHtcbiAgICAgICAgc2V0UGxhY2Vob2xkZXJUcnVuY2F0ZWQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQbGFjZWhvbGRlclRydW5jYXRlZChpc1BsYWNlaG9sZGVyVHJ1bmNhdGVkSW5FZGl0b3IoZWwsIHBoKSlcbiAgICB9LCBbcGxhY2Vob2xkZXIsIHNlcmlhbGl6ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgIGNvbnN0IGVsID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgICB9KVxuICAgICAgcm8ub2JzZXJ2ZShlbClcbiAgICAgIHJldHVybiAoKSA9PiByby5kaXNjb25uZWN0KClcbiAgICB9LCBbcGxhY2Vob2xkZXIsIGRpc2FibGVkLCByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb25dKVxuXG4gICAgY29uc3QgZW1pdElucHV0U3RhdGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnID0gdXBkYXRlVHJpZ2dlcigpXG4gICAgICBjb25zdCBzbGFzaFRyaWcgPSB1cGRhdGVTbGFzaFRyaWdnZXIoKVxuICAgICAgY29uc3QgaGFzaFRyaWcgPSB1cGRhdGVIYXNoVHJpZ2dlcigpXG4gICAgICBsZXQgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgaWYgKGlzRW1wdHkpIHtcbiAgICAgICAgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20oKVxuICAgICAgICBzdGF0ZSA9IHsgdGV4dDogJycsIG1lbnRpb25zOiBbXSwgc2xhc2hDb21tYW5kczogW10gfVxuICAgICAgfVxuICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogdHJpZy5hY3RpdmUsIHF1ZXJ5OiB0cmlnLnF1ZXJ5LCBhdFJ1bkxlbmd0aDogdHJpZy5hdFJ1bkxlbmd0aCB9LFxuICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBzbGFzaFRyaWcuYWN0aXZlLCBxdWVyeTogc2xhc2hUcmlnLnF1ZXJ5IH0sXG4gICAgICAgIGhhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogaGFzaFRyaWcuYWN0aXZlLCBxdWVyeTogaGFzaFRyaWcucXVlcnkgfSxcbiAgICAgIH0pXG4gICAgICBxdWV1ZU1pY3JvdGFzayhyZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24pXG4gICAgfSwgW1xuICAgICAgdXBkYXRlVHJpZ2dlcixcbiAgICAgIHVwZGF0ZVNsYXNoVHJpZ2dlcixcbiAgICAgIHVwZGF0ZUhhc2hUcmlnZ2VyLFxuICAgICAgc2VyaWFsaXplLFxuICAgICAgbm9ybWFsaXplRW1wdHlFZGl0b3JEb20sXG4gICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUsXG4gICAgICBvbklucHV0LFxuICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uLFxuICAgIF0pXG5cbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgICAgcmVmLFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgZm9jdXMsXG4gICAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgICAgY2xlYXJFZGl0b3JEb20oKVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZSh0cnVlKVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eSh0cnVlKVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKHJlY29tcHV0ZVBsYWNlaG9sZGVyVHJ1bmNhdGlvbilcbiAgICAgICAgfSxcbiAgICAgICAgc2V0UGxhaW5UZXh0OiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG4gICAgICAgICAgY29uc3QgcGxhaW4gPSB0ZXh0ID8/ICcnXG4gICAgICAgICAgZWRpdG9yLnRleHRDb250ZW50ID0gcGxhaW5cbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgZWRpdG9yLmlubmVySFRNTCA9ICcnXG4gICAgICAgICAgfVxuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgaGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIGVkaXRvci5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVkaXRvcilcbiAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG4gICAgICAgICAgfVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydE1lbnRpb25UcmlnZ2VyOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvciB8fCBkaXNhYmxlZCkgcmV0dXJuXG5cbiAgICAgICAgICBmb2N1cygpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuXG5cbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbi5hbmNob3JOb2RlIHx8ICFlZGl0b3IuY29udGFpbnMoc2VsZWN0aW9uLmFuY2hvck5vZGUpKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcbiAgICAgICAgICAgIGVuZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlZGl0b3IpXG4gICAgICAgICAgICBlbmRSYW5nZS5jb2xsYXBzZShmYWxzZSlcbiAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGVuZFJhbmdlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMClcbiAgICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKVxuXG4gICAgICAgICAgY29uc3QgeyBzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQgfSA9IHJhbmdlXG4gICAgICAgICAgY29uc3QgcHJlZml4ID0gcmVzb2x2ZVRyaWdnZXJJbnNlcnRQcmVmaXgocmVzb2x2ZVByZXZpb3VzQ2hhckJlZm9yZUNhcmV0KHN0YXJ0Q29udGFpbmVyLCBzdGFydE9mZnNldCkpXG5cbiAgICAgICAgICBjb25zdCBpbnNlcnRlZCA9IGAke3ByZWZpeH1AYFxuICAgICAgICAgIGNvbnN0IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaW5zZXJ0ZWQpXG4gICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZSh0ZXh0Tm9kZSlcblxuICAgICAgICAgIC8vIFNpIGVsIGBAYCBxdWVkw7MgZW4gdW4gbm9kbyBudWV2bywgdW5pciBjb24gZWwgdGV4dCBub2RlIHByZXZpbyBxdWUgdGVybWluYSBlbiBgQGBcbiAgICAgICAgICAvLyBwYXJhIHF1ZSBkZXRlY3RNZW50aW9uVHJpZ2dlciB2ZWEgZWwgcnVuIGNvbXBsZXRvIChAQCwgQEBALCDigKYpLlxuICAgICAgICAgIGNvbnN0IHByZXZTaWJsaW5nID0gdGV4dE5vZGUucHJldmlvdXNTaWJsaW5nXG4gICAgICAgICAgbGV0IGNhcmV0Tm9kZSA9IHRleHROb2RlXG4gICAgICAgICAgbGV0IGNhcmV0T2Zmc2V0ID0gaW5zZXJ0ZWQubGVuZ3RoXG4gICAgICAgICAgaWYgKHNob3VsZE1lcmdlQXRTaWduV2l0aFByZXZpb3VzU2libGluZyhwcmVmaXgsIHByZXZTaWJsaW5nKSkge1xuICAgICAgICAgICAgY29uc3QgcHJldlRleHQgPSBwcmV2U2libGluZyBhcyBUZXh0XG4gICAgICAgICAgICBjYXJldE9mZnNldCA9IHByZXZUZXh0LmRhdGEubGVuZ3RoICsgaW5zZXJ0ZWQubGVuZ3RoXG4gICAgICAgICAgICBwcmV2VGV4dC5kYXRhICs9IGluc2VydGVkXG4gICAgICAgICAgICB0ZXh0Tm9kZS5yZW1vdmUoKVxuICAgICAgICAgICAgY2FyZXROb2RlID0gcHJldlRleHRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFbCBjYXJldCBkZWJlIHF1ZWRhciBERU5UUk8gZGVsIHRleHQgbm9kZSAoZGVzcHXDqXMgZGUgYEBgKS5cbiAgICAgICAgICAvLyBgc2V0U3RhcnRBZnRlcmAgbG8gZGVqYSBlbiBlbCBwYWRyZSB5IGRldGVjdE1lbnRpb25UcmlnZ2VyIG5vIGFjdGl2YSBlbCBwb3BvdmVyLlxuICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KGNhcmV0Tm9kZSwgY2FyZXRPZmZzZXQpXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG5cbiAgICAgICAgICBlbWl0SW5wdXRTdGF0ZSgpXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNsYXNoVHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IgfHwgZGlzYWJsZWQpIHJldHVyblxuXG4gICAgICAgICAgZm9jdXMoKVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHJldHVyblxuXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24uYW5jaG9yTm9kZSB8fCAhZWRpdG9yLmNvbnRhaW5zKHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZW5kUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICBlbmRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgZW5kUmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShlbmRSYW5nZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcblxuICAgICAgICAgIGNvbnN0IHsgc3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0IH0gPSByYW5nZVxuICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4KHJlc29sdmVQcmV2aW91c0NoYXJCZWZvcmVDYXJldChzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQpKVxuXG4gICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBgJHtwcmVmaXh9L2BcbiAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGluc2VydGVkKVxuICAgICAgICAgIHJhbmdlLmluc2VydE5vZGUodGV4dE5vZGUpXG5cbiAgICAgICAgICAvLyBDYXJldCBkZW50cm8gZGVsIHRleHQgbm9kZSBwYXJhIHF1ZSBkZXRlY3RTbGFzaFRyaWdnZXIgYWN0aXZlIGVsIGRyb3Bkb3duLlxuICAgICAgICAgIHJhbmdlLnNldFN0YXJ0KHRleHROb2RlLCBpbnNlcnRlZC5sZW5ndGgpXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpXG5cbiAgICAgICAgICBlbWl0SW5wdXRTdGF0ZSgpXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNraWxsVHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IgfHwgZGlzYWJsZWQpIHJldHVyblxuXG4gICAgICAgICAgZm9jdXMoKVxuXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHJldHVyblxuXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb24uYW5jaG9yTm9kZSB8fCAhZWRpdG9yLmNvbnRhaW5zKHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZW5kUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpXG4gICAgICAgICAgICBlbmRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWRpdG9yKVxuICAgICAgICAgICAgZW5kUmFuZ2UuY29sbGFwc2UoZmFsc2UpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShlbmRSYW5nZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApXG4gICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcblxuICAgICAgICAgIGNvbnN0IHsgc3RhcnRDb250YWluZXIsIHN0YXJ0T2Zmc2V0IH0gPSByYW5nZVxuICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHJlc29sdmVUcmlnZ2VySW5zZXJ0UHJlZml4KHJlc29sdmVQcmV2aW91c0NoYXJCZWZvcmVDYXJldChzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQpKVxuXG4gICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBgJHtwcmVmaXh9I2BcbiAgICAgICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGluc2VydGVkKVxuICAgICAgICAgIHJhbmdlLmluc2VydE5vZGUodGV4dE5vZGUpXG5cbiAgICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0Tm9kZSwgaW5zZXJ0ZWQubGVuZ3RoKVxuICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKVxuXG4gICAgICAgICAgZW1pdElucHV0U3RhdGUoKVxuICAgICAgICB9LFxuICAgICAgICBzZXJpYWxpemUsXG4gICAgICAgIHN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgsXG4gICAgICAgIGhhc1Zpc3VhbE11bHRpbGluZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRleHQgPSBlZGl0b3IudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJ1xuICAgICAgICAgIGlmICghdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWRpdG9yKVxuICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlcy5saW5lSGVpZ2h0KSB8fCAyMlxuICAgICAgICAgIGNvbnN0IGVkaXRvckhlaWdodCA9IGVkaXRvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgICByZXR1cm4gaXNFZGl0b3JWaXN1YWxseU11bHRpbGluZShlZGl0b3JIZWlnaHQsIGxpbmVIZWlnaHQpXG4gICAgICAgIH0sXG4gICAgICAgIGdldEVkaXRvckNsaWVudFJlY3Q6ICgpID0+IGVkaXRvclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA/PyBudWxsLFxuICAgICAgICBpbnNlcnRNZW50aW9uOiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRDaGlwRWxlbWVudChtZW50aW9uKVxuICAgICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aENoaXAoY2hpcCwgbWVudGlvbilcbiAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSB0cnVlXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSBzZXJpYWxpemUoKVxuICAgICAgICAgIG9uSW5wdXQ/Lih7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnLCBhdFJ1bkxlbmd0aDogMCB9LFxuICAgICAgICAgICAgc2xhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgICAgaGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gc3RhdGUudGV4dC50cmltKCkgPT09ICcnXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGlzRW1wdHkpXG4gICAgICAgICAgc2V0TG9naWNhbEVtcHR5KGlzRW1wdHkpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2kgZWwgbmF2ZWdhZG9yIG5vIGRpc3BhcmEgYGlucHV0YCB0cmFzIGVsIGNoaXAsIGVsIGZsYWcgcXVlZGFiYSBlbiB0cnVlIHkgZWwgcHLDs3hpbW8gQCBkZWwgdXN1YXJpbyBzZSBpZ25vcmFiYS5cbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGFwcGVuZE1lbnRpb25BdEVuZDogKG1lbnRpb246IENvbnRleHRNZW50aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVkaXRvcikgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBjaGlwID0gYnVpbGRDaGlwRWxlbWVudChtZW50aW9uKVxuICAgICAgICAgIGNoaXAuc2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24nLCAndHJ1ZScpXG4gICAgICAgICAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi1pZCcsIFN0cmluZyhtZW50aW9uLmlkKSlcbiAgICAgICAgICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLXR5cGUnLCBtZW50aW9uLnR5cGUpXG4gICAgICAgICAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi1sYWJlbCcsIG1lbnRpb24ubGFiZWwpXG4gICAgICAgICAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdmYWxzZScpXG5cbiAgICAgICAgICBjb25zdCB0cmFpbGluZ1NwYWNlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1xcdTAwYTAnKVxuICAgICAgICAgIGVkaXRvci5hcHBlbmRDaGlsZChjaGlwKVxuICAgICAgICAgIGVkaXRvci5hcHBlbmRDaGlsZCh0cmFpbGluZ1NwYWNlKVxuXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICAgIGhhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgc3luY0VkaXRvckVtcHR5QXR0cmlidXRlKGZhbHNlKVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShmYWxzZSlcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgICAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKVxuICAgICAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodHJhaWxpbmdTcGFjZSwgMSlcbiAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpXG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBpbnNlcnRTa2lsbE1lbnRpb246IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaXAgPSBidWlsZENoaXBFbGVtZW50KG1lbnRpb24pXG4gICAgICAgICAgcmVwbGFjZVRyaWdnZXJXaXRoU2tpbGxDaGlwKGNoaXAsIG1lbnRpb24pXG4gICAgICAgICAgc2tpcE5leHRJbnB1dC5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gc2VyaWFsaXplKClcbiAgICAgICAgICBvbklucHV0Py4oe1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJywgYXRSdW5MZW5ndGg6IDAgfSxcbiAgICAgICAgICAgIHNsYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICAgIGhhc2hUcmlnZ2VyOiB7IGFjdGl2ZTogZmFsc2UsIHF1ZXJ5OiAnJyB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHN0YXRlLnRleHQudHJpbSgpID09PSAnJ1xuICAgICAgICAgIHN5bmNFZGl0b3JFbXB0eUF0dHJpYnV0ZShpc0VtcHR5KVxuICAgICAgICAgIHNldExvZ2ljYWxFbXB0eShpc0VtcHR5KVxuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IGZhbHNlXG4gICAgICAgICAgICByZWNvbXB1dGVQbGFjZWhvbGRlclRydW5jYXRpb24oKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGluc2VydFNsYXNoQ29tbWFuZDogKGNvbW1hbmQ6IFNsYXNoQ29tbWFuZENoaXBEYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpcCA9IGJ1aWxkU2xhc2hDaGlwRWxlbWVudChjb21tYW5kKVxuICAgICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNsYXNoQ2hpcChjaGlwLCBjb21tYW5kKVxuICAgICAgICAgIHNraXBOZXh0SW5wdXQuY3VycmVudCA9IHRydWVcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHNlcmlhbGl6ZSgpXG4gICAgICAgICAgb25JbnB1dD8uKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgdHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycsIGF0UnVuTGVuZ3RoOiAwIH0sXG4gICAgICAgICAgICBzbGFzaFRyaWdnZXI6IHsgYWN0aXZlOiBmYWxzZSwgcXVlcnk6ICcnIH0sXG4gICAgICAgICAgICBoYXNoVHJpZ2dlcjogeyBhY3RpdmU6IGZhbHNlLCBxdWVyeTogJycgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSBzdGF0ZS50ZXh0LnRyaW0oKSA9PT0gJydcbiAgICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUoaXNFbXB0eSlcbiAgICAgICAgICBzZXRMb2dpY2FsRW1wdHkoaXNFbXB0eSlcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uKClcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIGZvY3VzLFxuICAgICAgICBjbGVhckVkaXRvckRvbSxcbiAgICAgICAgc2VyaWFsaXplLFxuICAgICAgICBzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhDaGlwLFxuICAgICAgICByZXBsYWNlVHJpZ2dlcldpdGhTbGFzaENoaXAsXG4gICAgICAgIHJlcGxhY2VUcmlnZ2VyV2l0aFNraWxsQ2hpcCxcbiAgICAgICAgb25JbnB1dCxcbiAgICAgICAgcmVjb21wdXRlUGxhY2Vob2xkZXJUcnVuY2F0aW9uLFxuICAgICAgICBzeW5jRWRpdG9yRW1wdHlBdHRyaWJ1dGUsXG4gICAgICAgIGVtaXRJbnB1dFN0YXRlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgZWRpdG9yUmVmLFxuICAgICAgXVxuICAgIClcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0ID0gKCkgPT4ge1xuICAgICAgaWYgKHNraXBOZXh0SW5wdXQuY3VycmVudCkge1xuICAgICAgICBza2lwTmV4dElucHV0LmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGVtaXRJbnB1dFN0YXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVQYXN0ZSA9IChlOiBDbGlwYm9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGNvbnN0IGZpbGVzID0gZmlsZXNGcm9tRGF0YVRyYW5zZmVyKGUuY2xpcGJvYXJkRGF0YSlcbiAgICAgIGlmIChmaWxlcy5sZW5ndGggJiYgb25QYXN0ZUZpbGVzKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBvblBhc3RlRmlsZXMoZmlsZXMpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRleHQgPSBlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpXG4gICAgICBpZiAoZmlsZXMubGVuZ3RoICYmIG9uUGFzdGVGaWxlcyAmJiAhdGV4dCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSByZXR1cm5cbiAgICAgIHNlbGVjdGlvbi5kZWxldGVGcm9tRG9jdW1lbnQoKVxuICAgICAgc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSlcbiAgICAgIHNlbGVjdGlvbi5jb2xsYXBzZVRvRW5kKClcbiAgICAgIGhhbmRsZUlucHV0KClcbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZWhvbGRlclRvb2x0aXBUaXRsZSA9IHNob3VsZFNob3dQbGFjZWhvbGRlclRvb2x0aXAobG9naWNhbEVtcHR5LCBwbGFjZWhvbGRlclRydW5jYXRlZCwgcGxhY2Vob2xkZXIpXG4gICAgICA/IChwbGFjZWhvbGRlcj8udHJpbSgpID8/ICcnKVxuICAgICAgOiAnJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxDb250ZXh0TWVudGlvbkNoaXBHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3BsYWNlaG9sZGVyVG9vbHRpcFRpdGxlfT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCB3aWR0aDogJzEwMCUnLCBtaW5XaWR0aDogMCB9fT5cbiAgICAgICAgICAgIDxTQ01FRWRpdGFibGVcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAkbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHN0eWxlPXttYXhIZWlnaHQgIT0gbnVsbCA/IHsgbWF4SGVpZ2h0IH0gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBkYXRhLWVtcHR5PXtTdHJpbmcobG9naWNhbEVtcHR5KX1cbiAgICAgICAgICAgICAgY29udGVudEVkaXRhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e1N0cmluZyghIWRpc2FibGVkKX1cbiAgICAgICAgICAgICAgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXG4gICAgICAgICAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlSW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICBvblBhc3RlPXtoYW5kbGVQYXN0ZX1cbiAgICAgICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC8+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxrQkFBa0IsUUFBUSxt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
|
|
@@ -80,8 +80,6 @@ export var FrequentlyUsedActions = function FrequentlyUsedActions(_ref2) {
|
|
|
80
80
|
type_quick_action: resolveQuickActionType(action),
|
|
81
81
|
origin_quick_action: resolveQuickActionOrigin(section, variant)
|
|
82
82
|
});
|
|
83
|
-
|
|
84
|
-
// Classic FUA: chip title + fuaId only. Aggregator tools run on BE via the FUA prompt.
|
|
85
83
|
onStartChat(action.title, null, undefined, undefined, null, action.id);
|
|
86
84
|
};
|
|
87
85
|
if (!loading && !error && actions.length === 0) {
|
|
@@ -121,4 +119,4 @@ export var FrequentlyUsedActions = function FrequentlyUsedActions(_ref2) {
|
|
|
121
119
|
})]
|
|
122
120
|
});
|
|
123
121
|
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJUb29sdGlwIiwidXNlVCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIkVWRU5UUyIsInVzZUV2ZW50IiwicmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luIiwicmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSIsIkZhcXNJY29uIiwiZ2V0QWN0aW9uSWNvbiIsIkZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIiwiRXJyb3JTZWFyY2hGYXFzIiwiRmFkZSIsIlNDRlVBQ29udGFpbmVyIiwiU0NGVUFUaXRsZSIsIlNDRlVBTGlzdENvbnRhaW5lciIsIlNDRlVBTGlzdCIsIlNDRlVBSXRlbSIsIlNDRlVBSXRlbUljb24iLCJTQ0ZVQUl0ZW1Db250ZW50IiwiU0NGVUFJdGVtVGl0bGUiLCJTQ0ZVQUl0ZW1TdWJ0aXRsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGVUFMaXN0SXRlbSIsIl9yZWYiLCJhY3Rpb24iLCJpc1Njcm9sbGluZyIsIm9uQ2xpY2siLCJpbmRleCIsIl9yZWYkaGlnaGxpZ2h0ZWQiLCJoaWdobGlnaHRlZCIsInRpdGxlUmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwidGl0bGUiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Rvb2x0aXAiLCJ0aXRsZVdpdGhQcmVmaXgiLCJjb25jYXQiLCJDdXN0b21JY29uIiwiaWNvbiIsIiRpbmRleCIsIiRoaWdobGlnaHRlZCIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJ1c2VHcmFkaWVudCIsInJlZiIsInN1YnRpdGxlIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwiX3JlZjIiLCJvblN0YXJ0Q2hhdCIsImFnZW50SWQiLCJfcmVmMiRpc1Njcm9sbGluZyIsImFjdGlvbnNQcm9wIiwiYWN0aW9ucyIsImxvYWRpbmdQcm9wIiwibG9hZGluZyIsImVycm9yUHJvcCIsImVycm9yIiwiX3JlZjIkdmFyaWFudCIsInZhcmlhbnQiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlY3Rpb24iLCJldmVudEFtcGxpdHVkZSIsImZldGNoZWQiLCJ1bmRlZmluZWQiLCJoYW5kbGVBY3Rpb25DbGljayIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwidHlwZV9xdWlja19hY3Rpb24iLCJvcmlnaW5fcXVpY2tfYWN0aW9uIiwiaWQiLCJsZW5ndGgiLCJnZXRBY3Rpb25zU3RhdHVzIiwiaXNQbGFubmVyU2VjdGlvbiIsInNob3dUaXRsZSIsIiRjb21wYWN0IiwibWVzc2FnZSIsIm1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy9GcmVxdWVudGx5VXNlZEFjdGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyByZXNvbHZlUXVpY2tBY3Rpb25PcmlnaW4sIHJlc29sdmVRdWlja0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ob3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBGYXFzSWNvbiB9IGZyb20gJy4uL2ljb25zL0ZhcXNJY29uJ1xuaW1wb3J0IHsgZ2V0QWN0aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGlvbkljb25NYXAnXG5pbXBvcnQgeyBGcmVxdWVudGx5VXNlZEFjdGlvbnNTa2VsZXRvbiB9IGZyb20gJy4vRnJlcXVlbnRseVVzZWRBY3Rpb25zLnNrZWxldG9uJ1xuaW1wb3J0IHsgRXJyb3JTZWFyY2hGYXFzIH0gZnJvbSAnLi4vRXJyb3JTZWFyY2hGYXFzJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4uL0ZhZGUnXG5pbXBvcnQge1xuICBTQ0ZVQUNvbnRhaW5lcixcbiAgU0NGVUFUaXRsZSxcbiAgU0NGVUFMaXN0Q29udGFpbmVyLFxuICBTQ0ZVQUxpc3QsXG4gIFNDRlVBSXRlbSxcbiAgU0NGVUFJdGVtSWNvbixcbiAgU0NGVUFJdGVtQ29udGVudCxcbiAgU0NGVUFJdGVtVGl0bGUsXG4gIFNDRlVBSXRlbVN1YnRpdGxlLFxufSBmcm9tICcuL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy5zdHlsZXMnXG5cbmZ1bmN0aW9uIEZVQUxpc3RJdGVtKHtcbiAgYWN0aW9uLFxuICBpc1Njcm9sbGluZyxcbiAgb25DbGljayxcbiAgaW5kZXgsXG4gIGhpZ2hsaWdodGVkID0gZmFsc2UsXG59OiB7XG4gIGFjdGlvbjogQWN0aW9uXG4gIGlzU2Nyb2xsaW5nOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgaW5kZXg6IG51bWJlclxuICBoaWdobGlnaHRlZD86IGJvb2xlYW5cbn0pIHtcbiAgY29uc3QgdGl0bGVSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VGl0bGVUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0aXRsZVJlZiwgW2FjdGlvbi50aXRsZV0pXG4gIGNvbnN0IHRpdGxlV2l0aFByZWZpeCA9IGAvJHthY3Rpb24udGl0bGV9YFxuICBjb25zdCBDdXN0b21JY29uID0gZ2V0QWN0aW9uSWNvbihhY3Rpb24uaWNvbilcblxuICByZXR1cm4gKFxuICAgIDxTQ0ZVQUl0ZW0gJGluZGV4PXtpbmRleH0gJGhpZ2hsaWdodGVkPXtoaWdobGlnaHRlZH0gb25DbGljaz17b25DbGlja30+XG4gICAgICA8U0NGVUFJdGVtSWNvbj5cbiAgICAgICAge0N1c3RvbUljb24gPyA8Q3VzdG9tSWNvbiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+IDogPEZhcXNJY29uIHVzZUdyYWRpZW50IGhlaWdodD17MjB9IHdpZHRoPXsyMH0gLz59XG4gICAgICA8L1NDRlVBSXRlbUljb24+XG4gICAgICA8U0NGVUFJdGVtQ29udGVudD5cbiAgICAgICAgPFNDRlVBSXRlbVRpdGxlIHJlZj17dGl0bGVSZWZ9PlxuICAgICAgICAgIHtpc1Njcm9sbGluZyA/IChcbiAgICAgICAgICAgIHRpdGxlV2l0aFByZWZpeFxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1RpdGxlVG9vbHRpcCA/IHRpdGxlV2l0aFByZWZpeCA6ICcnfT5cbiAgICAgICAgICAgICAgPHNwYW4+e3RpdGxlV2l0aFByZWZpeH08L3NwYW4+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0ZVQUl0ZW1UaXRsZT5cbiAgICAgICAge2FjdGlvbi5zdWJ0aXRsZSA/IDxTQ0ZVQUl0ZW1TdWJ0aXRsZT57YWN0aW9uLnN1YnRpdGxlfTwvU0NGVUFJdGVtU3VidGl0bGU+IDogbnVsbH1cbiAgICAgIDwvU0NGVUFJdGVtQ29udGVudD5cbiAgICA8L1NDRlVBSXRlbT5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGFydENoYXRGcm9tRnVhID0gKFxuICBtZXNzYWdlOiBzdHJpbmcsXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gIGZhcUlkPzogc3RyaW5nLFxuICBhZ2VudFN1Z2dlc3Rpb25JZD86IHN0cmluZyxcbiAgbWVudGlvbnM/OiBudWxsLFxuICBmdWFJZD86IHN0cmluZyxcbiAgc2NJZD86IHN0cmluZyxcbiAgY29udGV4dERhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKSA9PiB2b2lkXG5cbnR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiBTdGFydENoYXRGcm9tRnVhXG4gIGFnZW50SWQ/OiBzdHJpbmdcbiAgaXNTY3JvbGxpbmc/OiBib29sZWFuXG4gIGFjdGlvbnM/OiBBY3Rpb25bXVxuICBsb2FkaW5nPzogYm9vbGVhblxuICBlcnJvcj86IHN0cmluZyB8IG51bGxcbiAgdmFyaWFudD86ICdkZWZhdWx0JyB8ICdwbGFubmVyJ1xufVxuXG5leHBvcnQgY29uc3QgRnJlcXVlbnRseVVzZWRBY3Rpb25zID0gKHtcbiAgb25TdGFydENoYXQsXG4gIGFnZW50SWQsXG4gIGlzU2Nyb2xsaW5nID0gZmFsc2UsXG4gIGFjdGlvbnM6IGFjdGlvbnNQcm9wLFxuICBsb2FkaW5nOiBsb2FkaW5nUHJvcCxcbiAgZXJyb3I6IGVycm9yUHJvcCxcbiAgdmFyaWFudCA9ICdkZWZhdWx0Jyxcbn06IEZyZXF1ZW50bHlVc2VkQWN0aW9uc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IHsgc2VjdGlvbiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBmZXRjaGVkID0gdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zKGFjdGlvbnNQcm9wID09IG51bGwgPyBhZ2VudElkIDogdW5kZWZpbmVkLCBzZWN0aW9uKVxuICBjb25zdCBhY3Rpb25zID0gYWN0aW9uc1Byb3AgPz8gZmV0Y2hlZC5hY3Rpb25zXG4gIGNvbnN0IGxvYWRpbmcgPSBsb2FkaW5nUHJvcCA/PyBmZXRjaGVkLmxvYWRpbmdcbiAgY29uc3QgZXJyb3IgPSBlcnJvclByb3AgPz8gZmV0Y2hlZC5lcnJvclxuXG4gIGNvbnN0IGhhbmRsZUFjdGlvbkNsaWNrID0gKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICB0eXBlX3F1aWNrX2FjdGlvbjogcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZShhY3Rpb24pLFxuICAgICAgb3JpZ2luX3F1aWNrX2FjdGlvbjogcmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luKHNlY3Rpb24sIHZhcmlhbnQpLFxuICAgIH0pXG5cbiAgICAvLyBDbGFzc2ljIEZVQTogY2hpcCB0aXRsZSArIGZ1YUlkIG9ubHkuIEFnZ3JlZ2F0b3IgdG9vbHMgcnVuIG9uIEJFIHZpYSB0aGUgRlVBIHByb21wdC5cbiAgICBvblN0YXJ0Q2hhdChhY3Rpb24udGl0bGUsIG51bGwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBudWxsLCBhY3Rpb24uaWQpXG4gIH1cblxuICBpZiAoIWxvYWRpbmcgJiYgIWVycm9yICYmIGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGdldEFjdGlvbnNTdGF0dXMgPSAoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmcpIHJldHVybiAnbG9hZGluZydcbiAgICBpZiAoZXJyb3IpIHJldHVybiAnZXJyb3InXG4gICAgcmV0dXJuICdsaXN0J1xuICB9XG5cbiAgY29uc3QgaXNQbGFubmVyU2VjdGlvbiA9IHNlY3Rpb24gPT09ICdwbGFubmVyJyB8fCB2YXJpYW50ID09PSAncGxhbm5lcidcbiAgY29uc3Qgc2hvd1RpdGxlID0gIWlzUGxhbm5lclNlY3Rpb24gJiYgIWxvYWRpbmcgJiYgIWVycm9yICYmIGFjdGlvbnMubGVuZ3RoID4gMFxuXG4gIHJldHVybiAoXG4gICAgPFNDRlVBQ29udGFpbmVyICRjb21wYWN0PXshc2hvd1RpdGxlfT5cbiAgICAgIHtzaG93VGl0bGUgJiYgKFxuICAgICAgICA8U0NGVUFUaXRsZT5cbiAgICAgICAgICA8c3Bhbj57dCgnaG9tZU1lbnUuZnVhLnRpdGxlJyl9PC9zcGFuPlxuICAgICAgICA8L1NDRlVBVGl0bGU+XG4gICAgICApfVxuICAgICAgPFNDRlVBTGlzdENvbnRhaW5lcj5cbiAgICAgICAgPEZhZGUga2V5PXtnZXRBY3Rpb25zU3RhdHVzKCl9PlxuICAgICAgICAgIHtsb2FkaW5nICYmICFlcnJvciAmJiA8RnJlcXVlbnRseVVzZWRBY3Rpb25zU2tlbGV0b24gLz59XG4gICAgICAgICAge2Vycm9yICYmIDxFcnJvclNlYXJjaEZhcXMgbWVzc2FnZT17dCgnaG9tZU1lbnUuZnVhLmVycm9yJyl9IC8+fVxuICAgICAgICAgIHshbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxTQ0ZVQUxpc3Q+XG4gICAgICAgICAgICAgIHthY3Rpb25zLm1hcCgoYWN0aW9uLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxGVUFMaXN0SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXthY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkPXtpc1BsYW5uZXJTZWN0aW9uICYmIGluZGV4ID09PSAwfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NGVUFMaXN0PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRmFkZT5cbiAgICAgIDwvU0NGVUFMaXN0Q29udGFpbmVyPlxuICAgIDwvU0NGVUFDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxRQUFRLE9BQU87QUFDOUIsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGlCQUFpQixRQUFRLDBCQUEwQjtBQUU1RCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0Msd0JBQXdCLFFBQVEseUNBQXlDO0FBQ2xGLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyx3QkFBd0IsRUFBRUMsc0JBQXNCLFFBQVEsNENBQTRDO0FBRTdHLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7QUFDNUMsU0FBU0MsYUFBYSxRQUFRLDhCQUE4QjtBQUM1RCxTQUFTQyw2QkFBNkIsUUFBUSxrQ0FBa0M7QUFDaEYsU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUM5QixTQUNFQyxjQUFjLEVBQ2RDLFVBQVUsRUFDVkMsa0JBQWtCLEVBQ2xCQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsYUFBYSxFQUNiQyxnQkFBZ0IsRUFDaEJDLGNBQWMsRUFDZEMsaUJBQWlCLFFBQ1osZ0NBQWdDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJ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
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJUb29sdGlwIiwidXNlVCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIkVWRU5UUyIsInVzZUV2ZW50IiwicmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luIiwicmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSIsIkZhcXNJY29uIiwiZ2V0QWN0aW9uSWNvbiIsIkZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIiwiRXJyb3JTZWFyY2hGYXFzIiwiRmFkZSIsIlNDRlVBQ29udGFpbmVyIiwiU0NGVUFUaXRsZSIsIlNDRlVBTGlzdENvbnRhaW5lciIsIlNDRlVBTGlzdCIsIlNDRlVBSXRlbSIsIlNDRlVBSXRlbUljb24iLCJTQ0ZVQUl0ZW1Db250ZW50IiwiU0NGVUFJdGVtVGl0bGUiLCJTQ0ZVQUl0ZW1TdWJ0aXRsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGVUFMaXN0SXRlbSIsIl9yZWYiLCJhY3Rpb24iLCJpc1Njcm9sbGluZyIsIm9uQ2xpY2siLCJpbmRleCIsIl9yZWYkaGlnaGxpZ2h0ZWQiLCJoaWdobGlnaHRlZCIsInRpdGxlUmVmIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwidGl0bGUiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Rvb2x0aXAiLCJ0aXRsZVdpdGhQcmVmaXgiLCJjb25jYXQiLCJDdXN0b21JY29uIiwiaWNvbiIsIiRpbmRleCIsIiRoaWdobGlnaHRlZCIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJ1c2VHcmFkaWVudCIsInJlZiIsInN1YnRpdGxlIiwiRnJlcXVlbnRseVVzZWRBY3Rpb25zIiwiX3JlZjIiLCJvblN0YXJ0Q2hhdCIsImFnZW50SWQiLCJfcmVmMiRpc1Njcm9sbGluZyIsImFjdGlvbnNQcm9wIiwiYWN0aW9ucyIsImxvYWRpbmdQcm9wIiwibG9hZGluZyIsImVycm9yUHJvcCIsImVycm9yIiwiX3JlZjIkdmFyaWFudCIsInZhcmlhbnQiLCJfdXNlVCIsInQiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlY3Rpb24iLCJldmVudEFtcGxpdHVkZSIsImZldGNoZWQiLCJ1bmRlZmluZWQiLCJoYW5kbGVBY3Rpb25DbGljayIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwidHlwZV9xdWlja19hY3Rpb24iLCJvcmlnaW5fcXVpY2tfYWN0aW9uIiwiaWQiLCJsZW5ndGgiLCJnZXRBY3Rpb25zU3RhdHVzIiwiaXNQbGFubmVyU2VjdGlvbiIsInNob3dUaXRsZSIsIiRjb21wYWN0IiwibWVzc2FnZSIsIm1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy9GcmVxdWVudGx5VXNlZEFjdGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyByZXNvbHZlUXVpY2tBY3Rpb25PcmlnaW4sIHJlc29sdmVRdWlja0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ob3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBGYXFzSWNvbiB9IGZyb20gJy4uL2ljb25zL0ZhcXNJY29uJ1xuaW1wb3J0IHsgZ2V0QWN0aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGlvbkljb25NYXAnXG5pbXBvcnQgeyBGcmVxdWVudGx5VXNlZEFjdGlvbnNTa2VsZXRvbiB9IGZyb20gJy4vRnJlcXVlbnRseVVzZWRBY3Rpb25zLnNrZWxldG9uJ1xuaW1wb3J0IHsgRXJyb3JTZWFyY2hGYXFzIH0gZnJvbSAnLi4vRXJyb3JTZWFyY2hGYXFzJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4uL0ZhZGUnXG5pbXBvcnQge1xuICBTQ0ZVQUNvbnRhaW5lcixcbiAgU0NGVUFUaXRsZSxcbiAgU0NGVUFMaXN0Q29udGFpbmVyLFxuICBTQ0ZVQUxpc3QsXG4gIFNDRlVBSXRlbSxcbiAgU0NGVUFJdGVtSWNvbixcbiAgU0NGVUFJdGVtQ29udGVudCxcbiAgU0NGVUFJdGVtVGl0bGUsXG4gIFNDRlVBSXRlbVN1YnRpdGxlLFxufSBmcm9tICcuL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy5zdHlsZXMnXG5cbmZ1bmN0aW9uIEZVQUxpc3RJdGVtKHtcbiAgYWN0aW9uLFxuICBpc1Njcm9sbGluZyxcbiAgb25DbGljayxcbiAgaW5kZXgsXG4gIGhpZ2hsaWdodGVkID0gZmFsc2UsXG59OiB7XG4gIGFjdGlvbjogQWN0aW9uXG4gIGlzU2Nyb2xsaW5nOiBib29sZWFuXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgaW5kZXg6IG51bWJlclxuICBoaWdobGlnaHRlZD86IGJvb2xlYW5cbn0pIHtcbiAgY29uc3QgdGl0bGVSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VGl0bGVUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0aXRsZVJlZiwgW2FjdGlvbi50aXRsZV0pXG4gIGNvbnN0IHRpdGxlV2l0aFByZWZpeCA9IGAvJHthY3Rpb24udGl0bGV9YFxuICBjb25zdCBDdXN0b21JY29uID0gZ2V0QWN0aW9uSWNvbihhY3Rpb24uaWNvbilcblxuICByZXR1cm4gKFxuICAgIDxTQ0ZVQUl0ZW0gJGluZGV4PXtpbmRleH0gJGhpZ2hsaWdodGVkPXtoaWdobGlnaHRlZH0gb25DbGljaz17b25DbGlja30+XG4gICAgICA8U0NGVUFJdGVtSWNvbj5cbiAgICAgICAge0N1c3RvbUljb24gPyA8Q3VzdG9tSWNvbiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+IDogPEZhcXNJY29uIHVzZUdyYWRpZW50IGhlaWdodD17MjB9IHdpZHRoPXsyMH0gLz59XG4gICAgICA8L1NDRlVBSXRlbUljb24+XG4gICAgICA8U0NGVUFJdGVtQ29udGVudD5cbiAgICAgICAgPFNDRlVBSXRlbVRpdGxlIHJlZj17dGl0bGVSZWZ9PlxuICAgICAgICAgIHtpc1Njcm9sbGluZyA/IChcbiAgICAgICAgICAgIHRpdGxlV2l0aFByZWZpeFxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1RpdGxlVG9vbHRpcCA/IHRpdGxlV2l0aFByZWZpeCA6ICcnfT5cbiAgICAgICAgICAgICAgPHNwYW4+e3RpdGxlV2l0aFByZWZpeH08L3NwYW4+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0ZVQUl0ZW1UaXRsZT5cbiAgICAgICAge2FjdGlvbi5zdWJ0aXRsZSA/IDxTQ0ZVQUl0ZW1TdWJ0aXRsZT57YWN0aW9uLnN1YnRpdGxlfTwvU0NGVUFJdGVtU3VidGl0bGU+IDogbnVsbH1cbiAgICAgIDwvU0NGVUFJdGVtQ29udGVudD5cbiAgICA8L1NDRlVBSXRlbT5cbiAgKVxufVxuXG50eXBlIEZyZXF1ZW50bHlVc2VkQWN0aW9uc1Byb3BzID0ge1xuICBvblN0YXJ0Q2hhdDogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10gfCBudWxsLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogbnVsbCxcbiAgICBmdWFJZD86IHN0cmluZ1xuICApID0+IHZvaWRcbiAgYWdlbnRJZD86IHN0cmluZ1xuICBpc1Njcm9sbGluZz86IGJvb2xlYW5cbiAgYWN0aW9ucz86IEFjdGlvbltdXG4gIGxvYWRpbmc/OiBib29sZWFuXG4gIGVycm9yPzogc3RyaW5nIHwgbnVsbFxuICB2YXJpYW50PzogJ2RlZmF1bHQnIHwgJ3BsYW5uZXInXG59XG5cbmV4cG9ydCBjb25zdCBGcmVxdWVudGx5VXNlZEFjdGlvbnMgPSAoe1xuICBvblN0YXJ0Q2hhdCxcbiAgYWdlbnRJZCxcbiAgaXNTY3JvbGxpbmcgPSBmYWxzZSxcbiAgYWN0aW9uczogYWN0aW9uc1Byb3AsXG4gIGxvYWRpbmc6IGxvYWRpbmdQcm9wLFxuICBlcnJvcjogZXJyb3JQcm9wLFxuICB2YXJpYW50ID0gJ2RlZmF1bHQnLFxufTogRnJlcXVlbnRseVVzZWRBY3Rpb25zUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBzZWN0aW9uIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGZldGNoZWQgPSB1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMoYWN0aW9uc1Byb3AgPT0gbnVsbCA/IGFnZW50SWQgOiB1bmRlZmluZWQsIHNlY3Rpb24pXG4gIGNvbnN0IGFjdGlvbnMgPSBhY3Rpb25zUHJvcCA/PyBmZXRjaGVkLmFjdGlvbnNcbiAgY29uc3QgbG9hZGluZyA9IGxvYWRpbmdQcm9wID8/IGZldGNoZWQubG9hZGluZ1xuICBjb25zdCBlcnJvciA9IGVycm9yUHJvcCA/PyBmZXRjaGVkLmVycm9yXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uQ2xpY2sgPSAoYWN0aW9uOiBBY3Rpb24pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QsIHtcbiAgICAgIHR5cGVfcXVpY2tfYWN0aW9uOiByZXNvbHZlUXVpY2tBY3Rpb25UeXBlKGFjdGlvbiksXG4gICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiByZXNvbHZlUXVpY2tBY3Rpb25PcmlnaW4oc2VjdGlvbiwgdmFyaWFudCksXG4gICAgfSlcbiAgICBvblN0YXJ0Q2hhdChhY3Rpb24udGl0bGUsIG51bGwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBudWxsLCBhY3Rpb24uaWQpXG4gIH1cblxuICBpZiAoIWxvYWRpbmcgJiYgIWVycm9yICYmIGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGdldEFjdGlvbnNTdGF0dXMgPSAoKSA9PiB7XG4gICAgaWYgKGxvYWRpbmcpIHJldHVybiAnbG9hZGluZydcbiAgICBpZiAoZXJyb3IpIHJldHVybiAnZXJyb3InXG4gICAgcmV0dXJuICdsaXN0J1xuICB9XG5cbiAgY29uc3QgaXNQbGFubmVyU2VjdGlvbiA9IHNlY3Rpb24gPT09ICdwbGFubmVyJyB8fCB2YXJpYW50ID09PSAncGxhbm5lcidcbiAgY29uc3Qgc2hvd1RpdGxlID0gIWlzUGxhbm5lclNlY3Rpb24gJiYgIWxvYWRpbmcgJiYgIWVycm9yICYmIGFjdGlvbnMubGVuZ3RoID4gMFxuXG4gIHJldHVybiAoXG4gICAgPFNDRlVBQ29udGFpbmVyICRjb21wYWN0PXshc2hvd1RpdGxlfT5cbiAgICAgIHtzaG93VGl0bGUgJiYgKFxuICAgICAgICA8U0NGVUFUaXRsZT5cbiAgICAgICAgICA8c3Bhbj57dCgnaG9tZU1lbnUuZnVhLnRpdGxlJyl9PC9zcGFuPlxuICAgICAgICA8L1NDRlVBVGl0bGU+XG4gICAgICApfVxuICAgICAgPFNDRlVBTGlzdENvbnRhaW5lcj5cbiAgICAgICAgPEZhZGUga2V5PXtnZXRBY3Rpb25zU3RhdHVzKCl9PlxuICAgICAgICAgIHtsb2FkaW5nICYmICFlcnJvciAmJiA8RnJlcXVlbnRseVVzZWRBY3Rpb25zU2tlbGV0b24gLz59XG4gICAgICAgICAge2Vycm9yICYmIDxFcnJvclNlYXJjaEZhcXMgbWVzc2FnZT17dCgnaG9tZU1lbnUuZnVhLmVycm9yJyl9IC8+fVxuICAgICAgICAgIHshbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxTQ0ZVQUxpc3Q+XG4gICAgICAgICAgICAgIHthY3Rpb25zLm1hcCgoYWN0aW9uLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxGVUFMaXN0SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXthY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkPXtpc1BsYW5uZXJTZWN0aW9uICYmIGluZGV4ID09PSAwfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NGVUFMaXN0PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRmFkZT5cbiAgICAgIDwvU0NGVUFMaXN0Q29udGFpbmVyPlxuICAgIDwvU0NGVUFDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxRQUFRLE9BQU87QUFDOUIsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGlCQUFpQixRQUFRLDBCQUEwQjtBQUU1RCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0Msd0JBQXdCLFFBQVEseUNBQXlDO0FBQ2xGLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyx3QkFBd0IsRUFBRUMsc0JBQXNCLFFBQVEsNENBQTRDO0FBRTdHLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7QUFDNUMsU0FBU0MsYUFBYSxRQUFRLDhCQUE4QjtBQUM1RCxTQUFTQyw2QkFBNkIsUUFBUSxrQ0FBa0M7QUFDaEYsU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUM5QixTQUNFQyxjQUFjLEVBQ2RDLFVBQVUsRUFDVkMsa0JBQWtCLEVBQ2xCQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsYUFBYSxFQUNiQyxnQkFBZ0IsRUFDaEJDLGNBQWMsRUFDZEMsaUJBQWlCLFFBQ1osZ0NBQWdDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUV2QyxTQUFTQyxXQUFXQSxDQUFBQyxJQUFBLEVBWWpCO0VBQUEsSUFYREMsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU07SUFDTkMsV0FBVyxHQUFBRixJQUFBLENBQVhFLFdBQVc7SUFDWEMsT0FBTyxHQUFBSCxJQUFBLENBQVBHLE9BQU87SUFDUEMsS0FBSyxHQUFBSixJQUFBLENBQUxJLEtBQUs7SUFBQUMsZ0JBQUEsR0FBQUwsSUFBQSxDQUNMTSxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsZ0JBQUEsY0FBRyxLQUFLLEdBQUFBLGdCQUFBO0VBUW5CLElBQU1FLFFBQVEsR0FBR3BDLE1BQU0sQ0FBa0IsSUFBSSxDQUFDO0VBQzlDLElBQUFxQyxrQkFBQSxHQUEwQ2xDLGlCQUFpQixDQUFDaUMsUUFBUSxFQUFFLENBQUNOLE1BQU0sQ0FBQ1EsS0FBSyxDQUFDLENBQUM7SUFBaEVDLGdCQUFnQixHQUFBRixrQkFBQSxDQUE3QkcsV0FBVztFQUNuQixJQUFNQyxlQUFlLE9BQUFDLE1BQUEsQ0FBT1osTUFBTSxDQUFDUSxLQUFLLENBQUU7RUFDMUMsSUFBTUssVUFBVSxHQUFHaEMsYUFBYSxDQUFDbUIsTUFBTSxDQUFDYyxJQUFJLENBQUM7RUFFN0Msb0JBQ0VqQixLQUFBLENBQUNSLFNBQVM7SUFBQzBCLE1BQU0sRUFBRVosS0FBTTtJQUFDYSxZQUFZLEVBQUVYLFdBQVk7SUFBQ0gsT0FBTyxFQUFFQSxPQUFRO0lBQUFlLFFBQUEsZ0JBQ3BFdEIsSUFBQSxDQUFDTCxhQUFhO01BQUEyQixRQUFBLEVBQ1hKLFVBQVUsZ0JBQUdsQixJQUFBLENBQUNrQixVQUFVO1FBQUNLLEtBQUssRUFBRSxFQUFHO1FBQUNDLE1BQU0sRUFBRTtNQUFHLENBQUUsQ0FBQyxnQkFBR3hCLElBQUEsQ0FBQ2YsUUFBUTtRQUFDd0MsV0FBVztRQUFDRCxNQUFNLEVBQUUsRUFBRztRQUFDRCxLQUFLLEVBQUU7TUFBRyxDQUFFO0lBQUMsQ0FDeEYsQ0FBQyxlQUNoQnJCLEtBQUEsQ0FBQ04sZ0JBQWdCO01BQUEwQixRQUFBLGdCQUNmdEIsSUFBQSxDQUFDSCxjQUFjO1FBQUM2QixHQUFHLEVBQUVmLFFBQVM7UUFBQVcsUUFBQSxFQUMzQmhCLFdBQVcsR0FDVlUsZUFBZSxnQkFFZmhCLElBQUEsQ0FBQ3hCLE9BQU87VUFBQ3FDLEtBQUssRUFBRUMsZ0JBQWdCLEdBQUdFLGVBQWUsR0FBRyxFQUFHO1VBQUFNLFFBQUEsZUFDdER0QixJQUFBO1lBQUFzQixRQUFBLEVBQU9OO1VBQWUsQ0FBTztRQUFDLENBQ3ZCO01BQ1YsQ0FDYSxDQUFDLEVBQ2hCWCxNQUFNLENBQUNzQixRQUFRLGdCQUFHM0IsSUFBQSxDQUFDRixpQkFBaUI7UUFBQXdCLFFBQUEsRUFBRWpCLE1BQU0sQ0FBQ3NCO01BQVEsQ0FBb0IsQ0FBQyxHQUFHLElBQUk7SUFBQSxDQUNsRSxDQUFDO0VBQUEsQ0FDVixDQUFDO0FBRWhCO0FBbUJBLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBQUMsS0FBQSxFQVFBO0VBQUEsSUFQaENDLFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0lBQ1hDLE9BQU8sR0FBQUYsS0FBQSxDQUFQRSxPQUFPO0lBQUFDLGlCQUFBLEdBQUFILEtBQUEsQ0FDUHZCLFdBQVc7SUFBWEEsV0FBVyxHQUFBMEIsaUJBQUEsY0FBRyxLQUFLLEdBQUFBLGlCQUFBO0lBQ1ZDLFdBQVcsR0FBQUosS0FBQSxDQUFwQkssT0FBTztJQUNFQyxXQUFXLEdBQUFOLEtBQUEsQ0FBcEJPLE9BQU87SUFDQUMsU0FBUyxHQUFBUixLQUFBLENBQWhCUyxLQUFLO0lBQUFDLGFBQUEsR0FBQVYsS0FBQSxDQUNMVyxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsYUFBQSxjQUFHLFNBQVMsR0FBQUEsYUFBQTtFQUVuQixJQUFBRSxLQUFBLEdBQWNoRSxJQUFJLENBQUMsQ0FBQztJQUFaaUUsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7RUFDVCxJQUFBQyxpQkFBQSxHQUFvQmhFLGdCQUFnQixDQUFDLENBQUM7SUFBOUJpRSxPQUFPLEdBQUFELGlCQUFBLENBQVBDLE9BQU87RUFDZixJQUFNQyxjQUFjLEdBQUcvRCxRQUFRLENBQUMsQ0FBQztFQUNqQyxJQUFNZ0UsT0FBTyxHQUFHbEUsd0JBQXdCLENBQUNxRCxXQUFXLElBQUksSUFBSSxHQUFHRixPQUFPLEdBQUdnQixTQUFTLEVBQUVILE9BQU8sQ0FBQztFQUM1RixJQUFNVixPQUFPLEdBQUdELFdBQVcsYUFBWEEsV0FBVyxjQUFYQSxXQUFXLEdBQUlhLE9BQU8sQ0FBQ1osT0FBTztFQUM5QyxJQUFNRSxPQUFPLEdBQUdELFdBQVcsYUFBWEEsV0FBVyxjQUFYQSxXQUFXLEdBQUlXLE9BQU8sQ0FBQ1YsT0FBTztFQUM5QyxJQUFNRSxLQUFLLEdBQUdELFNBQVMsYUFBVEEsU0FBUyxjQUFUQSxTQUFTLEdBQUlTLE9BQU8sQ0FBQ1IsS0FBSztFQUV4QyxJQUFNVSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJM0MsTUFBYyxFQUFLO0lBQzVDd0MsY0FBYyxDQUFDaEUsTUFBTSxDQUFDb0UsdUJBQXVCLEVBQUU7TUFDN0NDLGlCQUFpQixFQUFFbEUsc0JBQXNCLENBQUNxQixNQUFNLENBQUM7TUFDakQ4QyxtQkFBbUIsRUFBRXBFLHdCQUF3QixDQUFDNkQsT0FBTyxFQUFFSixPQUFPO0lBQ2hFLENBQUMsQ0FBQztJQUNGVixXQUFXLENBQUN6QixNQUFNLENBQUNRLEtBQUssRUFBRSxJQUFJLEVBQUVrQyxTQUFTLEVBQUVBLFNBQVMsRUFBRSxJQUFJLEVBQUUxQyxNQUFNLENBQUMrQyxFQUFFLENBQUM7RUFDeEUsQ0FBQztFQUVELElBQUksQ0FBQ2hCLE9BQU8sSUFBSSxDQUFDRSxLQUFLLElBQUlKLE9BQU8sQ0FBQ21CLE1BQU0sS0FBSyxDQUFDLEVBQUU7SUFDOUMsT0FBTyxJQUFJO0VBQ2I7RUFFQSxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQVM7SUFDN0IsSUFBSWxCLE9BQU8sRUFBRSxPQUFPLFNBQVM7SUFDN0IsSUFBSUUsS0FBSyxFQUFFLE9BQU8sT0FBTztJQUN6QixPQUFPLE1BQU07RUFDZixDQUFDO0VBRUQsSUFBTWlCLGdCQUFnQixHQUFHWCxPQUFPLEtBQUssU0FBUyxJQUFJSixPQUFPLEtBQUssU0FBUztFQUN2RSxJQUFNZ0IsU0FBUyxHQUFHLENBQUNELGdCQUFnQixJQUFJLENBQUNuQixPQUFPLElBQUksQ0FBQ0UsS0FBSyxJQUFJSixPQUFPLENBQUNtQixNQUFNLEdBQUcsQ0FBQztFQUUvRSxvQkFDRW5ELEtBQUEsQ0FBQ1osY0FBYztJQUFDbUUsUUFBUSxFQUFFLENBQUNELFNBQVU7SUFBQWxDLFFBQUEsR0FDbENrQyxTQUFTLGlCQUNSeEQsSUFBQSxDQUFDVCxVQUFVO01BQUErQixRQUFBLGVBQ1R0QixJQUFBO1FBQUFzQixRQUFBLEVBQU9vQixDQUFDLENBQUMsb0JBQW9CO01BQUMsQ0FBTztJQUFDLENBQzVCLENBQ2IsZUFDRDFDLElBQUEsQ0FBQ1Isa0JBQWtCO01BQUE4QixRQUFBLGVBQ2pCcEIsS0FBQSxDQUFDYixJQUFJO1FBQUFpQyxRQUFBLEdBQ0ZjLE9BQU8sSUFBSSxDQUFDRSxLQUFLLGlCQUFJdEMsSUFBQSxDQUFDYiw2QkFBNkIsSUFBRSxDQUFDLEVBQ3REbUQsS0FBSyxpQkFBSXRDLElBQUEsQ0FBQ1osZUFBZTtVQUFDc0UsT0FBTyxFQUFFaEIsQ0FBQyxDQUFDLG9CQUFvQjtRQUFFLENBQUUsQ0FBQyxFQUM5RCxDQUFDTixPQUFPLElBQUksQ0FBQ0UsS0FBSyxJQUFJSixPQUFPLENBQUNtQixNQUFNLEdBQUcsQ0FBQyxpQkFDdkNyRCxJQUFBLENBQUNQLFNBQVM7VUFBQTZCLFFBQUEsRUFDUFksT0FBTyxDQUFDeUIsR0FBRyxDQUFDLFVBQUN0RCxNQUFNLEVBQUVHLEtBQUs7WUFBQSxvQkFDekJSLElBQUEsQ0FBQ0csV0FBVztjQUVWSyxLQUFLLEVBQUVBLEtBQU07Y0FDYkgsTUFBTSxFQUFFQSxNQUFPO2NBQ2ZDLFdBQVcsRUFBRUEsV0FBWTtjQUN6QkksV0FBVyxFQUFFNkMsZ0JBQWdCLElBQUkvQyxLQUFLLEtBQUssQ0FBRTtjQUM3Q0QsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7Z0JBQUEsT0FBUXlDLGlCQUFpQixDQUFDM0MsTUFBTSxDQUFDO2NBQUE7WUFBQyxHQUxwQ0EsTUFBTSxDQUFDK0MsRUFNYixDQUFDO1VBQUEsQ0FDSDtRQUFDLENBQ08sQ0FDWjtNQUFBLEdBaEJRRSxnQkFBZ0IsQ0FBQyxDQWlCdEI7SUFBQyxDQUNXLENBQUM7RUFBQSxDQUNQLENBQUM7QUFFckIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -27,27 +27,15 @@ export var SCFUAList = styled.div.withConfig({
|
|
|
27
27
|
export var SCFUAItem = styled.div.withConfig({
|
|
28
28
|
displayName: "FrequentlyUsedActionsstyles__SCFUAItem",
|
|
29
29
|
componentId: "sc-189idh6-5"
|
|
30
|
-
})(["display:flex;padding:8px 10px;align-items:center;gap:8px;align-self:stretch;cursor:
|
|
31
|
-
var $
|
|
32
|
-
return $disabled ? 'default' : 'pointer';
|
|
33
|
-
}, function (_ref3) {
|
|
34
|
-
var $disabled = _ref3.$disabled;
|
|
35
|
-
return $disabled ? 0.6 : 1;
|
|
36
|
-
}, function (_ref4) {
|
|
37
|
-
var $disabled = _ref4.$disabled;
|
|
38
|
-
return $disabled ? 'none' : 'auto';
|
|
39
|
-
}, function (_ref5) {
|
|
40
|
-
var $highlighted = _ref5.$highlighted;
|
|
30
|
+
})(["display:flex;padding:8px 10px;align-items:center;gap:8px;align-self:stretch;cursor:pointer;border-radius:8px;border:1px solid ", ";background:", ";", " &:hover{background:#f2f2f2;}"], function (_ref2) {
|
|
31
|
+
var $highlighted = _ref2.$highlighted;
|
|
41
32
|
return $highlighted ? '#d9d9d9' : '#f2f2f2';
|
|
42
|
-
}, function (
|
|
43
|
-
var $highlighted =
|
|
33
|
+
}, function (_ref3) {
|
|
34
|
+
var $highlighted = _ref3.$highlighted;
|
|
44
35
|
return $highlighted ? '#f9f9f9' : '#fff';
|
|
45
|
-
}, function (
|
|
46
|
-
var $index =
|
|
36
|
+
}, function (_ref4) {
|
|
37
|
+
var $index = _ref4.$index;
|
|
47
38
|
return cascadeItem($index);
|
|
48
|
-
}, function (_ref8) {
|
|
49
|
-
var $disabled = _ref8.$disabled;
|
|
50
|
-
return $disabled ? undefined : '#f2f2f2';
|
|
51
39
|
});
|
|
52
40
|
export var SCFUAItemIcon = styled.div.withConfig({
|
|
53
41
|
displayName: "FrequentlyUsedActionsstyles__SCFUAItemIcon",
|
|
@@ -71,4 +59,4 @@ export var SCFUAItemText = styled.span.withConfig({
|
|
|
71
59
|
displayName: "FrequentlyUsedActionsstyles__SCFUAItemText",
|
|
72
60
|
componentId: "sc-189idh6-10"
|
|
73
61
|
})(["color:#20201f;font-size:11px;font-weight:400;line-height:120%;letter-spacing:-0.11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 40px);"]);
|
|
74
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJWSU9MRVRfSUFfQ09MT1JTIiwiY2FzY2FkZUl0ZW0iLCJTQ0ZVQUNvbnRhaW5lciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIiRjb21wYWN0IiwiU0NGVUFMaXN0Q29udGFpbmVyIiwiU0NGVUFUaXRsZSIsIlNDRlVBTmV3QmFkZ2UiLCJzcGFuIiwiU0NGVUFMaXN0IiwiU0NGVUFJdGVtIiwiX3JlZjIiLCIkaGlnaGxpZ2h0ZWQiLCJfcmVmMyIsIl9yZWY0IiwiJGluZGV4IiwiU0NGVUFJdGVtSWNvbiIsIlNDRlVBSXRlbUNvbnRlbnQiLCJTQ0ZVQUl0ZW1UaXRsZSIsIlNDRlVBSXRlbVN1YnRpdGxlIiwiU0NGVUFJdGVtVGV4dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy9GcmVxdWVudGx5VXNlZEFjdGlvbnMuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IGNhc2NhZGVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2Nhc2NhZGUnXG5cbmV4cG9ydCBjb25zdCBTQ0ZVQUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyAkY29tcGFjdD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ0OHB4O1xuICBnYXA6ICR7KHsgJGNvbXBhY3QgfSkgPT4gKCRjb21wYWN0ID8gMCA6ICcxMHB4Jyl9O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRlVBTGlzdENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRlVBVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogJHtWSU9MRVRfSUFfQ09MT1JTWzUwMF19O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NGVUFOZXdCYWRnZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDA1NzhjIDAlLCAjNGQzNTY5IDEwMCUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0ZVQUxpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0ZVQUl0ZW0gPSBzdHlsZWQuZGl2PHsgJGluZGV4PzogbnVtYmVyOyAkaGlnaGxpZ2h0ZWQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7ICRoaWdobGlnaHRlZCB9KSA9PiAoJGhpZ2hsaWdodGVkID8gJyNkOWQ5ZDknIDogJyNmMmYyZjInKX07XG4gIGJhY2tncm91bmQ6ICR7KHsgJGhpZ2hsaWdodGVkIH0pID0+ICgkaGlnaGxpZ2h0ZWQgPyAnI2Y5ZjlmOScgOiAnI2ZmZicpfTtcbiAgJHsoeyAkaW5kZXggfSkgPT4gY2FzY2FkZUl0ZW0oJGluZGV4KX1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmYyO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0ZVQUl0ZW1JY29uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmID4gc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NGVUFJdGVtQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NGVUFJdGVtVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRlVBSXRlbVN1YnRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuLyoqIEBkZXByZWNhdGVkIG1hbnRlbmVyIHBhcmEgcmV0cm9jb21wYXQg4oCUIHVzYXIgU0NGVUFJdGVtVGl0bGUgLyBTQ0ZVQUl0ZW1TdWJ0aXRsZSAqL1xuZXhwb3J0IGNvbnN0IFNDRlVBSXRlbVRleHQgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxnQkFBZ0IsUUFBUSx3QkFBd0I7QUFDekQsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUVyRCxPQUFPLElBQU1DLGNBQWMsR0FBR0gsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOEZBSy9CLFVBQUFDLElBQUE7RUFBQSxJQUFHQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBRyxDQUFDLEdBQUcsTUFBTTtBQUFBLENBQUMsQ0FFakQ7QUFFRCxPQUFPLElBQU1DLGtCQUFrQixHQUFHVixNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxvRUFLM0M7QUFFRCxPQUFPLElBQU1JLFVBQVUsR0FBR1gsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUpBR3pCTixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FPL0I7QUFFRCxPQUFPLElBQU1XLGFBQWEsR0FBR1osTUFBTSxDQUFDYSxJQUFJLENBQUFSLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMFNBZXZDO0FBRUQsT0FBTyxJQUFNTyxTQUFTLEdBQUdkLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZGQU1sQztBQUVELE9BQU8sSUFBTVEsU0FBUyxHQUFHZixNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2TEFRYixVQUFBUyxLQUFBO0VBQUEsSUFBR0MsWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7RUFBQSxPQUFRQSxZQUFZLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBQ2xFLFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxZQUFZLEdBQUFDLEtBQUEsQ0FBWkQsWUFBWTtFQUFBLE9BQVFBLFlBQVksR0FBRyxTQUFTLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFDckUsVUFBQUUsS0FBQTtFQUFBLElBQUdDLE1BQU0sR0FBQUQsS0FBQSxDQUFOQyxNQUFNO0VBQUEsT0FBT2xCLFdBQVcsQ0FBQ2tCLE1BQU0sQ0FBQztBQUFBLEVBS3RDO0FBRUQsT0FBTyxJQUFNQyxhQUFhLEdBQUdyQixNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtT0FrQnRDO0FBRUQsT0FBTyxJQUFNZSxnQkFBZ0IsR0FBR3RCLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZGQU96QztBQUVELE9BQU8sSUFBTWdCLGNBQWMsR0FBR3ZCLE1BQU0sQ0FBQ2EsSUFBSSxDQUFBUixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdOQVl4QztBQUVELE9BQU8sSUFBTWlCLGlCQUFpQixHQUFHeEIsTUFBTSxDQUFDYSxJQUFJLENBQUFSLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK01BWTNDOztBQUVEO0FBQ0EsT0FBTyxJQUFNa0IsYUFBYSxHQUFHekIsTUFBTSxDQUFDYSxJQUFJLENBQUFSLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUxBVXZDIiwiaWdub3JlTGlzdCI6W119
|