@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
package/README.md
ADDED
package/lib/App.js
CHANGED
|
@@ -1,36 +1,19 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
/* eslint-disable react/button-has-type */
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { Routes, Route, Link } from 'react-router-dom';
|
|
5
4
|
import { DevChatAI } from './dev/DevChatAI';
|
|
6
5
|
import { DevProjectSummary } from './dev/ProjectSummary';
|
|
7
|
-
import { DevMaiaPage } from './dev/DevMaiaPage';
|
|
8
6
|
import { DevContextMentionInput } from './dev/DevContextMentionInput';
|
|
9
7
|
import { DevReasoningTimeline } from './dev/DevReasoningTimeline';
|
|
10
8
|
import { Providers } from './dev/Providers';
|
|
11
|
-
import { jsx as _jsx,
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
10
|
var PAGES = {
|
|
13
11
|
'Resumen de proyectos': DevProjectSummary,
|
|
14
12
|
'Chat Agente PM': DevChatAI,
|
|
15
13
|
'Context Mention Input': DevContextMentionInput,
|
|
16
14
|
'Reasoning Timeline': DevReasoningTimeline
|
|
17
15
|
};
|
|
18
|
-
|
|
19
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
20
|
-
id: "modals-portal-maia-chat-agent"
|
|
21
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
22
|
-
id: "abm-agent-modal"
|
|
23
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
24
|
-
id: "snackbar-portal-maia-chat-agent"
|
|
25
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
26
|
-
id: "emoji-picker-container"
|
|
27
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
28
|
-
id: "emoji-picker-container-maia-chat-agent"
|
|
29
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
30
|
-
id: "modal-portal-video-onboarding"
|
|
31
|
-
})]
|
|
32
|
-
});
|
|
33
|
-
function DevShell() {
|
|
16
|
+
function App() {
|
|
34
17
|
var _useState = useState('Context Mention Input'),
|
|
35
18
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36
19
|
page = _useState2[0],
|
|
@@ -38,14 +21,13 @@ function DevShell() {
|
|
|
38
21
|
var Component = PAGES[page];
|
|
39
22
|
var pages = Object.keys(PAGES);
|
|
40
23
|
return /*#__PURE__*/_jsxs(Providers, {
|
|
41
|
-
children: [/*#__PURE__*/
|
|
24
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
42
25
|
style: {
|
|
43
26
|
display: 'flex',
|
|
44
27
|
gap: 8,
|
|
45
|
-
padding: 8
|
|
46
|
-
alignItems: 'center'
|
|
28
|
+
padding: 8
|
|
47
29
|
},
|
|
48
|
-
children:
|
|
30
|
+
children: pages.map(function (p) {
|
|
49
31
|
return /*#__PURE__*/_jsx("button", {
|
|
50
32
|
onClick: function onClick() {
|
|
51
33
|
return setPage(p);
|
|
@@ -55,28 +37,21 @@ function DevShell() {
|
|
|
55
37
|
},
|
|
56
38
|
children: p
|
|
57
39
|
}, p);
|
|
58
|
-
}), /*#__PURE__*/_jsx(Link, {
|
|
59
|
-
to: "/maia",
|
|
60
|
-
style: {
|
|
61
|
-
marginLeft: 'auto'
|
|
62
|
-
},
|
|
63
|
-
children: "Maia Full Page \u2192"
|
|
64
|
-
})]
|
|
65
|
-
}), DEV_PORTALS, /*#__PURE__*/_jsx(Component, {})]
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
function App() {
|
|
69
|
-
return /*#__PURE__*/_jsxs(Routes, {
|
|
70
|
-
children: [/*#__PURE__*/_jsx(Route, {
|
|
71
|
-
path: "/maia",
|
|
72
|
-
element: /*#__PURE__*/_jsx(Providers, {
|
|
73
|
-
children: /*#__PURE__*/_jsx(DevMaiaPage, {})
|
|
74
40
|
})
|
|
75
|
-
}), /*#__PURE__*/_jsx(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
41
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
42
|
+
id: "modals-portal-maia-chat-agent"
|
|
43
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
44
|
+
id: "abm-agent-modal"
|
|
45
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
46
|
+
id: "snackbar-portal-maia-chat-agent"
|
|
47
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
48
|
+
id: "emoji-picker-container"
|
|
49
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
50
|
+
id: "emoji-picker-container-maia-chat-agent"
|
|
51
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
52
|
+
id: "modal-portal-video-onboarding"
|
|
53
|
+
}), /*#__PURE__*/_jsx(Component, {})]
|
|
79
54
|
});
|
|
80
55
|
}
|
|
81
56
|
export default App;
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkRldkNoYXRBSSIsIkRldlByb2plY3RTdW1tYXJ5IiwiRGV2Q29udGV4dE1lbnRpb25JbnB1dCIsIkRldlJlYXNvbmluZ1RpbWVsaW5lIiwiUHJvdmlkZXJzIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlBBR0VTIiwiQXBwIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicGFnZSIsInNldFBhZ2UiLCJDb21wb25lbnQiLCJwYWdlcyIsIk9iamVjdCIsImtleXMiLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImdhcCIsInBhZGRpbmciLCJtYXAiLCJwIiwib25DbGljayIsImZvbnRXZWlnaHQiLCJpZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9BcHAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2J1dHRvbi1oYXMtdHlwZSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgRGV2Q2hhdEFJIH0gZnJvbSAnLi9kZXYvRGV2Q2hhdEFJJ1xuaW1wb3J0IHsgRGV2UHJvamVjdFN1bW1hcnkgfSBmcm9tICcuL2Rldi9Qcm9qZWN0U3VtbWFyeSdcbmltcG9ydCB7IERldkNvbnRleHRNZW50aW9uSW5wdXQgfSBmcm9tICcuL2Rldi9EZXZDb250ZXh0TWVudGlvbklucHV0J1xuaW1wb3J0IHsgRGV2UmVhc29uaW5nVGltZWxpbmUgfSBmcm9tICcuL2Rldi9EZXZSZWFzb25pbmdUaW1lbGluZSdcbmltcG9ydCB7IFByb3ZpZGVycyB9IGZyb20gJy4vZGV2L1Byb3ZpZGVycydcblxuY29uc3QgUEFHRVMgPSB7XG4gICdSZXN1bWVuIGRlIHByb3llY3Rvcyc6IERldlByb2plY3RTdW1tYXJ5LFxuICAnQ2hhdCBBZ2VudGUgUE0nOiBEZXZDaGF0QUksXG4gICdDb250ZXh0IE1lbnRpb24gSW5wdXQnOiBEZXZDb250ZXh0TWVudGlvbklucHV0LFxuICAnUmVhc29uaW5nIFRpbWVsaW5lJzogRGV2UmVhc29uaW5nVGltZWxpbmUsXG59XG5cbnR5cGUgUGFnZSA9IGtleW9mIHR5cGVvZiBQQUdFU1xuXG5mdW5jdGlvbiBBcHAoKSB7XG4gIGNvbnN0IFtwYWdlLCBzZXRQYWdlXSA9IHVzZVN0YXRlPFBhZ2U+KCdDb250ZXh0IE1lbnRpb24gSW5wdXQnKVxuICBjb25zdCBDb21wb25lbnQgPSBQQUdFU1twYWdlXVxuICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKFBBR0VTKSBhcyBQYWdlW11cblxuICByZXR1cm4gKFxuICAgIDxQcm92aWRlcnM+XG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiA4LCBwYWRkaW5nOiA4IH19PlxuICAgICAgICB7cGFnZXMubWFwKHAgPT4gKFxuICAgICAgICAgIDxidXR0b24ga2V5PXtwfSBvbkNsaWNrPXsoKSA9PiBzZXRQYWdlKHApfSBzdHlsZT17eyBmb250V2VpZ2h0OiBwYWdlID09PSBwID8gNzAwIDogNDAwIH19PlxuICAgICAgICAgICAge3B9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibW9kYWxzLXBvcnRhbC1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cImFibS1hZ2VudC1tb2RhbFwiIC8+XG4gICAgICA8ZGl2IGlkPVwic25hY2tiYXItcG9ydGFsLW1haWEtY2hhdC1hZ2VudFwiIC8+XG4gICAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lclwiIC8+XG4gICAgICA8ZGl2IGlkPVwiZW1vamktcGlja2VyLWNvbnRhaW5lci1tYWlhLWNoYXQtYWdlbnRcIiAvPlxuICAgICAgPGRpdiBpZD1cIm1vZGFsLXBvcnRhbC12aWRlby1vbmJvYXJkaW5nXCIgLz5cbiAgICAgIDxDb21wb25lbnQgLz5cbiAgICA8L1Byb3ZpZGVycz5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcHBcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0EsU0FBU0EsUUFBUSxRQUFRLE9BQU87QUFFaEMsU0FBU0MsU0FBUyxRQUFRLGlCQUFpQjtBQUMzQyxTQUFTQyxpQkFBaUIsUUFBUSxzQkFBc0I7QUFDeEQsU0FBU0Msc0JBQXNCLFFBQVEsOEJBQThCO0FBQ3JFLFNBQVNDLG9CQUFvQixRQUFRLDRCQUE0QjtBQUNqRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUUzQyxJQUFNQyxLQUFLLEdBQUc7RUFDWixzQkFBc0IsRUFBRVIsaUJBQWlCO0VBQ3pDLGdCQUFnQixFQUFFRCxTQUFTO0VBQzNCLHVCQUF1QixFQUFFRSxzQkFBc0I7RUFDL0Msb0JBQW9CLEVBQUVDO0FBQ3hCLENBQUM7QUFJRCxTQUFTTyxHQUFHQSxDQUFBLEVBQUc7RUFDYixJQUFBQyxTQUFBLEdBQXdCWixRQUFRLENBQU8sdUJBQXVCLENBQUM7SUFBQWEsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBeERHLElBQUksR0FBQUYsVUFBQTtJQUFFRyxPQUFPLEdBQUFILFVBQUE7RUFDcEIsSUFBTUksU0FBUyxHQUFHUCxLQUFLLENBQUNLLElBQUksQ0FBQztFQUM3QixJQUFNRyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVixLQUFLLENBQVc7RUFFMUMsb0JBQ0VELEtBQUEsQ0FBQ0osU0FBUztJQUFBZ0IsUUFBQSxnQkFDUmQsSUFBQTtNQUFLZSxLQUFLLEVBQUU7UUFBRUMsT0FBTyxFQUFFLE1BQU07UUFBRUMsR0FBRyxFQUFFLENBQUM7UUFBRUMsT0FBTyxFQUFFO01BQUUsQ0FBRTtNQUFBSixRQUFBLEVBQ2pESCxLQUFLLENBQUNRLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO1FBQUEsb0JBQ1ZwQixJQUFBO1VBQWdCcUIsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7WUFBQSxPQUFRWixPQUFPLENBQUNXLENBQUMsQ0FBQztVQUFBLENBQUM7VUFBQ0wsS0FBSyxFQUFFO1lBQUVPLFVBQVUsRUFBRWQsSUFBSSxLQUFLWSxDQUFDLEdBQUcsR0FBRyxHQUFHO1VBQUksQ0FBRTtVQUFBTixRQUFBLEVBQ3RGTTtRQUFDLEdBRFNBLENBRUwsQ0FBQztNQUFBLENBQ1Y7SUFBQyxDQUNDLENBQUMsZUFDTnBCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUErQixDQUFFLENBQUMsZUFDMUN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBaUIsQ0FBRSxDQUFDLGVBQzVCdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQWlDLENBQUUsQ0FBQyxlQUM1Q3ZCLElBQUE7TUFBS3VCLEVBQUUsRUFBQztJQUF3QixDQUFFLENBQUMsZUFDbkN2QixJQUFBO01BQUt1QixFQUFFLEVBQUM7SUFBd0MsQ0FBRSxDQUFDLGVBQ25EdkIsSUFBQTtNQUFLdUIsRUFBRSxFQUFDO0lBQStCLENBQUUsQ0FBQyxlQUMxQ3ZCLElBQUEsQ0FBQ1UsU0FBUyxJQUFFLENBQUM7RUFBQSxDQUNKLENBQUM7QUFFaEI7QUFFQSxlQUFlTixHQUFHIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { normalizeHitlToolName } from '../../../utils/hitlAnalytics';
|
|
2
|
+
export var formatToolNameFallback = function formatToolNameFallback(toolName) {
|
|
3
|
+
var normalized = normalizeHitlToolName(toolName || 'unknown');
|
|
4
|
+
var withSpaces = normalized.replace(/_/g, ' ').trim();
|
|
5
|
+
if (!withSpaces) return 'Unknown';
|
|
6
|
+
return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1);
|
|
7
|
+
};
|
|
8
|
+
export var getActionLabel = function getActionLabel(t, toolName, displayName) {
|
|
9
|
+
var normalizedToolName = normalizeHitlToolName(toolName || 'unknown');
|
|
10
|
+
var translationKey = "approvalBox.actions.".concat(normalizedToolName);
|
|
11
|
+
var translatedLabel = t(translationKey);
|
|
12
|
+
if (translatedLabel !== translationKey) return translatedLabel;
|
|
13
|
+
if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
|
|
14
|
+
return formatToolNameFallback(normalizedToolName);
|
|
15
|
+
};
|
|
16
|
+
export var getDeliverableMode = function getDeliverableMode(toolArgs) {
|
|
17
|
+
if (!toolArgs || Array.isArray(toolArgs)) return '';
|
|
18
|
+
return String(toolArgs.deliverableType || toolArgs.deliverable_type || '').toLowerCase();
|
|
19
|
+
};
|
|
20
|
+
export var getSpecialActionCopy = function getSpecialActionCopy(t, action) {
|
|
21
|
+
var normalizedToolName = normalizeHitlToolName(action.tool_name);
|
|
22
|
+
var deliverableMode = getDeliverableMode(action.tool_args);
|
|
23
|
+
if (normalizedToolName === 'create_rework') {
|
|
24
|
+
return {
|
|
25
|
+
title: t('approvalBox.special.createRework.title'),
|
|
26
|
+
description: t('approvalBox.special.createRework.description')
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
if (normalizedToolName === 'update_deliverable' && ['children', 'checkbox'].includes(deliverableMode)) {
|
|
30
|
+
return {
|
|
31
|
+
title: t('approvalBox.special.updateDeliverableChildren.title'),
|
|
32
|
+
description: t('approvalBox.special.updateDeliverableChildren.description')
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {};
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJmb3JtYXRUb29sTmFtZUZhbGxiYWNrIiwidG9vbE5hbWUiLCJub3JtYWxpemVkIiwid2l0aFNwYWNlcyIsInJlcGxhY2UiLCJ0cmltIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImdldEFjdGlvbkxhYmVsIiwidCIsImRpc3BsYXlOYW1lIiwibm9ybWFsaXplZFRvb2xOYW1lIiwidHJhbnNsYXRpb25LZXkiLCJjb25jYXQiLCJ0cmFuc2xhdGVkTGFiZWwiLCJnZXREZWxpdmVyYWJsZU1vZGUiLCJ0b29sQXJncyIsIkFycmF5IiwiaXNBcnJheSIsIlN0cmluZyIsImRlbGl2ZXJhYmxlVHlwZSIsImRlbGl2ZXJhYmxlX3R5cGUiLCJ0b0xvd2VyQ2FzZSIsImdldFNwZWNpYWxBY3Rpb25Db3B5IiwiYWN0aW9uIiwidG9vbF9uYW1lIiwiZGVsaXZlcmFibGVNb2RlIiwidG9vbF9hcmdzIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImluY2x1ZGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQXBwcm92YWxCb3gvQXBwcm92YWxCb3guaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBlbmRpbmdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgbm9ybWFsaXplSGl0bFRvb2xOYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sgPSAodG9vbE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3Qgd2l0aFNwYWNlcyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKVxuICBpZiAoIXdpdGhTcGFjZXMpIHJldHVybiAnVW5rbm93bidcbiAgcmV0dXJuIHdpdGhTcGFjZXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3aXRoU3BhY2VzLnNsaWNlKDEpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBY3Rpb25MYWJlbCA9ICh0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZywgdG9vbE5hbWU/OiBzdHJpbmcsIGRpc3BsYXlOYW1lPzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgYXBwcm92YWxCb3guYWN0aW9ucy4ke25vcm1hbGl6ZWRUb29sTmFtZX1gXG4gIGNvbnN0IHRyYW5zbGF0ZWRMYWJlbCA9IHQodHJhbnNsYXRpb25LZXkpXG5cbiAgaWYgKHRyYW5zbGF0ZWRMYWJlbCAhPT0gdHJhbnNsYXRpb25LZXkpIHJldHVybiB0cmFuc2xhdGVkTGFiZWxcbiAgaWYgKGRpc3BsYXlOYW1lPy50cmltKCkpIHJldHVybiBkaXNwbGF5TmFtZVxuICByZXR1cm4gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayhub3JtYWxpemVkVG9vbE5hbWUpXG59XG5cbmV4cG9ydCBjb25zdCBnZXREZWxpdmVyYWJsZU1vZGUgPSAodG9vbEFyZ3M6IFBlbmRpbmdBY3Rpb25bJ3Rvb2xfYXJncyddKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0b29sQXJncyB8fCBBcnJheS5pc0FycmF5KHRvb2xBcmdzKSkgcmV0dXJuICcnXG4gIHJldHVybiBTdHJpbmcodG9vbEFyZ3MuZGVsaXZlcmFibGVUeXBlIHx8IHRvb2xBcmdzLmRlbGl2ZXJhYmxlX3R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKClcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNwZWNpYWxBY3Rpb25Db3B5ID0gKFxuICB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgYWN0aW9uOiBQZW5kaW5nQWN0aW9uXG4pOiB7IHRpdGxlPzogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGFjdGlvbi50b29sX25hbWUpXG4gIGNvbnN0IGRlbGl2ZXJhYmxlTW9kZSA9IGdldERlbGl2ZXJhYmxlTW9kZShhY3Rpb24udG9vbF9hcmdzKVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICdjcmVhdGVfcmV3b3JrJykge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsudGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICd1cGRhdGVfZGVsaXZlcmFibGUnICYmIFsnY2hpbGRyZW4nLCAnY2hlY2tib3gnXS5pbmNsdWRlcyhkZWxpdmVyYWJsZU1vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4udGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4uZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge31cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EscUJBQXFCLFFBQVEsOEJBQThCO0FBRXBFLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsUUFBaUIsRUFBYTtFQUNuRSxJQUFNQyxVQUFVLEdBQUdILHFCQUFxQixDQUFDRSxRQUFRLElBQUksU0FBUyxDQUFDO0VBQy9ELElBQU1FLFVBQVUsR0FBR0QsVUFBVSxDQUFDRSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUN2RCxJQUFJLENBQUNGLFVBQVUsRUFBRSxPQUFPLFNBQVM7RUFDakMsT0FBT0EsVUFBVSxDQUFDRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEdBQUdKLFVBQVUsQ0FBQ0ssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLENBQTBCLEVBQUVULFFBQWlCLEVBQUVVLFdBQW9CLEVBQWE7RUFDN0csSUFBTUMsa0JBQWtCLEdBQUdiLHFCQUFxQixDQUFDRSxRQUFRLElBQUksU0FBUyxDQUFDO0VBQ3ZFLElBQU1ZLGNBQWMsMEJBQUFDLE1BQUEsQ0FBMEJGLGtCQUFrQixDQUFFO0VBQ2xFLElBQU1HLGVBQWUsR0FBR0wsQ0FBQyxDQUFDRyxjQUFjLENBQUM7RUFFekMsSUFBSUUsZUFBZSxLQUFLRixjQUFjLEVBQUUsT0FBT0UsZUFBZTtFQUM5RCxJQUFJSixXQUFXLGFBQVhBLFdBQVcsZUFBWEEsV0FBVyxDQUFFTixJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU9NLFdBQVc7RUFDM0MsT0FBT1gsc0JBQXNCLENBQUNZLGtCQUFrQixDQUFDO0FBQ25ELENBQUM7QUFFRCxPQUFPLElBQU1JLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLFFBQW9DLEVBQWE7RUFDbEYsSUFBSSxDQUFDQSxRQUFRLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDbkQsT0FBT0csTUFBTSxDQUFDSCxRQUFRLENBQUNJLGVBQWUsSUFBSUosUUFBUSxDQUFDSyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7QUFDMUYsQ0FBQztBQUVELE9BQU8sSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FDL0JkLENBQTBCLEVBQzFCZSxNQUFxQixFQUN3QjtFQUM3QyxJQUFNYixrQkFBa0IsR0FBR2IscUJBQXFCLENBQUMwQixNQUFNLENBQUNDLFNBQVMsQ0FBQztFQUNsRSxJQUFNQyxlQUFlLEdBQUdYLGtCQUFrQixDQUFDUyxNQUFNLENBQUNHLFNBQVMsQ0FBQztFQUU1RCxJQUFJaEIsa0JBQWtCLEtBQUssZUFBZSxFQUFFO0lBQzFDLE9BQU87TUFDTGlCLEtBQUssRUFBRW5CLENBQUMsQ0FBQyx3Q0FBd0MsQ0FBQztNQUNsRG9CLFdBQVcsRUFBRXBCLENBQUMsQ0FBQyw4Q0FBOEM7SUFDL0QsQ0FBQztFQUNIO0VBRUEsSUFBSUUsa0JBQWtCLEtBQUssb0JBQW9CLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUNtQixRQUFRLENBQUNKLGVBQWUsQ0FBQyxFQUFFO0lBQ3JHLE9BQU87TUFDTEUsS0FBSyxFQUFFbkIsQ0FBQyxDQUFDLHFEQUFxRCxDQUFDO01BQy9Eb0IsV0FBVyxFQUFFcEIsQ0FBQyxDQUFDLDJEQUEyRDtJQUM1RSxDQUFDO0VBQ0g7RUFFQSxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -15,7 +15,8 @@ import { useGlobalContext } from '../../../context/global-context';
|
|
|
15
15
|
import { EVENTS, useEvent } from '../../../hooks/useEvent';
|
|
16
16
|
import { OptionCorPermission } from '../OptionCorPermission';
|
|
17
17
|
import { buildAgentToolGroupsRequest, DEFAULT_COR_ACCESS } from '../../../utils/normalizeAgentConnectors';
|
|
18
|
-
import { buildHitlAnalyticsPayload, getHitlAnalyticsAgentType, hitlBatchIncludesCreateAgent
|
|
18
|
+
import { buildHitlAnalyticsPayload, getHitlAnalyticsAgentType, hitlBatchIncludesCreateAgent } from '../../../utils/hitlAnalytics';
|
|
19
|
+
import { getActionLabel, getSpecialActionCopy } from './ApprovalBox.helpers';
|
|
19
20
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
20
21
|
var CREATE_AGENT_CONNECTOR_ROWS = [{
|
|
21
22
|
slug: 'clientes',
|
|
@@ -30,41 +31,6 @@ var CREATE_AGENT_CONNECTOR_ROWS = [{
|
|
|
30
31
|
titleKey: 'taskAccessTitle',
|
|
31
32
|
descriptionKey: 'taskAccessDescription'
|
|
32
33
|
}];
|
|
33
|
-
function formatToolNameFallback(toolName) {
|
|
34
|
-
var normalized = normalizeHitlToolName(toolName || 'unknown');
|
|
35
|
-
var withSpaces = normalized.replace(/_/g, ' ').trim();
|
|
36
|
-
if (!withSpaces) return 'Unknown';
|
|
37
|
-
return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1);
|
|
38
|
-
}
|
|
39
|
-
function getActionLabel(t, toolName, displayName) {
|
|
40
|
-
var normalizedToolName = normalizeHitlToolName(toolName || 'unknown');
|
|
41
|
-
var translationKey = "approvalBox.actions.".concat(normalizedToolName);
|
|
42
|
-
var translatedLabel = t(translationKey);
|
|
43
|
-
if (translatedLabel !== translationKey) return translatedLabel;
|
|
44
|
-
if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
|
|
45
|
-
return formatToolNameFallback(normalizedToolName);
|
|
46
|
-
}
|
|
47
|
-
function getDeliverableMode(toolArgs) {
|
|
48
|
-
if (!toolArgs || Array.isArray(toolArgs)) return '';
|
|
49
|
-
return String(toolArgs.deliverableType || toolArgs.deliverable_type || '').toLowerCase();
|
|
50
|
-
}
|
|
51
|
-
function getSpecialActionCopy(t, action) {
|
|
52
|
-
var normalizedToolName = normalizeHitlToolName(action.tool_name);
|
|
53
|
-
var deliverableMode = getDeliverableMode(action.tool_args);
|
|
54
|
-
if (normalizedToolName === 'create_rework') {
|
|
55
|
-
return {
|
|
56
|
-
title: t('approvalBox.special.createRework.title'),
|
|
57
|
-
description: t('approvalBox.special.createRework.description')
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
if (normalizedToolName === 'update_deliverable' && ['children', 'checkbox'].includes(deliverableMode)) {
|
|
61
|
-
return {
|
|
62
|
-
title: t('approvalBox.special.updateDeliverableChildren.title'),
|
|
63
|
-
description: t('approvalBox.special.updateDeliverableChildren.description')
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return {};
|
|
67
|
-
}
|
|
68
34
|
export var ApprovalBox = function ApprovalBox(_ref) {
|
|
69
35
|
var actions = _ref.actions,
|
|
70
36
|
onApprove = _ref.onApprove,
|
|
@@ -265,4 +231,4 @@ export var ApprovalBox = function ApprovalBox(_ref) {
|
|
|
265
231
|
})]
|
|
266
232
|
});
|
|
267
233
|
};
|
|
268
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJDb25uZWN0b3JzIiwiU0NBQkNvbm5lY3RvcnNUaXRsZSIsIlNDQUJDb25uZWN0b3JzU3VidGl0bGUiLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MiLCJzbHVnIiwidGl0bGVLZXkiLCJkZXNjcmlwdGlvbktleSIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJhY3Rpb25zIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY29yQWNjZXNzIiwic2V0Q29yQWNjZXNzIiwiaXNDcmVhdGVBZ2VudEJhdGNoIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsImV2ZW50QW1wbGl0dWRlIiwibGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmIiwidXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiIsImF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZiIsImhpdGxCYXRjaEtleSIsIm1hcCIsImEiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJzb3J0Iiwiam9pbiIsInByZXYiLCJoaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwibGVuZ3RoIiwiaW1wcmVzc2lvbktleSIsImN1cnJlbnQiLCJhaUNoYXRIaXRsIiwidHJhY2tIaXRsRGVjaXNpb24iLCJkZWNpc2lvbiIsInJlc29sdXRpb25Tb3VyY2UiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhaUNoYXRIaXRsT3B0aW9uIiwiX29iamVjdFNwcmVhZCIsInJlc29sdXRpb25fc291cmNlIiwiaXNBY2NlcHQiLCJoYW5kbGVBcHByb3ZlIiwibWV0YWRhdGEiLCJ0b29sX2dyb3VwX3NsdWdzIiwiaGFuZGxlUmVqZWN0IiwiY2hpbGRyZW4iLCIkZXhwYW5kZWQiLCJzcGVjaWFsQ29weSIsImxhYmVsIiwiZGlzcGxheV9uYW1lIiwibnMiLCJfcmVmMiIsImNoZWNrZWQiLCJvbkNoYW5nZSIsImNvbm5lY3RvckNvciIsIm9wdGlvbiIsIl9kZWZpbmVQcm9wZXJ0eSIsImRpc2FibGVkIiwiJHZhcmlhbnQiLCJvbkNsaWNrIiwiJGRpc2FibGVkIiwiJHN0YXR1cyIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJwbGFjZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BbGVydCdcbmltcG9ydCB7IENoZWNrQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2tDaXJjbGUnXG5pbXBvcnQgeyBDcm9zc0NpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzQ2lyY2xlJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgUGVuZGluZ0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQge1xuICBTQ0FwcHJvdmFsQm94LFxuICBTQ0FCSGVhZGVyLFxuICBTQ0FCVGl0bGUsXG4gIFNDQUJEZXNjcmlwdGlvbixcbiAgU0NBQkFjdGlvbnNMaXN0LFxuICBTQ0FCQWN0aW9uSXRlbSxcbiAgU0NBQkFjdGlvbk5hbWUsXG4gIFNDQUJBY3Rpb25EZXNjcmlwdGlvbixcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbiAgU0NBQlN0YXR1c1dhcm5pbmdJY29uLFxuICBTQ0FCQ29ubmVjdG9ycyxcbiAgU0NBQkNvbm5lY3RvcnNUaXRsZSxcbiAgU0NBQkNvbm5lY3RvcnNTdWJ0aXRsZSxcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHtcbiAgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0LFxuICBDb3JBY2Nlc3MsXG4gIENvclRvb2xHcm91cFNsdWcsXG4gIERFRkFVTFRfQ09SX0FDQ0VTUyxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHtcbiAgYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZCxcbiAgZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSxcbiAgaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCxcbiAgbm9ybWFsaXplSGl0bFRvb2xOYW1lLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuXG5jb25zdCBDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmZ1bmN0aW9uIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sodG9vbE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3Qgd2l0aFNwYWNlcyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKVxuICBpZiAoIXdpdGhTcGFjZXMpIHJldHVybiAnVW5rbm93bidcbiAgcmV0dXJuIHdpdGhTcGFjZXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3aXRoU3BhY2VzLnNsaWNlKDEpXG59XG5cbmZ1bmN0aW9uIGdldEFjdGlvbkxhYmVsKHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLCB0b29sTmFtZT86IHN0cmluZywgZGlzcGxheU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBhcHByb3ZhbEJveC5hY3Rpb25zLiR7bm9ybWFsaXplZFRvb2xOYW1lfWBcbiAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdCh0cmFuc2xhdGlvbktleSlcblxuICBpZiAodHJhbnNsYXRlZExhYmVsICE9PSB0cmFuc2xhdGlvbktleSkgcmV0dXJuIHRyYW5zbGF0ZWRMYWJlbFxuICBpZiAoZGlzcGxheU5hbWU/LnRyaW0oKSkgcmV0dXJuIGRpc3BsYXlOYW1lXG4gIHJldHVybiBmb3JtYXRUb29sTmFtZUZhbGxiYWNrKG5vcm1hbGl6ZWRUb29sTmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0RGVsaXZlcmFibGVNb2RlKHRvb2xBcmdzOiBQZW5kaW5nQWN0aW9uWyd0b29sX2FyZ3MnXSk6IHN0cmluZyB7XG4gIGlmICghdG9vbEFyZ3MgfHwgQXJyYXkuaXNBcnJheSh0b29sQXJncykpIHJldHVybiAnJ1xuICByZXR1cm4gU3RyaW5nKHRvb2xBcmdzLmRlbGl2ZXJhYmxlVHlwZSB8fCB0b29sQXJncy5kZWxpdmVyYWJsZV90eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGdldFNwZWNpYWxBY3Rpb25Db3B5KFxuICB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgYWN0aW9uOiBQZW5kaW5nQWN0aW9uXG4pOiB7IHRpdGxlPzogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9IHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGFjdGlvbi50b29sX25hbWUpXG4gIGNvbnN0IGRlbGl2ZXJhYmxlTW9kZSA9IGdldERlbGl2ZXJhYmxlTW9kZShhY3Rpb24udG9vbF9hcmdzKVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICdjcmVhdGVfcmV3b3JrJykge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsudGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICd1cGRhdGVfZGVsaXZlcmFibGUnICYmIFsnY2hpbGRyZW4nLCAnY2hlY2tib3gnXS5pbmNsdWRlcyhkZWxpdmVyYWJsZU1vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4udGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4uZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge31cbn1cblxuZXhwb3J0IHR5cGUgQXBwcm92YWxNZXRhZGF0YSA9IHtcbiAgdG9vbF9ncm91cF9zbHVnczogc3RyaW5nW11cbn1cblxuaW50ZXJmYWNlIEFwcHJvdmFsQm94UHJvcHMge1xuICBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgb25BcHByb3ZlOiAodGhyZWFkSWRzOiBzdHJpbmdbXSwgbWV0YWRhdGE/OiBBcHByb3ZhbE1ldGFkYXRhKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJLCBTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IFtsb2NhbFN0YXR1cywgc2V0TG9jYWxTdGF0dXNdID0gdXNlU3RhdGU8J3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCc+KHN0YXR1cylcbiAgY29uc3QgW2NvckFjY2Vzcywgc2V0Q29yQWNjZXNzXSA9IHVzZVN0YXRlPENvckFjY2Vzcz4oREVGQVVMVF9DT1JfQUNDRVNTKVxuICBjb25zdCBpc0NyZWF0ZUFnZW50QmF0Y2ggPSB1c2VNZW1vKCgpID0+IGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9ucyksIFthY3Rpb25zXSlcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGl0bEJhdGNoS2V5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaGl0bEluc3RhbmNlSWQgPz9cbiAgICAgIGFjdGlvbnNcbiAgICAgICAgLm1hcChhID0+IGAke2EudGhyZWFkX2lkfToke2EudG9vbF9jYWxsX2lkfWApXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJ3wnKSxcbiAgICBbaGl0bEluc3RhbmNlSWQsIGFjdGlvbnNdXG4gIClcblxuICAvLyBTaW5jcm9uaXphciBsb2NhbFN0YXR1cyBjb24gZWwgcHJvcCBzdGF0dXMgY3VhbmRvIGNhbWJpYSBkZXNkZSBlbCBwYWRyZSAoc29sbyBwb3IgdmFsdWUsIGV2aXRhIGJ1Y2xlcylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbFN0YXR1cyhwcmV2ID0+IChwcmV2ICE9PSBzdGF0dXMgPyBzdGF0dXMgOiBwcmV2KSlcbiAgfSwgW3N0YXR1c10pXG5cbiAgY29uc3QgaGl0bEFuYWx5dGljc0FnZW50VHlwZSA9IGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUoYWdlbnQpXG5cbiAgLy8gQ0ExOiBjYXJkIGRlIGNvbmZpcm1hY2nDs24gSElUTCB2aXNpYmxlIChzb2xvIHBlbmRpZW50ZSwgbm8gaGlzdMOzcmljbyB5YSByZXN1ZWx0bylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGltcHJlc3Npb25LZXkgPSBoaXRsQmF0Y2hLZXlcbiAgICBpZiAobGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPT09IGltcHJlc3Npb25LZXkpIHJldHVyblxuICAgIGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ID0gaW1wcmVzc2lvbktleVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRIaXRsLCBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpKVxuICB9LCBbZXZlbnRBbXBsaXR1ZGUsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGhpdGxCYXRjaEtleSwgbG9jYWxTdGF0dXMsIGFjdGlvbnMubGVuZ3RoXSlcblxuICBjb25zdCB0cmFja0hpdGxEZWNpc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChkZWNpc2lvbjogJ2FjY2VwdCcgfCAnZGVueScsIHJlc29sdXRpb25Tb3VyY2U6ICd1c2VyJyB8ICdhdXRvJyA9ICd1c2VyJykgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGxPcHRpb24sIHtcbiAgICAgICAgLi4uYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSxcbiAgICAgICAgZGVjaXNpb24sXG4gICAgICAgIHJlc29sdXRpb25fc291cmNlOiByZXNvbHV0aW9uU291cmNlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthY3Rpb25zLCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYuY3VycmVudCA9IG51bGxcbiAgICBzZXRDb3JBY2Nlc3MoREVGQVVMVF9DT1JfQUNDRVNTKVxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIGNvbnN0IG1ldGFkYXRhID0gaXNDcmVhdGVBZ2VudEJhdGNoID8geyB0b29sX2dyb3VwX3NsdWdzOiBidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QoY29yQWNjZXNzKSB9IDogdW5kZWZpbmVkXG4gICAgb25BcHByb3ZlKFxuICAgICAgYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCksXG4gICAgICBtZXRhZGF0YVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgICAge3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxTQ0FCQWN0aW9uRGVzY3JpcHRpb24+e3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9ufTwvU0NBQkFjdGlvbkRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7aXNDcmVhdGVBZ2VudEJhdGNoICYmIGxvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkNvbm5lY3RvcnM+XG4gICAgICAgICAgPFNDQUJDb25uZWN0b3JzVGl0bGU+XG4gICAgICAgICAgICB7dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNUaXRsZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgIDwvU0NBQkNvbm5lY3RvcnNUaXRsZT5cbiAgICAgICAgICA8U0NBQkNvbm5lY3RvcnNTdWJ0aXRsZT5cbiAgICAgICAgICAgIHt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgPC9TQ0FCQ29ubmVjdG9yc1N1YnRpdGxlPlxuICAgICAgICAgIHtDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWAsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29yQWNjZXNzW3NsdWddfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17Y2hlY2tlZCA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmNvbm5lY3RvckNvciwgeyBvcHRpb246IGNoZWNrZWQgPyAnb24nIDogJ29mZicsIHNsdWcgfSlcbiAgICAgICAgICAgICAgICBzZXRDb3JBY2Nlc3MocHJldiA9PiAoeyAuLi5wcmV2LCBbc2x1Z106IGNoZWNrZWQgfSkpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NDQUJDb25uZWN0b3JzPlxuICAgICAgKX1cblxuICAgICAge2xvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJyZWplY3RcIiBvbkNsaWNrPXtoYW5kbGVSZWplY3R9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5kZW55Jyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwiYXBwcm92ZVwiIG9uQ2xpY2s9e2hhbmRsZUFwcHJvdmV9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5hcHByb3ZlJyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICA8L1NDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHtsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnICYmIChcbiAgICAgICAgPFNDQUJTdGF0dXNCYWRnZSAkc3RhdHVzPXtsb2NhbFN0YXR1c30+XG4gICAgICAgICAge2xvY2FsU3RhdHVzID09PSAnYXBwcm92ZWQnID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjMDA4NDAwXCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5hcHByb3ZlZCcpfVxuICAgICAgICAgICAgICB7bWFudWFsQXBwcm92YWxEZXRlY3RlZCAmJiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3dhcm5pbmdNZXNzYWdlIHx8IHQoJ2FwcHJvdmFsQm94Lm1hbnVhbEFwcHJvdmFsV2FybmluZycpfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPFNDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IGNvbG9yPVwiI0VBQTExQVwiIHdpZHRoPVwiMTNweFwiIGhlaWdodD1cIjEzcHhcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDcm9zc0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiI0M3MDUwNVwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuZGVuaWVkJyl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQUJTdGF0dXNCYWRnZT5cbiAgICAgICl9XG4gICAgPC9TQ0FwcHJvdmFsQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxTQUNFQyxhQUFhLEVBQ2JDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsY0FBYyxFQUNk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
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJDb25uZWN0b3JzIiwiU0NBQkNvbm5lY3RvcnNUaXRsZSIsIlNDQUJDb25uZWN0b3JzU3VidGl0bGUiLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJnZXRBY3Rpb25MYWJlbCIsImdldFNwZWNpYWxBY3Rpb25Db3B5IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiQ1JFQVRFX0FHRU5UX0NPTk5FQ1RPUl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJhY3Rpb25zIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvY2FsU3RhdHVzIiwic2V0TG9jYWxTdGF0dXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImNvckFjY2VzcyIsInNldENvckFjY2VzcyIsImlzQ3JlYXRlQWdlbnRCYXRjaCIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJldmVudEFtcGxpdHVkZSIsImxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiIsInVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYiLCJhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYiLCJoaXRsQmF0Y2hLZXkiLCJtYXAiLCJhIiwiY29uY2F0IiwidGhyZWFkX2lkIiwidG9vbF9jYWxsX2lkIiwic29ydCIsImpvaW4iLCJwcmV2IiwiaGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImxlbmd0aCIsImltcHJlc3Npb25LZXkiLCJjdXJyZW50IiwiYWlDaGF0SGl0bCIsInRyYWNrSGl0bERlY2lzaW9uIiwiZGVjaXNpb24iLCJyZXNvbHV0aW9uU291cmNlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiYWlDaGF0SGl0bE9wdGlvbiIsIl9vYmplY3RTcHJlYWQiLCJyZXNvbHV0aW9uX3NvdXJjZSIsImlzQWNjZXB0IiwiaGFuZGxlQXBwcm92ZSIsIm1ldGFkYXRhIiwidG9vbF9ncm91cF9zbHVncyIsImhhbmRsZVJlamVjdCIsImNoaWxkcmVuIiwiJGV4cGFuZGVkIiwiYWN0aW9uIiwic3BlY2lhbENvcHkiLCJsYWJlbCIsInRpdGxlIiwidG9vbF9uYW1lIiwiZGlzcGxheV9uYW1lIiwiZGVzY3JpcHRpb24iLCJucyIsIl9yZWYyIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwiY29ubmVjdG9yQ29yIiwib3B0aW9uIiwiX2RlZmluZVByb3BlcnR5IiwiZGlzYWJsZWQiLCIkdmFyaWFudCIsIm9uQ2xpY2siLCIkZGlzYWJsZWQiLCIkc3RhdHVzIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0FsZXJ0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkFjdGlvbkRlc2NyaXB0aW9uLFxuICBTQ0FCQnV0dG9uc0NvbnRhaW5lcixcbiAgU0NBQkJ1dHRvbixcbiAgU0NBQlN0YXR1c0JhZGdlLFxuICBTQ0FCU3RhdHVzV2FybmluZ0ljb24sXG4gIFNDQUJDb25uZWN0b3JzLFxuICBTQ0FCQ29ubmVjdG9yc1RpdGxlLFxuICBTQ0FCQ29ubmVjdG9yc1N1YnRpdGxlLFxufSBmcm9tICcuL0FwcHJvdmFsQm94LnN0eWxlcydcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgT3B0aW9uQ29yUGVybWlzc2lvbiB9IGZyb20gJy4uL09wdGlvbkNvclBlcm1pc3Npb24nXG5pbXBvcnQge1xuICBidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QsXG4gIENvckFjY2VzcyxcbiAgQ29yVG9vbEdyb3VwU2x1ZyxcbiAgREVGQVVMVF9DT1JfQUNDRVNTLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQge1xuICBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkLFxuICBnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlLFxuICBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50LFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuaW1wb3J0IHsgZ2V0QWN0aW9uTGFiZWwsIGdldFNwZWNpYWxBY3Rpb25Db3B5IH0gZnJvbSAnLi9BcHByb3ZhbEJveC5oZWxwZXJzJ1xuXG5jb25zdCBDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmV4cG9ydCB0eXBlIEFwcHJvdmFsTWV0YWRhdGEgPSB7XG4gIHRvb2xfZ3JvdXBfc2x1Z3M6IHN0cmluZ1tdXG59XG5cbmludGVyZmFjZSBBcHByb3ZhbEJveFByb3BzIHtcbiAgYWN0aW9uczogUGVuZGluZ0FjdGlvbltdXG4gIG9uQXBwcm92ZTogKHRocmVhZElkczogc3RyaW5nW10sIG1ldGFkYXRhPzogQXBwcm92YWxNZXRhZGF0YSkgPT4gdm9pZFxuICBvblJlamVjdDogKHRocmVhZElkczogc3RyaW5nW10pID0+IHZvaWRcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCdcbiAgaXNMb2FkaW5nPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdC9wcm95ZWN0byBlc3TDoSBlbGltaW5hZG8sIHNlIG9jdWx0YW4gbG9zIGJvdG9uZXMgZGUgYXByb2Jhci9yZWNoYXphciAqL1xuICBpc1Byb2plY3REZWxldGVkPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdCBlc3TDoSBleHBhbmRpZG8gKHRydWUpIG8gY29sYXBzYWRvIChmYWxzZSkuIEFmZWN0YSBlbCBhbmNobyBkZWwgY29udGVuZWRvci4gKi9cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW5cbiAgLyoqIElkIGVzdGFibGUgcG9yIGxvdGUgSElUTCAocC4gZWouIG9yaWdpbmFsX3RocmVhZF9pZCkgcGFyYSBlbCBldmVudG8gZGUgaW1wcmVzacOzbiAqL1xuICBoaXRsSW5zdGFuY2VJZD86IHN0cmluZ1xuICB3YXJuaW5nTWVzc2FnZT86IHN0cmluZ1xuICBtYW51YWxBcHByb3ZhbERldGVjdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgQXBwcm92YWxCb3ggPSAoe1xuICBhY3Rpb25zLFxuICBvbkFwcHJvdmUsXG4gIG9uUmVqZWN0LFxuICBzdGF0dXMgPSAncGVuZGluZycsXG4gIGlzTG9hZGluZyA9IGZhbHNlLFxuICBpc1Byb2plY3REZWxldGVkID0gZmFsc2UsXG4gIGlzRXhwYW5kZWQgPSBmYWxzZSxcbiAgaGl0bEluc3RhbmNlSWQsXG4gIHdhcm5pbmdNZXNzYWdlLFxuICBtYW51YWxBcHByb3ZhbERldGVjdGVkID0gZmFsc2UsXG59OiBBcHByb3ZhbEJveFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmNoYXRBSSwgU0VDVElPTlMuYWJtQWdlbnRdKVxuICBjb25zdCBbbG9jYWxTdGF0dXMsIHNldExvY2FsU3RhdHVzXSA9IHVzZVN0YXRlPCdwZW5kaW5nJyB8ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnPihzdGF0dXMpXG4gIGNvbnN0IFtjb3JBY2Nlc3MsIHNldENvckFjY2Vzc10gPSB1c2VTdGF0ZTxDb3JBY2Nlc3M+KERFRkFVTFRfQ09SX0FDQ0VTUylcbiAgY29uc3QgaXNDcmVhdGVBZ2VudEJhdGNoID0gdXNlTWVtbygoKSA9PiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpLCBbYWN0aW9uc10pXG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IGhpdGxCYXRjaEtleSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGhpdGxJbnN0YW5jZUlkID8/XG4gICAgICBhY3Rpb25zXG4gICAgICAgIC5tYXAoYSA9PiBgJHthLnRocmVhZF9pZH06JHthLnRvb2xfY2FsbF9pZH1gKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5qb2luKCd8JyksXG4gICAgW2hpdGxJbnN0YW5jZUlkLCBhY3Rpb25zXVxuICApXG5cbiAgLy8gU2luY3Jvbml6YXIgbG9jYWxTdGF0dXMgY29uIGVsIHByb3Agc3RhdHVzIGN1YW5kbyBjYW1iaWEgZGVzZGUgZWwgcGFkcmUgKHNvbG8gcG9yIHZhbHVlLCBldml0YSBidWNsZXMpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TG9jYWxTdGF0dXMocHJldiA9PiAocHJldiAhPT0gc3RhdHVzID8gc3RhdHVzIDogcHJldikpXG4gIH0sIFtzdGF0dXNdKVxuXG4gIGNvbnN0IGhpdGxBbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlKGFnZW50KVxuXG4gIC8vIENBMTogY2FyZCBkZSBjb25maXJtYWNpw7NuIEhJVEwgdmlzaWJsZSAoc29sbyBwZW5kaWVudGUsIG5vIGhpc3TDs3JpY28geWEgcmVzdWVsdG8pXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycgfHwgIWFjdGlvbnMubGVuZ3RoKSByZXR1cm5cbiAgICBjb25zdCBpbXByZXNzaW9uS2V5ID0gaGl0bEJhdGNoS2V5XG4gICAgaWYgKGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ID09PSBpbXByZXNzaW9uS2V5KSByZXR1cm5cbiAgICBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9IGltcHJlc3Npb25LZXlcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bCwgYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSlcbiAgfSwgW2V2ZW50QW1wbGl0dWRlLCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBoaXRsQmF0Y2hLZXksIGxvY2FsU3RhdHVzLCBhY3Rpb25zLmxlbmd0aF0pXG5cbiAgY29uc3QgdHJhY2tIaXRsRGVjaXNpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoZGVjaXNpb246ICdhY2NlcHQnIHwgJ2RlbnknLCByZXNvbHV0aW9uU291cmNlOiAndXNlcicgfCAnYXV0bycgPSAndXNlcicpID0+IHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRIaXRsT3B0aW9uLCB7XG4gICAgICAgIC4uLmJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucyksXG4gICAgICAgIGRlY2lzaW9uLFxuICAgICAgICByZXNvbHV0aW9uX3NvdXJjZTogcmVzb2x1dGlvblNvdXJjZSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbYWN0aW9ucywgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBudWxsXG4gICAgc2V0Q29yQWNjZXNzKERFRkFVTFRfQ09SX0FDQ0VTUylcbiAgfSwgW2hpdGxCYXRjaEtleV0pXG5cbiAgLyoqXG4gICAqIFJlc29sdWNpw7NuIHNpbiBjbGljIChwLiBlai4gYmFja2VuZCBlamVjdXRhIGxhIGhlcnJhbWllbnRhIHNvbGEpOiBodWJvIGltcHJlc2nDs24gSElUTFxuICAgKiBwYXJhIGVzdGUgbG90ZSB5IGVsIHBhZHJlIHBhc8OzIGEgYXBwcm92ZWQvcmVqZWN0ZWQgc2luIHF1ZSBlbCB1c3VhcmlvIHB1bHNhcmEgYXByb2Jhci9kZW5lZ2FyLlxuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RhdHVzID09PSAncGVuZGluZycgfHwgIWFjdGlvbnMubGVuZ3RoKSByZXR1cm5cbiAgICBpZiAobGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgIT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgaWYgKHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgaWYgKGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID09PSBoaXRsQmF0Y2hLZXkpIHJldHVyblxuICAgIGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID0gaGl0bEJhdGNoS2V5XG4gICAgY29uc3QgaXNBY2NlcHQgPSBzdGF0dXMgPT09ICdhcHByb3ZlZCdcbiAgICBpZiAoaXNBY2NlcHQgJiYgaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudChhY3Rpb25zKSkgcmV0dXJuXG4gICAgdHJhY2tIaXRsRGVjaXNpb24oaXNBY2NlcHQgPyAnYWNjZXB0JyA6ICdkZW55JywgJ2F1dG8nKVxuICB9LCBbYWN0aW9ucywgaGl0bEJhdGNoS2V5LCBzdGF0dXMsIHRyYWNrSGl0bERlY2lzaW9uXSlcblxuICBjb25zdCBoYW5kbGVBcHByb3ZlID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcgfHwgbG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJykgcmV0dXJuXG4gICAgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIGlmICghaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudChhY3Rpb25zKSkge1xuICAgICAgdHJhY2tIaXRsRGVjaXNpb24oJ2FjY2VwdCcsICd1c2VyJylcbiAgICB9XG4gICAgc2V0TG9jYWxTdGF0dXMoJ2FwcHJvdmVkJylcbiAgICBjb25zdCBtZXRhZGF0YSA9IGlzQ3JlYXRlQWdlbnRCYXRjaCA/IHsgdG9vbF9ncm91cF9zbHVnczogYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0KGNvckFjY2VzcykgfSA6IHVuZGVmaW5lZFxuICAgIG9uQXBwcm92ZShcbiAgICAgIGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpLFxuICAgICAgbWV0YWRhdGFcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVSZWplY3QgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgdHJhY2tIaXRsRGVjaXNpb24oJ2RlbnknLCAndXNlcicpXG4gICAgc2V0TG9jYWxTdGF0dXMoJ3JlamVjdGVkJylcbiAgICBvblJlamVjdChhY3Rpb25zLm1hcChhID0+IGEudGhyZWFkX2lkKSlcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDQXBwcm92YWxCb3g+XG4gICAgICA8U0NBQkhlYWRlcj5cbiAgICAgICAgPFNDQUJUaXRsZT57dCgnYXBwcm92YWxCb3gudGl0bGUnKX08L1NDQUJUaXRsZT5cbiAgICAgIDwvU0NBQkhlYWRlcj5cblxuICAgICAgPFNDQUJEZXNjcmlwdGlvbj57dCgnYXBwcm92YWxCb3guZGVzY3JpcHRpb24nKX08L1NDQUJEZXNjcmlwdGlvbj5cblxuICAgICAgPFNDQUJBY3Rpb25zTGlzdCAkZXhwYW5kZWQ9e2lzRXhwYW5kZWR9PlxuICAgICAgICB7YWN0aW9ucy5tYXAoYWN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBzcGVjaWFsQ29weSA9IGdldFNwZWNpYWxBY3Rpb25Db3B5KHQsIGFjdGlvbilcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHNwZWNpYWxDb3B5LnRpdGxlIHx8IGdldEFjdGlvbkxhYmVsKHQsIGFjdGlvbi50b29sX25hbWUsIChhY3Rpb24gYXMgYW55KS5kaXNwbGF5X25hbWUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0FCQWN0aW9uSXRlbSBrZXk9e2FjdGlvbi50aHJlYWRfaWR9PlxuICAgICAgICAgICAgICA8U0NBQkFjdGlvbk5hbWU+e2xhYmVsfTwvU0NBQkFjdGlvbk5hbWU+XG4gICAgICAgICAgICAgIHtzcGVjaWFsQ29weS5kZXNjcmlwdGlvbiA/IChcbiAgICAgICAgICAgICAgICA8U0NBQkFjdGlvbkRlc2NyaXB0aW9uPntzcGVjaWFsQ29weS5kZXNjcmlwdGlvbn08L1NDQUJBY3Rpb25EZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1NDQUJBY3Rpb25JdGVtPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8L1NDQUJBY3Rpb25zTGlzdD5cblxuICAgICAge2lzQ3JlYXRlQWdlbnRCYXRjaCAmJiBsb2NhbFN0YXR1cyA9PT0gJ3BlbmRpbmcnICYmICFpc1Byb2plY3REZWxldGVkICYmIChcbiAgICAgICAgPFNDQUJDb25uZWN0b3JzPlxuICAgICAgICAgIDxTQ0FCQ29ubmVjdG9yc1RpdGxlPlxuICAgICAgICAgICAge3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvclBlcm1pc3Npb25zVGl0bGUnLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICA8L1NDQUJDb25uZWN0b3JzVGl0bGU+XG4gICAgICAgICAgPFNDQUJDb25uZWN0b3JzU3VidGl0bGU+XG4gICAgICAgICAgICB7dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgIDwvU0NBQkNvbm5lY3RvcnNTdWJ0aXRsZT5cbiAgICAgICAgICB7Q1JFQVRFX0FHRU5UX0NPTk5FQ1RPUl9ST1dTLm1hcCgoeyBzbHVnLCB0aXRsZUtleSwgZGVzY3JpcHRpb25LZXkgfSkgPT4gKFxuICAgICAgICAgICAgPE9wdGlvbkNvclBlcm1pc3Npb25cbiAgICAgICAgICAgICAga2V5PXtzbHVnfVxuICAgICAgICAgICAgICB0aXRsZT17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHt0aXRsZUtleX1gLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoYGFjY2Vzc2liaWxpdHlTZWN0aW9uLiR7ZGVzY3JpcHRpb25LZXl9YCwgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvckFjY2Vzc1tzbHVnXX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5jb25uZWN0b3JDb3IsIHsgb3B0aW9uOiBjaGVja2VkID8gJ29uJyA6ICdvZmYnLCBzbHVnIH0pXG4gICAgICAgICAgICAgICAgc2V0Q29yQWNjZXNzKHByZXYgPT4gKHsgLi4ucHJldiwgW3NsdWddOiBjaGVja2VkIH0pKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0FCQ29ubmVjdG9ycz5cbiAgICAgICl9XG5cbiAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ3BlbmRpbmcnICYmICFpc1Byb2plY3REZWxldGVkICYmIChcbiAgICAgICAgPFNDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwicmVqZWN0XCIgb25DbGljaz17aGFuZGxlUmVqZWN0fSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guZGVueScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cImFwcHJvdmVcIiBvbkNsaWNrPXtoYW5kbGVBcHByb3ZlfSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guYXBwcm92ZScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgPC9TQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgICB7bG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyAmJiAoXG4gICAgICAgIDxTQ0FCU3RhdHVzQmFkZ2UgJHN0YXR1cz17bG9jYWxTdGF0dXN9PlxuICAgICAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDaGVja0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiIzAwODQwMFwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuYXBwcm92ZWQnKX1cbiAgICAgICAgICAgICAge21hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt3YXJuaW5nTWVzc2FnZSB8fCB0KCdhcHByb3ZhbEJveC5tYW51YWxBcHByb3ZhbFdhcm5pbmcnKX0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxTQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgICAgIDxBbGVydCBjb2xvcj1cIiNFQUExMUFcIiB3aWR0aD1cIjEzcHhcIiBoZWlnaHQ9XCIxM3B4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q3Jvc3NDaXJjbGUgd2lkdGg9ezIyfSBoZWlnaHQ9ezIyfSBjb2xvcj1cIiNDNzA1MDVcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmRlbmllZCcpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0FCU3RhdHVzQmFkZ2U+XG4gICAgICApfVxuICAgIDwvU0NBcHByb3ZhbEJveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFFOUMsU0FDRUMsYUFBYSxFQUNiQyxVQUFVLEVBQ1ZDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsVUFBVSxFQUNWQyxlQUFlLEVBQ2ZDLHFCQUFxQixFQUNyQkMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLHNCQUFzQixRQUNqQixzQkFBc0I7QUFDN0IsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUM1RCxTQUNFQywyQkFBMkIsRUFHM0JDLGtCQUFr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
|
|
@@ -37,6 +37,58 @@ export var resolveAudioAttachmentMeta = function resolveAudioAttachmentMeta(atta
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
/** Gestor global de audio para evitar múltiples reproducciones simultáneas. */
|
|
40
|
+
|
|
41
|
+
export var resolveAudioPlaybackSource = function resolveAudioPlaybackSource(attachment) {
|
|
42
|
+
if (attachment.file instanceof File) {
|
|
43
|
+
return {
|
|
44
|
+
blobUrl: URL.createObjectURL(attachment.file),
|
|
45
|
+
src: null
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (attachment.url_original) {
|
|
49
|
+
return {
|
|
50
|
+
blobUrl: null,
|
|
51
|
+
src: attachment.url_original
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (attachment.url_file) {
|
|
55
|
+
return {
|
|
56
|
+
blobUrl: null,
|
|
57
|
+
src: attachment.url_file
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (attachment.url_thumbnail) {
|
|
61
|
+
return {
|
|
62
|
+
blobUrl: null,
|
|
63
|
+
src: attachment.url_thumbnail
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
blobUrl: null,
|
|
68
|
+
src: null
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export var computeSeekFromClientX = function computeSeekFromClientX(clientX, barRect, duration, barWidthPx) {
|
|
72
|
+
var clickX = clientX - barRect.left;
|
|
73
|
+
var percentage = Math.max(0, Math.min(1, clickX / barRect.width));
|
|
74
|
+
return {
|
|
75
|
+
newTime: percentage * duration,
|
|
76
|
+
newProgress: percentage * barWidthPx
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export var computeProgressMetrics = function computeProgressMetrics(visualProgress, barWidthPx) {
|
|
80
|
+
var handleSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 9;
|
|
81
|
+
var progressPercentage = barWidthPx > 0 ? visualProgress / barWidthPx * 100 : 0;
|
|
82
|
+
var maxLeft = barWidthPx > 0 ? (barWidthPx - handleSize / 2) / barWidthPx * 100 : 0;
|
|
83
|
+
return {
|
|
84
|
+
progressPercentage: progressPercentage,
|
|
85
|
+
handlePosition: Math.min(progressPercentage, maxLeft)
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export var computePlayResumeProgress = function computePlayResumeProgress(currentTime, duration, barWidthPx) {
|
|
89
|
+
if (currentTime <= 0 || duration <= 0) return 0;
|
|
90
|
+
return currentTime / duration * barWidthPx;
|
|
91
|
+
};
|
|
40
92
|
export var AudioManager = /*#__PURE__*/function () {
|
|
41
93
|
function AudioManager() {
|
|
42
94
|
_classCallCheck(this, AudioManager);
|
|
@@ -62,4 +114,4 @@ export var AudioManager = /*#__PURE__*/function () {
|
|
|
62
114
|
}
|
|
63
115
|
}]);
|
|
64
116
|
}();
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRUaW1lIiwic2Vjb25kcyIsIm1pbnMiLCJNYXRoIiwiZmxvb3IiLCJzZWNzIiwiY29uY2F0IiwidG9TdHJpbmciLCJwYWRTdGFydCIsImZvcm1hdFRpbWVXaXRoSG91cnMiLCJob3VycyIsInJlc29sdmVBdWRpb0ZpbGVFeHRlbnNpb24iLCJuYW1lIiwibWltZU9yRXh0IiwiZmlsZU5hbWVQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwicG9wIiwidG9Mb3dlckNhc2UiLCJyZXNvbHZlRnVsbEF1ZGlvRmlsZU5hbWUiLCJpbmNsdWRlcyIsInJlc29sdmVBdWRpb0F0dGFjaG1lbnRNZXRhIiwiYXR0YWNobWVudCIsImZpbGVFeHRlbnNpb24iLCJ0eXBlIiwiZnVsbEZpbGVOYW1lIiwiQXVkaW9NYW5hZ2VyIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiU2V0IiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJyZWdpc3RlciIsImF1ZGlvIiwiX3RoaXMiLCJhY3RpdmVBdWRpb3MiLCJhZGQiLCJwYXVzZUFsbEV4Y2VwdCIsImN1cnJlbnRBdWRpbyIsImZvckVhY2giLCJwYXVzZWQiLCJwYXVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkQXVkaW8uaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUaW1lID0gKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG1pbnMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MClcbiAgY29uc3Qgc2VjcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAlIDYwKVxuICByZXR1cm4gYCR7bWluc306JHtzZWNzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gXG59XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUaW1lV2l0aEhvdXJzID0gKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gMzYwMClcbiAgY29uc3QgbWlucyA9IE1hdGguZmxvb3IoKHNlY29uZHMgJSAzNjAwKSAvIDYwKVxuICBjb25zdCBzZWNzID0gTWF0aC5mbG9vcihzZWNvbmRzICUgNjApXG4gIGlmIChob3VycyA+IDApIHtcbiAgICByZXR1cm4gYCR7aG91cnN9OiR7bWlucy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7c2Vjcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YFxuICB9XG4gIHJldHVybiBgJHttaW5zfToke3NlY3MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWBcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBdWRpb0ZpbGVFeHRlbnNpb24gPSAobmFtZTogc3RyaW5nLCBtaW1lT3JFeHQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmaWxlTmFtZVBhcnRzID0gbmFtZS5zcGxpdCgnLicpXG4gIGlmIChmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICByZXR1cm4gZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICB9XG4gIHJldHVybiBtaW1lT3JFeHQ/LnRvTG93ZXJDYXNlKCkgfHwgJydcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVGdWxsQXVkaW9GaWxlTmFtZSA9IChuYW1lOiBzdHJpbmcsIG1pbWVPckV4dD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmIChuYW1lLmluY2x1ZGVzKCcuJykpIHJldHVybiBuYW1lXG4gIHJldHVybiBtaW1lT3JFeHQgPyBgJHtuYW1lfS4ke21pbWVPckV4dH1gIDogbmFtZVxufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUF1ZGlvQXR0YWNobWVudE1ldGEgPSAoYXR0YWNobWVudDogUGljazxBdHRhY2htZW50RmlsZSwgJ25hbWUnIHwgJ3R5cGUnPikgPT4ge1xuICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gcmVzb2x2ZUF1ZGlvRmlsZUV4dGVuc2lvbihhdHRhY2htZW50Lm5hbWUsIGF0dGFjaG1lbnQudHlwZSlcbiAgY29uc3QgZnVsbEZpbGVOYW1lID0gcmVzb2x2ZUZ1bGxBdWRpb0ZpbGVOYW1lKGF0dGFjaG1lbnQubmFtZSwgYXR0YWNobWVudC50eXBlKVxuICByZXR1cm4geyBmaWxlRXh0ZW5zaW9uLCBmdWxsRmlsZU5hbWUgfVxufVxuXG4vKiogR2VzdG9yIGdsb2JhbCBkZSBhdWRpbyBwYXJhIGV2aXRhciBtw7psdGlwbGVzIHJlcHJvZHVjY2lvbmVzIHNpbXVsdMOhbmVhcy4gKi9cbmV4cG9ydCBjbGFzcyBBdWRpb01hbmFnZXIge1xuICBwcml2YXRlIGFjdGl2ZUF1ZGlvczogU2V0PEhUTUxBdWRpb0VsZW1lbnQ+ID0gbmV3IFNldCgpXG5cbiAgcmVnaXN0ZXIoYXVkaW86IEhUTUxBdWRpb0VsZW1lbnQpOiAoKSA9PiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUF1ZGlvcy5hZGQoYXVkaW8pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQXVkaW9zLmRlbGV0ZShhdWRpbylcbiAgICB9XG4gIH1cblxuICBwYXVzZUFsbEV4Y2VwdChjdXJyZW50QXVkaW86IEhUTUxBdWRpb0VsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUF1ZGlvcy5mb3JFYWNoKGF1ZGlvID0+IHtcbiAgICAgIGlmIChhdWRpbyAhPT0gY3VycmVudEF1ZGlvICYmICFhdWRpby5wYXVzZWQpIHtcbiAgICAgICAgYXVkaW8ucGF1c2UoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsT0FBTyxJQUFNQSxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FB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
|
|
117
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRUaW1lIiwic2Vjb25kcyIsIm1pbnMiLCJNYXRoIiwiZmxvb3IiLCJzZWNzIiwiY29uY2F0IiwidG9TdHJpbmciLCJwYWRTdGFydCIsImZvcm1hdFRpbWVXaXRoSG91cnMiLCJob3VycyIsInJlc29sdmVBdWRpb0ZpbGVFeHRlbnNpb24iLCJuYW1lIiwibWltZU9yRXh0IiwiZmlsZU5hbWVQYXJ0cyIsInNwbGl0IiwibGVuZ3RoIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwicG9wIiwidG9Mb3dlckNhc2UiLCJyZXNvbHZlRnVsbEF1ZGlvRmlsZU5hbWUiLCJpbmNsdWRlcyIsInJlc29sdmVBdWRpb0F0dGFjaG1lbnRNZXRhIiwiYXR0YWNobWVudCIsImZpbGVFeHRlbnNpb24iLCJ0eXBlIiwiZnVsbEZpbGVOYW1lIiwicmVzb2x2ZUF1ZGlvUGxheWJhY2tTb3VyY2UiLCJmaWxlIiwiRmlsZSIsImJsb2JVcmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzcmMiLCJ1cmxfb3JpZ2luYWwiLCJ1cmxfZmlsZSIsInVybF90aHVtYm5haWwiLCJjb21wdXRlU2Vla0Zyb21DbGllbnRYIiwiY2xpZW50WCIsImJhclJlY3QiLCJkdXJhdGlvbiIsImJhcldpZHRoUHgiLCJjbGlja1giLCJsZWZ0IiwicGVyY2VudGFnZSIsIm1heCIsIm1pbiIsIndpZHRoIiwibmV3VGltZSIsIm5ld1Byb2dyZXNzIiwiY29tcHV0ZVByb2dyZXNzTWV0cmljcyIsInZpc3VhbFByb2dyZXNzIiwiaGFuZGxlU2l6ZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsInByb2dyZXNzUGVyY2VudGFnZSIsIm1heExlZnQiLCJoYW5kbGVQb3NpdGlvbiIsImNvbXB1dGVQbGF5UmVzdW1lUHJvZ3Jlc3MiLCJjdXJyZW50VGltZSIsIkF1ZGlvTWFuYWdlciIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIlNldCIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwicmVnaXN0ZXIiLCJhdWRpbyIsIl90aGlzIiwiYWN0aXZlQXVkaW9zIiwiYWRkIiwicGF1c2VBbGxFeGNlcHQiLCJjdXJyZW50QXVkaW8iLCJmb3JFYWNoIiwicGF1c2VkIiwicGF1c2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BdHRhY2htZW50Q2FyZC9BdHRhY2htZW50Q2FyZEF1ZGlvLmhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VGltZSA9IChzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtaW5zID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApXG4gIGNvbnN0IHNlY3MgPSBNYXRoLmZsb29yKHNlY29uZHMgJSA2MClcbiAgcmV0dXJuIGAke21pbnN9OiR7c2Vjcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YFxufVxuXG5leHBvcnQgY29uc3QgZm9ybWF0VGltZVdpdGhIb3VycyA9IChzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApXG4gIGNvbnN0IG1pbnMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgLyA2MClcbiAgY29uc3Qgc2VjcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAlIDYwKVxuICBpZiAoaG91cnMgPiAwKSB7XG4gICAgcmV0dXJuIGAke2hvdXJzfToke21pbnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3NlY3MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWBcbiAgfVxuICByZXR1cm4gYCR7bWluc306JHtzZWNzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlQXVkaW9GaWxlRXh0ZW5zaW9uID0gKG5hbWU6IHN0cmluZywgbWltZU9yRXh0Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IG5hbWUuc3BsaXQoJy4nKVxuICBpZiAoZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIGZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCkgfHwgJydcbiAgfVxuICByZXR1cm4gbWltZU9yRXh0Py50b0xvd2VyQ2FzZSgpIHx8ICcnXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRnVsbEF1ZGlvRmlsZU5hbWUgPSAobmFtZTogc3RyaW5nLCBtaW1lT3JFeHQ/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAobmFtZS5pbmNsdWRlcygnLicpKSByZXR1cm4gbmFtZVxuICByZXR1cm4gbWltZU9yRXh0ID8gYCR7bmFtZX0uJHttaW1lT3JFeHR9YCA6IG5hbWVcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBdWRpb0F0dGFjaG1lbnRNZXRhID0gKGF0dGFjaG1lbnQ6IFBpY2s8QXR0YWNobWVudEZpbGUsICduYW1lJyB8ICd0eXBlJz4pID0+IHtcbiAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHJlc29sdmVBdWRpb0ZpbGVFeHRlbnNpb24oYXR0YWNobWVudC5uYW1lLCBhdHRhY2htZW50LnR5cGUpXG4gIGNvbnN0IGZ1bGxGaWxlTmFtZSA9IHJlc29sdmVGdWxsQXVkaW9GaWxlTmFtZShhdHRhY2htZW50Lm5hbWUsIGF0dGFjaG1lbnQudHlwZSlcbiAgcmV0dXJuIHsgZmlsZUV4dGVuc2lvbiwgZnVsbEZpbGVOYW1lIH1cbn1cblxuLyoqIEdlc3RvciBnbG9iYWwgZGUgYXVkaW8gcGFyYSBldml0YXIgbcO6bHRpcGxlcyByZXByb2R1Y2Npb25lcyBzaW11bHTDoW5lYXMuICovXG50eXBlIEF1ZGlvQXR0YWNobWVudFVybHMgPSB7XG4gIGZpbGU/OiBGaWxlXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlQXVkaW9QbGF5YmFja1NvdXJjZSA9IChcbiAgYXR0YWNobWVudDogQXVkaW9BdHRhY2htZW50VXJsc1xuKTogeyBibG9iVXJsOiBzdHJpbmcgfCBudWxsOyBzcmM6IHN0cmluZyB8IG51bGwgfSA9PiB7XG4gIGlmIChhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgcmV0dXJuIHsgYmxvYlVybDogVVJMLmNyZWF0ZU9iamVjdFVSTChhdHRhY2htZW50LmZpbGUpLCBzcmM6IG51bGwgfVxuICB9XG4gIGlmIChhdHRhY2htZW50LnVybF9vcmlnaW5hbCkge1xuICAgIHJldHVybiB7IGJsb2JVcmw6IG51bGwsIHNyYzogYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfVxuICB9XG4gIGlmIChhdHRhY2htZW50LnVybF9maWxlKSB7XG4gICAgcmV0dXJuIHsgYmxvYlVybDogbnVsbCwgc3JjOiBhdHRhY2htZW50LnVybF9maWxlIH1cbiAgfVxuICBpZiAoYXR0YWNobWVudC51cmxfdGh1bWJuYWlsKSB7XG4gICAgcmV0dXJuIHsgYmxvYlVybDogbnVsbCwgc3JjOiBhdHRhY2htZW50LnVybF90aHVtYm5haWwgfVxuICB9XG4gIHJldHVybiB7IGJsb2JVcmw6IG51bGwsIHNyYzogbnVsbCB9XG59XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlU2Vla0Zyb21DbGllbnRYID0gKFxuICBjbGllbnRYOiBudW1iZXIsXG4gIGJhclJlY3Q6IFBpY2s8RE9NUmVjdCwgJ2xlZnQnIHwgJ3dpZHRoJz4sXG4gIGR1cmF0aW9uOiBudW1iZXIsXG4gIGJhcldpZHRoUHg6IG51bWJlclxuKTogeyBuZXdUaW1lOiBudW1iZXI7IG5ld1Byb2dyZXNzOiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IGNsaWNrWCA9IGNsaWVudFggLSBiYXJSZWN0LmxlZnRcbiAgY29uc3QgcGVyY2VudGFnZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIGNsaWNrWCAvIGJhclJlY3Qud2lkdGgpKVxuICByZXR1cm4ge1xuICAgIG5ld1RpbWU6IHBlcmNlbnRhZ2UgKiBkdXJhdGlvbixcbiAgICBuZXdQcm9ncmVzczogcGVyY2VudGFnZSAqIGJhcldpZHRoUHgsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNvbXB1dGVQcm9ncmVzc01ldHJpY3MgPSAoXG4gIHZpc3VhbFByb2dyZXNzOiBudW1iZXIsXG4gIGJhcldpZHRoUHg6IG51bWJlcixcbiAgaGFuZGxlU2l6ZSA9IDlcbik6IHsgcHJvZ3Jlc3NQZXJjZW50YWdlOiBudW1iZXI7IGhhbmRsZVBvc2l0aW9uOiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IHByb2dyZXNzUGVyY2VudGFnZSA9IGJhcldpZHRoUHggPiAwID8gKHZpc3VhbFByb2dyZXNzIC8gYmFyV2lkdGhQeCkgKiAxMDAgOiAwXG4gIGNvbnN0IG1heExlZnQgPSBiYXJXaWR0aFB4ID4gMCA/ICgoYmFyV2lkdGhQeCAtIGhhbmRsZVNpemUgLyAyKSAvIGJhcldpZHRoUHgpICogMTAwIDogMFxuICByZXR1cm4ge1xuICAgIHByb2dyZXNzUGVyY2VudGFnZSxcbiAgICBoYW5kbGVQb3NpdGlvbjogTWF0aC5taW4ocHJvZ3Jlc3NQZXJjZW50YWdlLCBtYXhMZWZ0KSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY29tcHV0ZVBsYXlSZXN1bWVQcm9ncmVzcyA9IChjdXJyZW50VGltZTogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyLCBiYXJXaWR0aFB4OiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICBpZiAoY3VycmVudFRpbWUgPD0gMCB8fCBkdXJhdGlvbiA8PSAwKSByZXR1cm4gMFxuICByZXR1cm4gKGN1cnJlbnRUaW1lIC8gZHVyYXRpb24pICogYmFyV2lkdGhQeFxufVxuXG5leHBvcnQgY2xhc3MgQXVkaW9NYW5hZ2VyIHtcbiAgcHJpdmF0ZSBhY3RpdmVBdWRpb3M6IFNldDxIVE1MQXVkaW9FbGVtZW50PiA9IG5ldyBTZXQoKVxuXG4gIHJlZ2lzdGVyKGF1ZGlvOiBIVE1MQXVkaW9FbGVtZW50KTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVBdWRpb3MuYWRkKGF1ZGlvKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0aGlzLmFjdGl2ZUF1ZGlvcy5kZWxldGUoYXVkaW8pXG4gICAgfVxuICB9XG5cbiAgcGF1c2VBbGxFeGNlcHQoY3VycmVudEF1ZGlvOiBIVE1MQXVkaW9FbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVBdWRpb3MuZm9yRWFjaChhdWRpbyA9PiB7XG4gICAgICBpZiAoYXVkaW8gIT09IGN1cnJlbnRBdWRpbyAmJiAhYXVkaW8ucGF1c2VkKSB7XG4gICAgICAgIGF1ZGlvLnBhdXNlKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUVBLE9BQU8sSUFBTUEsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLE9BQWUsRUFBYTtFQUNyRCxJQUFNQyxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDSCxPQUFPLEdBQUcsRUFBRSxDQUFDO0VBQ3JDLElBQU1JLElBQUksR0FBR0YsSUFBSSxDQUFDQyxLQUFLLENBQUNILE9BQU8sR0FBRyxFQUFFLENBQUM7RUFDckMsVUFBQUssTUFBQSxDQUFVSixJQUFJLE9BQUFJLE1BQUEsQ0FBSUQsSUFBSSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztBQUNwRCxDQUFDO0FBRUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJUixPQUFlLEVBQWE7RUFDOUQsSUFBTVMsS0FBSyxHQUFHUCxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQztFQUN4QyxJQUFNQyxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFFSCxPQUFPLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQztFQUM5QyxJQUFNSSxJQUFJLEdBQUdGLElBQUksQ0FBQ0MsS0FBSyxDQUFDSCxPQUFPLEdBQUcsRUFBRSxDQUFDO0VBQ3JDLElBQUlTLEtBQUssR0FBRyxDQUFDLEVBQUU7SUFDYixVQUFBSixNQUFBLENBQVVJLEtBQUssT0FBQUosTUFBQSxDQUFJSixJQUFJLENBQUNLLFFBQVEsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQUFGLE1BQUEsQ0FBSUQsSUFBSSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztFQUN6RjtFQUNBLFVBQUFGLE1BQUEsQ0FBVUosSUFBSSxPQUFBSSxNQUFBLENBQUlELElBQUksQ0FBQ0UsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7QUFDcEQsQ0FBQztBQUVELE9BQU8sSUFBTUcseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FBSUMsSUFBWSxFQUFFQyxTQUFrQixFQUFhO0VBQ3JGLElBQU1DLGFBQWEsR0FBR0YsSUFBSSxDQUFDRyxLQUFLLENBQUMsR0FBRyxDQUFDO0VBQ3JDLElBQUlELGFBQWEsQ0FBQ0UsTUFBTSxHQUFHLENBQUMsRUFBRTtJQUFBLElBQUFDLGtCQUFBO0lBQzVCLE9BQU8sRUFBQUEsa0JBQUEsR0FBQUgsYUFBYSxDQUFDSSxHQUFHLENBQUMsQ0FBQyxjQUFBRCxrQkFBQSx1QkFBbkJBLGtCQUFBLENBQXFCRSxXQUFXLENBQUMsQ0FBQyxLQUFJLEVBQUU7RUFDakQ7RUFDQSxPQUFPLENBQUFOLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFTSxXQUFXLENBQUMsQ0FBQyxLQUFJLEVBQUU7QUFDdkMsQ0FBQztBQUVELE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSVIsSUFBWSxFQUFFQyxTQUFrQixFQUFhO0VBQ3BGLElBQUlELElBQUksQ0FBQ1MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU9ULElBQUk7RUFDbkMsT0FBT0MsU0FBUyxNQUFBUCxNQUFBLENBQU1NLElBQUksT0FBQU4sTUFBQSxDQUFJTyxTQUFTLElBQUtELElBQUk7QUFDbEQsQ0FBQztBQUVELE9BQU8sSUFBTVUsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FBSUMsVUFBaUQsRUFBSztFQUMvRixJQUFNQyxhQUFhLEdBQUdiLHlCQUF5QixDQUFDWSxVQUFVLENBQUNYLElBQUksRUFBRVcsVUFBVSxDQUFDRSxJQUFJLENBQUM7RUFDakYsSUFBTUMsWUFBWSxHQUFHTix3QkFBd0IsQ0FBQ0csVUFBVSxDQUFDWCxJQUFJLEVBQUVXLFVBQVUsQ0FBQ0UsSUFBSSxDQUFDO0VBQy9FLE9BQU87SUFBRUQsYUFBYSxFQUFiQSxhQUFhO0lBQUVFLFlBQVksRUFBWkE7RUFBYSxDQUFDO0FBQ3hDLENBQUM7O0FBRUQ7O0FBUUEsT0FBTyxJQUFNQywwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTBCQSxDQUNyQ0osVUFBK0IsRUFDb0I7RUFDbkQsSUFBSUEsVUFBVSxDQUFDSyxJQUFJLFlBQVlDLElBQUksRUFBRTtJQUNuQyxPQUFPO01BQUVDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxlQUFlLENBQUNULFVBQVUsQ0FBQ0ssSUFBSSxDQUFDO01BQUVLLEdBQUcsRUFBRTtJQUFLLENBQUM7RUFDckU7RUFDQSxJQUFJVixVQUFVLENBQUNXLFlBQVksRUFBRTtJQUMzQixPQUFPO01BQUVKLE9BQU8sRUFBRSxJQUFJO01BQUVHLEdBQUcsRUFBRVYsVUFBVSxDQUFDVztJQUFhLENBQUM7RUFDeEQ7RUFDQSxJQUFJWCxVQUFVLENBQUNZLFFBQVEsRUFBRTtJQUN2QixPQUFPO01BQUVMLE9BQU8sRUFBRSxJQUFJO01BQUVHLEdBQUcsRUFBRVYsVUFBVSxDQUFDWTtJQUFTLENBQUM7RUFDcEQ7RUFDQSxJQUFJWixVQUFVLENBQUNhLGFBQWEsRUFBRTtJQUM1QixPQUFPO01BQUVOLE9BQU8sRUFBRSxJQUFJO01BQUVHLEdBQUcsRUFBRVYsVUFBVSxDQUFDYTtJQUFjLENBQUM7RUFDekQ7RUFDQSxPQUFPO0lBQUVOLE9BQU8sRUFBRSxJQUFJO0lBQUVHLEdBQUcsRUFBRTtFQUFLLENBQUM7QUFDckMsQ0FBQztBQUVELE9BQU8sSUFBTUksc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FDakNDLE9BQWUsRUFDZkMsT0FBd0MsRUFDeENDLFFBQWdCLEVBQ2hCQyxVQUFrQixFQUMyQjtFQUM3QyxJQUFNQyxNQUFNLEdBQUdKLE9BQU8sR0FBR0MsT0FBTyxDQUFDSSxJQUFJO0VBQ3JDLElBQU1DLFVBQVUsR0FBR3pDLElBQUksQ0FBQzBDLEdBQUcsQ0FBQyxDQUFDLEVBQUUxQyxJQUFJLENBQUMyQyxHQUFHLENBQUMsQ0FBQyxFQUFFSixNQUFNLEdBQUdILE9BQU8sQ0FBQ1EsS0FBSyxDQUFDLENBQUM7RUFDbkUsT0FBTztJQUNMQyxPQUFPLEVBQUVKLFVBQVUsR0FBR0osUUFBUTtJQUM5QlMsV0FBVyxFQUFFTCxVQUFVLEdBQUdIO0VBQzVCLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxJQUFNUyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUNqQ0MsY0FBc0IsRUFDdEJWLFVBQWtCLEVBRXlDO0VBQUEsSUFEM0RXLFVBQVUsR0FBQUMsU0FBQSxDQUFBckMsTUFBQSxRQUFBcUMsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxDQUFDO0VBRWQsSUFBTUUsa0JBQWtCLEdBQUdkLFVBQVUsR0FBRyxDQUFDLEdBQUlVLGNBQWMsR0FBR1YsVUFBVSxHQUFJLEdBQUcsR0FBRyxDQUFDO0VBQ25GLElBQU1lLE9BQU8sR0FBR2YsVUFBVSxHQUFHLENBQUMsR0FBSSxDQUFDQSxVQUFVLEdBQUdXLFVBQVUsR0FBRyxDQUFDLElBQUlYLFVBQVUsR0FBSSxHQUFHLEdBQUcsQ0FBQztFQUN2RixPQUFPO0lBQ0xjLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCRSxjQUFjLEVBQUV0RCxJQUFJLENBQUMyQyxHQUFHLENBQUNTLGtCQUFrQixFQUFFQyxPQUFPO0VBQ3RELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxJQUFNRSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxXQUFtQixFQUFFbkIsUUFBZ0IsRUFBRUMsVUFBa0IsRUFBYTtFQUM5RyxJQUFJa0IsV0FBVyxJQUFJLENBQUMsSUFBSW5CLFFBQVEsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDO0VBQy9DLE9BQVFtQixXQUFXLEdBQUduQixRQUFRLEdBQUlDLFVBQVU7QUFDOUMsQ0FBQztBQUVELFdBQWFtQixZQUFZO0VBQUEsU0FBQUEsYUFBQTtJQUFBQyxlQUFBLE9BQUFELFlBQUE7SUFBQUUsZUFBQSx1QkFDdUIsSUFBSUMsR0FBRyxDQUFDLENBQUM7RUFBQTtFQUFBLE9BQUFDLFlBQUEsQ0FBQUosWUFBQTtJQUFBSyxHQUFBO0lBQUFDLEtBQUEsRUFFdkQsU0FBQUMsUUFBUUEsQ0FBQ0MsS0FBdUIsRUFBYztNQUFBLElBQUFDLEtBQUE7TUFDNUMsSUFBSSxDQUFDQyxZQUFZLENBQUNDLEdBQUcsQ0FBQ0gsS0FBSyxDQUFDO01BQzVCLE9BQU8sWUFBTTtRQUNYQyxLQUFJLENBQUNDLFlBQVksVUFBTyxDQUFDRixLQUFLLENBQUM7TUFDakMsQ0FBQztJQUNIO0VBQUM7SUFBQUgsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBQU0sY0FBY0EsQ0FBQ0MsWUFBOEIsRUFBUTtNQUNuRCxJQUFJLENBQUNILFlBQVksQ0FBQ0ksT0FBTyxDQUFDLFVBQUFOLEtBQUssRUFBSTtRQUNqQyxJQUFJQSxLQUFLLEtBQUtLLFlBQVksSUFBSSxDQUFDTCxLQUFLLENBQUNPLE1BQU0sRUFBRTtVQUMzQ1AsS0FBSyxDQUFDUSxLQUFLLENBQUMsQ0FBQztRQUNmO01BQ0YsQ0FBQyxDQUFDO0lBQ0o7RUFBQztBQUFBIiwiaWdub3JlTGlzdCI6W119
|