@projectcor/maia-components 2.11.48-2 → 2.11.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/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +40 -3
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +38 -69
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +9 -9
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +94 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +49 -0
- package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
- package/lib/components/atoms/IconButton.js +12 -5
- package/lib/components/atoms/MAIAInput/MAIAInput.js +86 -11
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
- package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
- package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
- package/lib/components/atoms/SlashCommandChip/index.js +4 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +180 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +41 -0
- package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
- package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
- package/lib/components/atoms/icons/ActionCreateReworkIcon.js +37 -0
- package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
- package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
- package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -2
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +44 -4
- package/lib/components/molecules/ChatAIHome/styles.js +2 -2
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -6
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +36 -15
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +19 -16
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +22 -8
- package/lib/components/molecules/ChatFooter/ChatFooter.js +3 -3
- package/lib/components/organisms/ChatAI/ChatAI.js +5 -6
- package/lib/constants/maiaTaskPanelAccess.js +26 -0
- package/lib/constants/permissions/utils.js +2 -2
- package/lib/context/global-context.js +1 -1
- package/lib/dev/DevChatAI.js +89 -17
- package/lib/dev/DevContextMentionInput.js +3 -1
- package/lib/hooks/useChatManager/useChatManager.interface.js +1 -1
- package/lib/hooks/useChatManager/useChatManager.js +121 -22
- package/lib/hooks/useChatMessages/useChatMessages.interface.js +1 -1
- package/lib/hooks/useChatMessages/useChatMessages.js +10 -3
- package/lib/hooks/useContextMentions.js +153 -9
- package/lib/hooks/useEvent.js +3 -1
- package/lib/hooks/useFrequentlyUsedActions.js +81 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +12 -4
- package/lib/hooks/useProjectSearch.js +2 -4
- package/lib/hooks/useProjectSummaryConfig.js +24 -6
- package/lib/hooks/useSlashCommands.js +81 -0
- package/lib/lang/br/index.js +16 -1
- package/lib/lang/en/index.js +16 -1
- package/lib/lang/es/index.js +16 -1
- package/lib/lang/fr/index.js +16 -1
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +39 -0
- package/lib/services/maia/Actions/getSlashCommands.js +39 -0
- package/lib/services/maia/Actions/index.js +7 -0
- package/lib/services/maia/Agents/getAgents.js +13 -12
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +14 -4
- package/lib/services/maia/RecentProjects/getRecentProjects.js +6 -10
- package/lib/services/maia/index.js +3 -1
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/types/Action.js +2 -0
- package/lib/types/Task.js +2 -0
- package/lib/types/contextMention.js +2 -2
- package/lib/types/global.d.js +1 -1
- package/lib/utils/actionCategoryMap.js +33 -0
- package/lib/utils/actionIconMap.js +49 -0
- package/lib/utils/formatQuickActionMessage.js +16 -0
- package/lib/utils/mapBackendLang.js +8 -0
- package/lib/utils/renderContextMentions.js +70 -27
- package/lib/utils/slashCommandMarker.js +23 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogSXRlbSBkZWwgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcyAoaWd1YWwgZm9ybWEgcXVlIGRldnVlbHZlIGdldENoYXRzQnlVc2VySWQpICovXG5leHBvcnQgdHlwZSBDaGF0TGlzdEl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZyB8IG51bGxcbiAgZGF0ZTogRGF0ZVxuICBhZ2VudDogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlclxuICBlbW9qaTogc3RyaW5nIHwgbnVsbFxuICBzZXNzaW9uRXh0ZXJuYWxJZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzPzogYW55W11cbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL2NoYXRzU3RvcmUudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogSXRlbSBkZWwgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcyAoaWd1YWwgZm9ybWEgcXVlIGRldnVlbHZlIGdldENoYXRzQnlVc2VySWQpICovXG5leHBvcnQgdHlwZSBDaGF0TGlzdEl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZyB8IG51bGxcbiAgZGF0ZTogRGF0ZVxuICBhZ2VudDogc3RyaW5nXG4gIGFnZW50SWQ6IG51bWJlclxuICBlbW9qaTogc3RyaW5nIHwgbnVsbFxuICBzZXNzaW9uRXh0ZXJuYWxJZDogc3RyaW5nXG4gIGF0dGFjaG1lbnRzPzogYW55W11cbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nXG4gIHByb2plY3ROYW1lPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyXG4gIGNsaWVudE5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgU2VjdGlvblR5cGUgPSAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snXG5cbmV4cG9ydCB0eXBlIEZldGNoQ2hhdHNQYXJhbXMgPSB7XG4gIGFnZW50OiBBZ2VudCB8IG51bGxcbiAgc2VjdGlvbjogU2VjdGlvblR5cGVcbiAgbGltaXQ/OiBudW1iZXJcbiAgb2Zmc2V0PzogbnVtYmVyXG4gIG9uRXJyb3I/OiAoKSA9PiB2b2lkXG4gIGxhbmc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9hZE1vcmVDaGF0c1BhcmFtcyA9IHtcbiAgYWdlbnQ6IEFnZW50IHwgbnVsbFxuICBzZWN0aW9uOiBTZWN0aW9uVHlwZVxuICBvbkVycm9yPzogKCkgPT4gdm9pZFxuICBsYW5nPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIERlbGV0ZUNoYXRQYXJhbXMgPSB7XG4gIGNoYXRJZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL0FjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBY3Rpb25JY29uS2V5ID0gJ3N1bW1hcnlfdGFzaycgfCAnc3VtbWFyeV9tZXNzYWdlcycgfCAnY2hhcmdlX2hvdXJzJyB8ICdjcmVhdGVfc3VidGFzaycgfCAnY3JlYXRlX3Jld29yaydcblxuZXhwb3J0IHR5cGUgQWN0aW9uQ2F0ZWdvcnlLZXkgPSAndGFza3MnIHwgJ2NvbGxhYm9yYXRvcnMnIHwgJ2xhYmVscycgfCAnY2hlY2tsaXN0cycgfCAnZGVsaXZlcmFibGVzJyB8ICdyZXdvcmtzJ1xuXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBzdWJ0aXRsZTogc3RyaW5nIHwgbnVsbFxuICBwcm9tcHQ6IHN0cmluZ1xuICBsYW5ndWFnZTogc3RyaW5nIHwgbnVsbFxuICBvcmRlcj86IG51bWJlciB8IG51bGxcbiAgaWNvbj86IEFjdGlvbkljb25LZXkgfCBudWxsXG4gIGNhdGVnb3J5PzogQWN0aW9uQ2F0ZWdvcnlLZXkgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvblJlc3BvbnNlID0ge1xuICBkYXRhOiBBY3Rpb25bXVxuICBoYXNfbW9yZTogYm9vbGVhblxuICBuZXh0X29mZnNldDogbnVtYmVyIHwgbnVsbFxufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1Rhc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGFzayA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgcHJvamVjdElkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBjbGllbnRJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* caller puede decidir si incluir o no la key en el payload.
|
|
13
13
|
*/
|
|
14
14
|
export var buildContextMessage = function buildContextMessage(mentions) {
|
|
15
|
-
if (!mentions || mentions.length === 0) return undefined;
|
|
15
|
+
if (!mentions || !Array.isArray(mentions) || mentions.length === 0) return undefined;
|
|
16
16
|
var result = {};
|
|
17
17
|
mentions.forEach(function (m) {
|
|
18
18
|
var entity = {
|
|
@@ -34,4 +34,4 @@ export var buildContextMessage = function buildContextMessage(mentions) {
|
|
|
34
34
|
* único para que el visual se mantenga consistente en cualquier lugar.
|
|
35
35
|
*/
|
|
36
36
|
export var CONTEXT_MENTION_CHIP_CLASS = 'maia-context-mention-chip';
|
|
37
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZENvbnRleHRNZXNzYWdlIiwibWVudGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibSIsImVudGl0eSIsImlkIiwibmFtZSIsImxhYmVsIiwidHlwZSIsImJ1Y2tldCIsInNvbWUiLCJlIiwiU3RyaW5nIiwicHVzaCIsIkNPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbnRleHRNZW50aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENvbnRleHRFbnRpdHlUeXBlID0gJ2NsaWVudCcgfCAncHJvamVjdCcgfCAndGFzaycgfCAndXNlcicgfCAnbWNwJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbiA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZVxuICBsYWJlbDogc3RyaW5nXG4gIG1ldGFkYXRhPzoge1xuICAgIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICAgIGNsaWVudE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gICAgcHJvamVjdElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICAgIHByb2plY3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICAgIGZlZUlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICAgIC8qKiBUYXJlYSBwYWRyZSAoc3VidGFyZWFzIGVuIHJlc3VsdGFkb3MgZGUgYHNlYXJjaGApICovXG4gICAgZmF0aGVySWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gICAgZmF0aGVyVGl0bGU/OiBzdHJpbmcgfCBudWxsXG4gICAgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfCBudWxsXG4gICAgLyoqXG4gICAgICogTm9tYnJlIGNvbXBsZXRvIGRlc2RlIGxhIHF1ZXJ5IChwLiBlai4gZGlyZWN0b3JpbykuIEVsIGBsYWJlbGAgZGVsIGNoaXAgcHVlZGUgc2VyXG4gICAgICogZGlzdGludG8gKGVqLiBcIllvXCIpOyBwYXJhIGF2YXRhci9pbmljaWFsZXMgdXNhciBlc3RlIGNhbXBvLCBpZ3VhbCBxdWUgZW4gbGEgZmlsYSBkZWwgbW9kYWwuXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZyB8IG51bGxcbiAgICAvKiogRGlyZWN0b3JpbyBkZSB1c3VhcmlvcyAodXNlcnNEaXJlY3RvcnkpICovXG4gICAgcGljdHVyZT86IHN0cmluZyB8IG51bGxcbiAgICBwb3NpdGlvbk5hbWU/OiBzdHJpbmcgfCBudWxsXG4gICAgZW1haWw/OiBzdHJpbmcgfCBudWxsXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25CcmVhZGNydW1iID0ge1xuICAvKiogQ2FudGlkYWQgZGUgaXRlbXMgcmVsYWNpb25hZG9zIChwLmVqLiBcIjEzIHByb3llY3Rvc1wiIGVuIHVuIGNsaWVudCkgKi9cbiAgY291bnQ/OiBudW1iZXJcbiAgLyoqIEV0aXF1ZXRhIGRlbCBjb250ZW8geWEgdHJhZHVjaWRhIChwLmVqLiBcInByb3llY3Rvc1wiKSAqL1xuICBjb3VudExhYmVsPzogc3RyaW5nXG4gIC8qKiBFbnRpZGFkIHBhZHJlIChwLmVqLiBub21icmUgZGVsIGNsaWVudCBkZWwgcHJvamVjdCkgKi9cbiAgcGFyZW50Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW50aW9uSXRlbSA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZVxuICAvKiogVGV4dG8gcHJpbmNpcGFsIG1vc3RyYWRvIGVuIGxhIGZpbGEgKi9cbiAgcHJpbWFyeTogc3RyaW5nXG4gIC8qKiBSYW5nbyBkZWwgcXVlcnkgYnVzY2FkbyBkZW50cm8gZGUgYHByaW1hcnlgIHBhcmEgcmVzYWx0YXIgKi9cbiAgcHJpbWFyeUhpZ2hsaWdodD86IHsgc3RhcnQ6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXIgfVxuICAvKiogRGF0b3Mgc2VjdW5kYXJpb3Mgb3BjaW9uYWxlcyBwYXJhIGVsIGJyZWFkY3J1bWIgKi9cbiAgYnJlYWRjcnVtYj86IENvbnRleHRNZW50aW9uQnJlYWRjcnVtYlxuICAvKiogTWV0YWRhdGEgb3JpZ2luYWwgcGFyYSByZWNvbnN0cnVpciBsYSBtZW50aW9uIGFsIHNlbGVjY2lvbmFyICovXG4gIHJhdzogQ29udGV4dE1lbnRpb25bJ21ldGFkYXRhJ10gJiB7IGlkOiBzdHJpbmcgfCBudW1iZXI7IG5hbWU6IHN0cmluZyB9XG59XG5cbi8qKiBFbnRpZGFkIGNvbnRleHR1YWwgbWVuY2lvbmFkYSAoZm9ybWEgbcOtbmltYSBxdWUgdmlhamEgZW4gbWV0YWRhdGEpICovXG5leHBvcnQgdHlwZSBDb250ZXh0TWVzc2FnZUVudGl0eSA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBCbG9xdWUgYGNvbnRleHRfbWVzc2FnZWAgcXVlIHZpYWphIGVuIGxhIG1ldGFkYXRhIGRlbCBvcmNoZXN0cmF0b3IgeVxuICogc2UgcGVyc2lzdGUgcG9yLW1lbnNhamUuIFNvbG8gdml2ZSBlbiBlbCBtZW5zYWplIGRvbmRlIHNlIGFncmVnw7MgbGFcbiAqIG1lbmNpw7NuOiBubyBcInBpc2FcIiBlbCBjb250ZXh0byBnbG9iYWwgbmkgc2UgcHJvcGFnYSBhIG90cm9zIHR1cm5vcy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29udGV4dE1lc3NhZ2UgPSB7XG4gIGNsaWVudD86IENvbnRleHRNZXNzYWdlRW50aXR5W11cbiAgcHJvamVjdD86IENvbnRleHRNZXNzYWdlRW50aXR5W11cbiAgdGFzaz86IENvbnRleHRNZXNzYWdlRW50aXR5W11cbiAgdXNlcj86IENvbnRleHRNZXNzYWdlRW50aXR5W11cbiAgbWNwPzogQ29udGV4dE1lc3NhZ2VFbnRpdHlbXVxufVxuXG4vKipcbiAqIEFncnVwYSBsYXMgbWVudGlvbnMgZGVsIGVkaXRvciBwb3IgdGlwbyB5IGRlamEgZWwgc2hhcGUgbcOtbmltbyAoaWQgKyBuYW1lKVxuICogcXVlIGVzcGVyYSBlbCBiYWNrZW5kLiBEZXZ1ZWx2ZSBgdW5kZWZpbmVkYCBjdWFuZG8gbm8gaGF5IG1lbnRpb25zIGFzw60gZWxcbiAqIGNhbGxlciBwdWVkZSBkZWNpZGlyIHNpIGluY2x1aXIgbyBubyBsYSBrZXkgZW4gZWwgcGF5bG9hZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQ29udGV4dE1lc3NhZ2UgPSAobWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdIHwgbnVsbCk6IENvbnRleHRNZXNzYWdlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFtZW50aW9ucyB8fCAhQXJyYXkuaXNBcnJheShtZW50aW9ucykgfHwgbWVudGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkXG4gIGNvbnN0IHJlc3VsdDogQ29udGV4dE1lc3NhZ2UgPSB7fVxuICBtZW50aW9ucy5mb3JFYWNoKG0gPT4ge1xuICAgIGNvbnN0IGVudGl0eTogQ29udGV4dE1lc3NhZ2VFbnRpdHkgPSB7IGlkOiBtLmlkLCBuYW1lOiBtLmxhYmVsIH1cbiAgICBpZiAoIXJlc3VsdFttLnR5cGVdKSByZXN1bHRbbS50eXBlXSA9IFtdXG4gICAgY29uc3QgYnVja2V0ID0gcmVzdWx0W20udHlwZV0hXG4gICAgaWYgKCFidWNrZXQuc29tZShlID0+IFN0cmluZyhlLmlkKSA9PT0gU3RyaW5nKGVudGl0eS5pZCkpKSBidWNrZXQucHVzaChlbnRpdHkpXG4gIH0pXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBDbGFzZSBDU1Mva2V5IGRlIGVzdGlsb3MgY29tcGFydGlkYSBlbnRyZSBlbCBjaGlwIGRlbCBlZGl0b3IgeSBlbCBjaGlwXG4gKiByZW5kZXJlYWRvIGVuIGxvcyBtZW5zYWplcyAoY2hhdCBhY3R1YWwgKyBoaXN0b3JpYWwpLiBTaXJ2ZSBjb21vIHB1bnRvXG4gKiDDum5pY28gcGFyYSBxdWUgZWwgdmlzdWFsIHNlIG1hbnRlbmdhIGNvbnNpc3RlbnRlIGVuIGN1YWxxdWllciBsdWdhci5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTID0gJ21haWEtY29udGV4dC1tZW50aW9uLWNoaXAnXG4iXSwibWFwcGluZ3MiOiJBQWtEQTs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1BLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlDLFFBQWtDLEVBQWlDO0VBQ3JHLElBQUksQ0FBQ0EsUUFBUSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLENBQUMsSUFBSUEsUUFBUSxDQUFDRyxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU9DLFNBQVM7RUFDcEYsSUFBTUMsTUFBc0IsR0FBRyxDQUFDLENBQUM7RUFDakNMLFFBQVEsQ0FBQ00sT0FBTyxDQUFDLFVBQUFDLENBQUMsRUFBSTtJQUNwQixJQUFNQyxNQUE0QixHQUFHO01BQUVDLEVBQUUsRUFBRUYsQ0FBQyxDQUFDRSxFQUFFO01BQUVDLElBQUksRUFBRUgsQ0FBQyxDQUFDSTtJQUFNLENBQUM7SUFDaEUsSUFBSSxDQUFDTixNQUFNLENBQUNFLENBQUMsQ0FBQ0ssSUFBSSxDQUFDLEVBQUVQLE1BQU0sQ0FBQ0UsQ0FBQyxDQUFDSyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBQ3hDLElBQU1DLE1BQU0sR0FBR1IsTUFBTSxDQUFDRSxDQUFDLENBQUNLLElBQUksQ0FBRTtJQUM5QixJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLFVBQUFDLENBQUM7TUFBQSxPQUFJQyxNQUFNLENBQUNELENBQUMsQ0FBQ04sRUFBRSxDQUFDLEtBQUtPLE1BQU0sQ0FBQ1IsTUFBTSxDQUFDQyxFQUFFLENBQUM7SUFBQSxFQUFDLEVBQUVJLE1BQU0sQ0FBQ0ksSUFBSSxDQUFDVCxNQUFNLENBQUM7RUFDaEYsQ0FBQyxDQUFDO0VBQ0YsT0FBT0gsTUFBTTtBQUNmLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTWEsMEJBQTBCLEdBQUcsMkJBQTJCIiwiaWdub3JlTGlzdCI6W119
|
package/lib/types/global.d.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2dsb2JhbC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSB2YXJzLW9uLXRvcCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdmFyICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFVzZXJQcm9wcyB9IGZyb20gJy4vdXNlclR5cGUuZCdcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IGV4dGVuZHMgV2luZG93IHtcbiAgICBsYW5nOiBzdHJpbmdcbiAgICB1c2VySW5mbzogVXNlclByb3BzXG4gICAgQXBwY3VlczogYW55XG4gICAgbWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzPzogc3RyaW5nXG4gICAgbWFpYUNoYXRBaUFjY2Vzcz86IHN0cmluZ1xuICAgIE1BSUFfUFJPSkVDVF9TVU1NQVJZX0ZFQVRVUkVfQUNDRVNTPzogc3RyaW5nIHwgYm9vbGVhblxuICAgIE1BSUFfVEFTS19QQU5FTF9BQ0NFU1M/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSPzogc3RyaW5nIHwgYm9vbGVhblxuICAgICRfc2M6IGFueVxuICAgIG9wZW5QYW5lbD86ICh0YXNrSWQ6IHN0cmluZyB8IG51bWJlciwgc2VjdGlvbjogc3RyaW5nKSA9PiB2b2lkXG4gICAgbmV3UHJvamVjdERhc2hib2FyZD86IHtcbiAgICAgIGFkZEV4aXN0aW5nVGFza1RvRGFzaGJvYXJkOiAodGFza0lkczogbnVtYmVyW10pID0+IHZvaWRcbiAgICAgIGVkaXRFeGlzdGluZ1Rhc2tJbkRhc2hib2FyZDogKHRhc2tJZHM6IG51bWJlcltdKSA9PiB2b2lkXG4gICAgICBkZWxldGVFeGlzdGluZ1Rhc2tGcm9tRGFzaGJvYXJkOiAodGFza0lkczogbnVtYmVyW10pID0+IHZvaWRcbiAgICB9XG4gICAgdGFza1BhbmVsPzoge1xuICAgICAgdGFza0lkOiBzdHJpbmdcbiAgICAgIHJlZmV0Y2hUYXNrOiAoKSA9PiB2b2lkXG4gICAgfVxuICB9XG4gIGludGVyZmFjZSBXaW5kb3dFdmVudE1hcCB7XG4gICAgLy8gZW5hYmxlZCB3aW5kb3cgZXZlbnQgbGlzdGVuZXIgJ2xvY2F0aW9uY2hhbmdlJ1xuICAgIGxvY2F0aW9uY2hhbmdlOiBDdXN0b21FdmVudFxuICB9XG5cbiAgdHlwZSBUcmFuc2xhdGlvbkZ1bmN0aW9uID0gKGtleTogc3RyaW5nKSA9PiBzdHJpbmdcbiAgdmFyICRfY2E6IHtcbiAgICBnZXRDb29raWVBVFM6ICgpID0+IHN0cmluZ1xuICAgIHJlZnJlc2hUb2tlbjogKCkgPT4gUHJvbWlzZTx2b2lkPlxuICB9XG4gIHZhciAkX3NjOiBhbnlcbiAgZGVjbGFyZSB2YXIgcHJvY2VzczogTm9kZUpTLlByb2Nlc3NcbiAgZGVjbGFyZSB2YXIgbWFpYUFnZW50UG1BY2Nlc3M6IHN0cmluZ1xuICBkZWNsYXJlIHZhciBNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTOiBzdHJpbmdcbiAgZGVjbGFyZSB2YXIgTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTOiBzdHJpbmdcbiAgZGVjbGFyZSB2YXIgTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSOiBzdHJpbmdcbiAgZGVjbGFyZSB2YXIgbWFpYVByb2plY3RTdW1tYXJ5QWNjZXNzOiBzdHJpbmdcbiAgZGVjbGFyZSB2YXIgbWFpYUZhcXNBY2Nlc3M6IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export var ACTION_CATEGORY_MAP = {
|
|
2
|
+
tasks: {
|
|
3
|
+
icon: '📋',
|
|
4
|
+
labelKey: 'homeMenu.action.categories.tasks'
|
|
5
|
+
},
|
|
6
|
+
collaborators: {
|
|
7
|
+
icon: '👥',
|
|
8
|
+
labelKey: 'homeMenu.action.categories.collaborators'
|
|
9
|
+
},
|
|
10
|
+
labels: {
|
|
11
|
+
icon: '🏷️',
|
|
12
|
+
labelKey: 'homeMenu.action.categories.labels'
|
|
13
|
+
},
|
|
14
|
+
checklists: {
|
|
15
|
+
icon: '☑️',
|
|
16
|
+
labelKey: 'homeMenu.action.categories.checklists'
|
|
17
|
+
},
|
|
18
|
+
deliverables: {
|
|
19
|
+
icon: '📄',
|
|
20
|
+
labelKey: 'homeMenu.action.categories.deliverables'
|
|
21
|
+
},
|
|
22
|
+
reworks: {
|
|
23
|
+
icon: '🔁',
|
|
24
|
+
labelKey: 'homeMenu.action.categories.reworks'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export var getActionCategory = function getActionCategory(key) {
|
|
28
|
+
var _key;
|
|
29
|
+
if (!key) return null;
|
|
30
|
+
return (_key = ACTION_CATEGORY_MAP[key]) !== null && _key !== void 0 ? _key : null;
|
|
31
|
+
};
|
|
32
|
+
export var ACTION_CATEGORY_ORDER = ['tasks', 'collaborators', 'labels', 'checklists', 'deliverables', 'reworks'];
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1RJT05fQ0FURUdPUllfTUFQIiwidGFza3MiLCJpY29uIiwibGFiZWxLZXkiLCJjb2xsYWJvcmF0b3JzIiwibGFiZWxzIiwiY2hlY2tsaXN0cyIsImRlbGl2ZXJhYmxlcyIsInJld29ya3MiLCJnZXRBY3Rpb25DYXRlZ29yeSIsImtleSIsIl9rZXkiLCJBQ1RJT05fQ0FURUdPUllfT1JERVIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWN0aW9uQ2F0ZWdvcnlNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uQ2F0ZWdvcnlLZXkgfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5cbnR5cGUgQ2F0ZWdvcnlEZWYgPSB7XG4gIGljb246IHN0cmluZ1xuICBsYWJlbEtleTogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBBQ1RJT05fQ0FURUdPUllfTUFQOiBSZWNvcmQ8QWN0aW9uQ2F0ZWdvcnlLZXksIENhdGVnb3J5RGVmPiA9IHtcbiAgdGFza3M6IHsgaWNvbjogJ/Cfk4snLCBsYWJlbEtleTogJ2hvbWVNZW51LmFjdGlvbi5jYXRlZ29yaWVzLnRhc2tzJyB9LFxuICBjb2xsYWJvcmF0b3JzOiB7IGljb246ICfwn5GlJywgbGFiZWxLZXk6ICdob21lTWVudS5hY3Rpb24uY2F0ZWdvcmllcy5jb2xsYWJvcmF0b3JzJyB9LFxuICBsYWJlbHM6IHsgaWNvbjogJ/Cfj7fvuI8nLCBsYWJlbEtleTogJ2hvbWVNZW51LmFjdGlvbi5jYXRlZ29yaWVzLmxhYmVscycgfSxcbiAgY2hlY2tsaXN0czogeyBpY29uOiAn4piR77iPJywgbGFiZWxLZXk6ICdob21lTWVudS5hY3Rpb24uY2F0ZWdvcmllcy5jaGVja2xpc3RzJyB9LFxuICBkZWxpdmVyYWJsZXM6IHsgaWNvbjogJ/Cfk4QnLCBsYWJlbEtleTogJ2hvbWVNZW51LmFjdGlvbi5jYXRlZ29yaWVzLmRlbGl2ZXJhYmxlcycgfSxcbiAgcmV3b3JrczogeyBpY29uOiAn8J+UgScsIGxhYmVsS2V5OiAnaG9tZU1lbnUuYWN0aW9uLmNhdGVnb3JpZXMucmV3b3JrcycgfSxcbn1cblxuZXhwb3J0IGNvbnN0IGdldEFjdGlvbkNhdGVnb3J5ID0gKGtleT86IEFjdGlvbkNhdGVnb3J5S2V5IHwgc3RyaW5nIHwgbnVsbCk6IENhdGVnb3J5RGVmIHwgbnVsbCA9PiB7XG4gIGlmICgha2V5KSByZXR1cm4gbnVsbFxuICByZXR1cm4gKEFDVElPTl9DQVRFR09SWV9NQVAgYXMgUmVjb3JkPHN0cmluZywgQ2F0ZWdvcnlEZWY+KVtrZXldID8/IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IEFDVElPTl9DQVRFR09SWV9PUkRFUjogQWN0aW9uQ2F0ZWdvcnlLZXlbXSA9IFtcbiAgJ3Rhc2tzJyxcbiAgJ2NvbGxhYm9yYXRvcnMnLFxuICAnbGFiZWxzJyxcbiAgJ2NoZWNrbGlzdHMnLFxuICAnZGVsaXZlcmFibGVzJyxcbiAgJ3Jld29ya3MnLFxuXVxuIl0sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLElBQU1BLG1CQUEyRCxHQUFHO0VBQ3pFQyxLQUFLLEVBQUU7SUFBRUMsSUFBSSxFQUFFLElBQUk7SUFBRUMsUUFBUSxFQUFFO0VBQW1DLENBQUM7RUFDbkVDLGFBQWEsRUFBRTtJQUFFRixJQUFJLEVBQUUsSUFBSTtJQUFFQyxRQUFRLEVBQUU7RUFBMkMsQ0FBQztFQUNuRkUsTUFBTSxFQUFFO0lBQUVILElBQUksRUFBRSxLQUFLO0lBQUVDLFFBQVEsRUFBRTtFQUFvQyxDQUFDO0VBQ3RFRyxVQUFVLEVBQUU7SUFBRUosSUFBSSxFQUFFLElBQUk7SUFBRUMsUUFBUSxFQUFFO0VBQXdDLENBQUM7RUFDN0VJLFlBQVksRUFBRTtJQUFFTCxJQUFJLEVBQUUsSUFBSTtJQUFFQyxRQUFRLEVBQUU7RUFBMEMsQ0FBQztFQUNqRkssT0FBTyxFQUFFO0lBQUVOLElBQUksRUFBRSxJQUFJO0lBQUVDLFFBQVEsRUFBRTtFQUFxQztBQUN4RSxDQUFDO0FBRUQsT0FBTyxJQUFNTSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxHQUF1QyxFQUF5QjtFQUFBLElBQUFDLElBQUE7RUFDaEcsSUFBSSxDQUFDRCxHQUFHLEVBQUUsT0FBTyxJQUFJO0VBQ3JCLFFBQUFDLElBQUEsR0FBUVgsbUJBQW1CLENBQWlDVSxHQUFHLENBQUMsY0FBQUMsSUFBQSxjQUFBQSxJQUFBLEdBQUksSUFBSTtBQUMxRSxDQUFDO0FBRUQsT0FBTyxJQUFNQyxxQkFBMEMsR0FBRyxDQUN4RCxPQUFPLEVBQ1AsZUFBZSxFQUNmLFFBQVEsRUFDUixZQUFZLEVBQ1osY0FBYyxFQUNkLFNBQVMsQ0FDViIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { ActionSummaryTaskIcon } from '../components/atoms/icons/ActionSummaryTaskIcon';
|
|
5
|
+
import { ActionSummaryMessagesIcon } from '../components/atoms/icons/ActionSummaryMessagesIcon';
|
|
6
|
+
import { ActionCreateSubtaskIcon } from '../components/atoms/icons/ActionCreateSubtaskIcon';
|
|
7
|
+
import { ActionCreateReworkIcon } from '../components/atoms/icons/ActionCreateReworkIcon';
|
|
8
|
+
import { ActionChargeHoursIcon } from '../components/atoms/icons/ActionChargeHoursIcon';
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
/**
|
|
11
|
+
* Catálogo de iconos disponibles para `Action.icon`.
|
|
12
|
+
*
|
|
13
|
+
* Cada key del enum `action_icon` (definido en maia DB) mapea a un componente
|
|
14
|
+
* SVG custom hecho a medida (viewBox 20x20, gradient violet → blue para
|
|
15
|
+
* mantener consistencia con `FaqsIcon`). Si una action trae `icon` con un key
|
|
16
|
+
* no presente en este map, el consumidor debería fallback al icono default.
|
|
17
|
+
*/
|
|
18
|
+
export var ACTION_ICON_MAP = {
|
|
19
|
+
summary_task: ActionSummaryTaskIcon,
|
|
20
|
+
summary_messages: ActionSummaryMessagesIcon,
|
|
21
|
+
charge_hours: ActionChargeHoursIcon,
|
|
22
|
+
create_subtask: ActionCreateSubtaskIcon,
|
|
23
|
+
create_rework: ActionCreateReworkIcon
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Devuelve el componente de icono asociado a la `key`, o `null` si no existe.
|
|
28
|
+
* `null` permite al caller renderizar un fallback (ej. `FaqsIcon`).
|
|
29
|
+
*/
|
|
30
|
+
export var getActionIcon = function getActionIcon(key) {
|
|
31
|
+
var _key;
|
|
32
|
+
if (!key) return null;
|
|
33
|
+
return (_key = ACTION_ICON_MAP[key]) !== null && _key !== void 0 ? _key : null;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Helper para renderizar el icono pasándole props de tamaño. Si `key` no está,
|
|
38
|
+
* devuelve `null` y el caller decide qué hacer.
|
|
39
|
+
*/
|
|
40
|
+
export var renderActionIcon = function renderActionIcon(key) {
|
|
41
|
+
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
42
|
+
width: 20,
|
|
43
|
+
height: 20
|
|
44
|
+
};
|
|
45
|
+
var Icon = getActionIcon(key);
|
|
46
|
+
if (!Icon) return null;
|
|
47
|
+
return /*#__PURE__*/_jsx(Icon, _objectSpread({}, props));
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25TdW1tYXJ5VGFza0ljb24iLCJBY3Rpb25TdW1tYXJ5TWVzc2FnZXNJY29uIiwiQWN0aW9uQ3JlYXRlU3VidGFza0ljb24iLCJBY3Rpb25DcmVhdGVSZXdvcmtJY29uIiwiQWN0aW9uQ2hhcmdlSG91cnNJY29uIiwianN4IiwiX2pzeCIsIkFDVElPTl9JQ09OX01BUCIsInN1bW1hcnlfdGFzayIsInN1bW1hcnlfbWVzc2FnZXMiLCJjaGFyZ2VfaG91cnMiLCJjcmVhdGVfc3VidGFzayIsImNyZWF0ZV9yZXdvcmsiLCJnZXRBY3Rpb25JY29uIiwia2V5IiwiX2tleSIsInJlbmRlckFjdGlvbkljb24iLCJwcm9wcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIndpZHRoIiwiaGVpZ2h0IiwiSWNvbiIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWN0aW9uSWNvbk1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFjdGlvblN1bW1hcnlUYXNrSWNvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMvQWN0aW9uU3VtbWFyeVRhc2tJY29uJ1xuaW1wb3J0IHsgQWN0aW9uU3VtbWFyeU1lc3NhZ2VzSWNvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMvQWN0aW9uU3VtbWFyeU1lc3NhZ2VzSWNvbidcbmltcG9ydCB7IEFjdGlvbkNyZWF0ZVN1YnRhc2tJY29uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9pY29ucy9BY3Rpb25DcmVhdGVTdWJ0YXNrSWNvbidcbmltcG9ydCB7IEFjdGlvbkNyZWF0ZVJld29ya0ljb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2ljb25zL0FjdGlvbkNyZWF0ZVJld29ya0ljb24nXG5pbXBvcnQgeyBBY3Rpb25DaGFyZ2VIb3Vyc0ljb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL2ljb25zL0FjdGlvbkNoYXJnZUhvdXJzSWNvbidcbmltcG9ydCB0eXBlIHsgQWN0aW9uSWNvbktleSB9IGZyb20gJy4uL3R5cGVzL0FjdGlvbidcblxudHlwZSBJY29uUHJvcHMgPSB7XG4gIHdpZHRoPzogbnVtYmVyXG4gIGhlaWdodD86IG51bWJlclxufVxuXG50eXBlIEljb25Db21wb25lbnQgPSBDb21wb25lbnRUeXBlPEljb25Qcm9wcz5cblxuLyoqXG4gKiBDYXTDoWxvZ28gZGUgaWNvbm9zIGRpc3BvbmlibGVzIHBhcmEgYEFjdGlvbi5pY29uYC5cbiAqXG4gKiBDYWRhIGtleSBkZWwgZW51bSBgYWN0aW9uX2ljb25gIChkZWZpbmlkbyBlbiBtYWlhIERCKSBtYXBlYSBhIHVuIGNvbXBvbmVudGVcbiAqIFNWRyBjdXN0b20gaGVjaG8gYSBtZWRpZGEgKHZpZXdCb3ggMjB4MjAsIGdyYWRpZW50IHZpb2xldCDihpIgYmx1ZSBwYXJhXG4gKiBtYW50ZW5lciBjb25zaXN0ZW5jaWEgY29uIGBGYXFzSWNvbmApLiBTaSB1bmEgYWN0aW9uIHRyYWUgYGljb25gIGNvbiB1biBrZXlcbiAqIG5vIHByZXNlbnRlIGVuIGVzdGUgbWFwLCBlbCBjb25zdW1pZG9yIGRlYmVyw61hIGZhbGxiYWNrIGFsIGljb25vIGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBBQ1RJT05fSUNPTl9NQVA6IFJlY29yZDxBY3Rpb25JY29uS2V5LCBJY29uQ29tcG9uZW50PiA9IHtcbiAgc3VtbWFyeV90YXNrOiBBY3Rpb25TdW1tYXJ5VGFza0ljb24sXG4gIHN1bW1hcnlfbWVzc2FnZXM6IEFjdGlvblN1bW1hcnlNZXNzYWdlc0ljb24sXG4gIGNoYXJnZV9ob3VyczogQWN0aW9uQ2hhcmdlSG91cnNJY29uLFxuICBjcmVhdGVfc3VidGFzazogQWN0aW9uQ3JlYXRlU3VidGFza0ljb24sXG4gIGNyZWF0ZV9yZXdvcms6IEFjdGlvbkNyZWF0ZVJld29ya0ljb24sXG59XG5cbi8qKlxuICogRGV2dWVsdmUgZWwgY29tcG9uZW50ZSBkZSBpY29ubyBhc29jaWFkbyBhIGxhIGBrZXlgLCBvIGBudWxsYCBzaSBubyBleGlzdGUuXG4gKiBgbnVsbGAgcGVybWl0ZSBhbCBjYWxsZXIgcmVuZGVyaXphciB1biBmYWxsYmFjayAoZWouIGBGYXFzSWNvbmApLlxuICovXG5leHBvcnQgY29uc3QgZ2V0QWN0aW9uSWNvbiA9IChrZXk/OiBBY3Rpb25JY29uS2V5IHwgc3RyaW5nIHwgbnVsbCk6IEljb25Db21wb25lbnQgfCBudWxsID0+IHtcbiAgaWYgKCFrZXkpIHJldHVybiBudWxsXG4gIHJldHVybiAoQUNUSU9OX0lDT05fTUFQIGFzIFJlY29yZDxzdHJpbmcsIEljb25Db21wb25lbnQ+KVtrZXldID8/IG51bGxcbn1cblxuLyoqXG4gKiBIZWxwZXIgcGFyYSByZW5kZXJpemFyIGVsIGljb25vIHBhc8OhbmRvbGUgcHJvcHMgZGUgdGFtYcOxby4gU2kgYGtleWAgbm8gZXN0w6EsXG4gKiBkZXZ1ZWx2ZSBgbnVsbGAgeSBlbCBjYWxsZXIgZGVjaWRlIHF1w6kgaGFjZXIuXG4gKi9cbmV4cG9ydCBjb25zdCByZW5kZXJBY3Rpb25JY29uID0gKFxuICBrZXk/OiBBY3Rpb25JY29uS2V5IHwgc3RyaW5nIHwgbnVsbCxcbiAgcHJvcHM6IEljb25Qcm9wcyA9IHsgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwIH1cbik6IFJlYWN0RWxlbWVudCB8IG51bGwgPT4ge1xuICBjb25zdCBJY29uID0gZ2V0QWN0aW9uSWNvbihrZXkpXG4gIGlmICghSWNvbikgcmV0dXJuIG51bGxcbiAgcmV0dXJuIDxJY29uIHsuLi5wcm9wc30gLz5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBU0EscUJBQXFCLFFBQVEsaURBQWlEO0FBQ3ZGLFNBQVNDLHlCQUF5QixRQUFRLHFEQUFxRDtBQUMvRixTQUFTQyx1QkFBdUIsUUFBUSxtREFBbUQ7QUFDM0YsU0FBU0Msc0JBQXNCLFFBQVEsa0RBQWtEO0FBQ3pGLFNBQVNDLHFCQUFxQixRQUFRLGlEQUFpRDtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQVV2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxlQUFxRCxHQUFHO0VBQ25FQyxZQUFZLEVBQUVSLHFCQUFxQjtFQUNuQ1MsZ0JBQWdCLEVBQUVSLHlCQUF5QjtFQUMzQ1MsWUFBWSxFQUFFTixxQkFBcUI7RUFDbkNPLGNBQWMsRUFBRVQsdUJBQXVCO0VBQ3ZDVSxhQUFhLEVBQUVUO0FBQ2pCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1VLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsR0FBbUMsRUFBMkI7RUFBQSxJQUFBQyxJQUFBO0VBQzFGLElBQUksQ0FBQ0QsR0FBRyxFQUFFLE9BQU8sSUFBSTtFQUNyQixRQUFBQyxJQUFBLEdBQVFSLGVBQWUsQ0FBbUNPLEdBQUcsQ0FBQyxjQUFBQyxJQUFBLGNBQUFBLElBQUEsR0FBSSxJQUFJO0FBQ3hFLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQzNCRixHQUFtQyxFQUVYO0VBQUEsSUFEeEJHLEtBQWdCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHO0lBQUVHLEtBQUssRUFBRSxFQUFFO0lBQUVDLE1BQU0sRUFBRTtFQUFHLENBQUM7RUFFNUMsSUFBTUMsSUFBSSxHQUFHVixhQUFhLENBQUNDLEdBQUcsQ0FBQztFQUMvQixJQUFJLENBQUNTLElBQUksRUFBRSxPQUFPLElBQUk7RUFDdEIsb0JBQU9qQixJQUFBLENBQUNpQixJQUFJLEVBQUFDLGFBQUEsS0FBS1AsS0FBSyxDQUFHLENBQUM7QUFDNUIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { hasSlashCommandMarker, serializeSlashCommand } from './slashCommandMarker';
|
|
2
|
+
/** Convierte el texto plano de una FUA / slash-command enviada a marcador para renderizar el chip en chat. */
|
|
3
|
+
export var formatQuickActionMessageForDisplay = function formatQuickActionMessageForDisplay(message, options) {
|
|
4
|
+
var _options$fuaId;
|
|
5
|
+
var actionId = (_options$fuaId = options === null || options === void 0 ? void 0 : options.fuaId) !== null && _options$fuaId !== void 0 ? _options$fuaId : options === null || options === void 0 ? void 0 : options.scId;
|
|
6
|
+
if (!actionId || message == null || typeof message !== 'string') return message !== null && message !== void 0 ? message : '';
|
|
7
|
+
if (!message.trim()) return message;
|
|
8
|
+
if (hasSlashCommandMarker(message)) return message;
|
|
9
|
+
var label = message.trim().replace(/^\//, '');
|
|
10
|
+
if (!label) return message;
|
|
11
|
+
return serializeSlashCommand({
|
|
12
|
+
id: actionId,
|
|
13
|
+
label: label
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJoYXNTbGFzaENvbW1hbmRNYXJrZXIiLCJzZXJpYWxpemVTbGFzaENvbW1hbmQiLCJmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5IiwibWVzc2FnZSIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmdWFJZCIsImFjdGlvbklkIiwiZnVhSWQiLCJzY0lkIiwidHJpbSIsImxhYmVsIiwicmVwbGFjZSIsImlkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Zvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNTbGFzaENvbW1hbmRNYXJrZXIsIHNlcmlhbGl6ZVNsYXNoQ29tbWFuZCB9IGZyb20gJy4vc2xhc2hDb21tYW5kTWFya2VyJ1xuXG50eXBlIEZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZU9wdGlvbnMgPSB7XG4gIGZ1YUlkPzogc3RyaW5nXG4gIHNjSWQ/OiBzdHJpbmdcbn1cblxuLyoqIENvbnZpZXJ0ZSBlbCB0ZXh0byBwbGFubyBkZSB1bmEgRlVBIC8gc2xhc2gtY29tbWFuZCBlbnZpYWRhIGEgbWFyY2Fkb3IgcGFyYSByZW5kZXJpemFyIGVsIGNoaXAgZW4gY2hhdC4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRRdWlja0FjdGlvbk1lc3NhZ2VGb3JEaXNwbGF5ID0gKFxuICBtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCxcbiAgb3B0aW9ucz86IEZvcm1hdFF1aWNrQWN0aW9uTWVzc2FnZU9wdGlvbnNcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFjdGlvbklkID0gb3B0aW9ucz8uZnVhSWQgPz8gb3B0aW9ucz8uc2NJZFxuICBpZiAoIWFjdGlvbklkIHx8IG1lc3NhZ2UgPT0gbnVsbCB8fCB0eXBlb2YgbWVzc2FnZSAhPT0gJ3N0cmluZycpIHJldHVybiBtZXNzYWdlID8/ICcnXG4gIGlmICghbWVzc2FnZS50cmltKCkpIHJldHVybiBtZXNzYWdlXG4gIGlmIChoYXNTbGFzaENvbW1hbmRNYXJrZXIobWVzc2FnZSkpIHJldHVybiBtZXNzYWdlXG5cbiAgY29uc3QgbGFiZWwgPSBtZXNzYWdlLnRyaW0oKS5yZXBsYWNlKC9eXFwvLywgJycpXG4gIGlmICghbGFiZWwpIHJldHVybiBtZXNzYWdlXG5cbiAgcmV0dXJuIHNlcmlhbGl6ZVNsYXNoQ29tbWFuZCh7IGlkOiBhY3Rpb25JZCwgbGFiZWwgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EscUJBQXFCLEVBQUVDLHFCQUFxQixRQUFRLHNCQUFzQjtBQU9uRjtBQUNBLE9BQU8sSUFBTUMsa0NBQWtDLEdBQUcsU0FBckNBLGtDQUFrQ0EsQ0FDN0NDLE9BQXVCLEVBQ3ZCQyxPQUF5QyxFQUM5QjtFQUFBLElBQUFDLGNBQUE7RUFDWCxJQUFNQyxRQUFRLElBQUFELGNBQUEsR0FBR0QsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVHLEtBQUssY0FBQUYsY0FBQSxjQUFBQSxjQUFBLEdBQUlELE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFSSxJQUFJO0VBQ2hELElBQUksQ0FBQ0YsUUFBUSxJQUFJSCxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU9BLE9BQU8sS0FBSyxRQUFRLEVBQUUsT0FBT0EsT0FBTyxhQUFQQSxPQUFPLGNBQVBBLE9BQU8sR0FBSSxFQUFFO0VBQ3JGLElBQUksQ0FBQ0EsT0FBTyxDQUFDTSxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU9OLE9BQU87RUFDbkMsSUFBSUgscUJBQXFCLENBQUNHLE9BQU8sQ0FBQyxFQUFFLE9BQU9BLE9BQU87RUFFbEQsSUFBTU8sS0FBSyxHQUFHUCxPQUFPLENBQUNNLElBQUksQ0FBQyxDQUFDLENBQUNFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0VBQy9DLElBQUksQ0FBQ0QsS0FBSyxFQUFFLE9BQU9QLE9BQU87RUFFMUIsT0FBT0YscUJBQXFCLENBQUM7SUFBRVcsRUFBRSxFQUFFTixRQUFRO0lBQUVJLEtBQUssRUFBTEE7RUFBTSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var mapBackendLang = function mapBackendLang(i18nLang) {
|
|
2
|
+
if (!i18nLang) return undefined;
|
|
3
|
+
var normalized = i18nLang.toLowerCase().split('-')[0];
|
|
4
|
+
if (normalized === 'es' || normalized === 'en') return normalized;
|
|
5
|
+
if (normalized === 'br' || normalized === 'pt') return 'pt';
|
|
6
|
+
return undefined;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBCYWNrZW5kTGFuZyIsImkxOG5MYW5nIiwidW5kZWZpbmVkIiwibm9ybWFsaXplZCIsInRvTG93ZXJDYXNlIiwic3BsaXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvbWFwQmFja2VuZExhbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IG1hcEJhY2tlbmRMYW5nID0gKGkxOG5MYW5nPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpMThuTGFuZykgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBub3JtYWxpemVkID0gaTE4bkxhbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnLScpWzBdXG4gIGlmIChub3JtYWxpemVkID09PSAnZXMnIHx8IG5vcm1hbGl6ZWQgPT09ICdlbicpIHJldHVybiBub3JtYWxpemVkXG4gIGlmIChub3JtYWxpemVkID09PSAnYnInIHx8IG5vcm1hbGl6ZWQgPT09ICdwdCcpIHJldHVybiAncHQnXG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFNQSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLFFBQWlCLEVBQXlCO0VBQ3ZFLElBQUksQ0FBQ0EsUUFBUSxFQUFFLE9BQU9DLFNBQVM7RUFDL0IsSUFBTUMsVUFBVSxHQUFHRixRQUFRLENBQUNHLFdBQVcsQ0FBQyxDQUFDLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDdkQsSUFBSUYsVUFBVSxLQUFLLElBQUksSUFBSUEsVUFBVSxLQUFLLElBQUksRUFBRSxPQUFPQSxVQUFVO0VBQ2pFLElBQUlBLFVBQVUsS0FBSyxJQUFJLElBQUlBLFVBQVUsS0FBSyxJQUFJLEVBQUUsT0FBTyxJQUFJO0VBQzNELE9BQU9ELFNBQVM7QUFDbEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -2,6 +2,8 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
3
|
import { CONTEXT_MENTION_CHIP_CLASS } from '../types/contextMention';
|
|
4
4
|
import { MENTION_CHIP_COLORS, MENTION_CHIP_NON_TASK_HOVER_BG } from '../components/atoms/ContextMentionChip/ContextMentionChip.styles';
|
|
5
|
+
import { SlashCommandChip } from '../components/atoms/SlashCommandChip';
|
|
6
|
+
import { SLASH_COMMAND_MARKER_REGEX } from './slashCommandMarker';
|
|
5
7
|
import { VIOLET_IA_COLORS } from '../styles/config';
|
|
6
8
|
import { SCTaskLink } from '../components/molecules/ChatAIMessages/newStyles';
|
|
7
9
|
import { getContextMentionIcon } from './contextMentionIcons';
|
|
@@ -29,6 +31,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
29
31
|
export var MENTION_MARKER_REGEX = /\[\[mention:(client|project|task|user|mcp):([^|\]]+)\|([\s\S]*?)\]\]/g;
|
|
30
32
|
export var MAIA_MENTION_PROTOCOL = 'maia-mention://';
|
|
31
33
|
var INCOMPLETE_MENTION_MARKER_REGEX = /\[\[mention:[\s\S]*$/;
|
|
34
|
+
var INCOMPLETE_SLASH_MARKER_REGEX = /\[\[slash_command:[^|\]]+\|([\s\S]*)$/;
|
|
32
35
|
var ALLOWED_TYPES = ['client', 'project', 'task', 'user', 'mcp'];
|
|
33
36
|
var parseMentionProtocolHref = function parseMentionProtocolHref(href) {
|
|
34
37
|
var rest = href.slice(MAIA_MENTION_PROTOCOL.length);
|
|
@@ -219,10 +222,17 @@ export var stripMentionMarkers = function stripMentionMarkers(text) {
|
|
|
219
222
|
*/
|
|
220
223
|
export var formatChatListTitleMentions = function formatChatListTitleMentions(text) {
|
|
221
224
|
if (text == null || text === '') return text !== null && text !== void 0 ? text : '';
|
|
222
|
-
var
|
|
225
|
+
var withoutMentions = text.replace(MENTION_MARKER_REGEX, function (_m, _type, _id, label) {
|
|
223
226
|
return normalizeContextMentionLabel(String(label).trim());
|
|
224
227
|
});
|
|
225
|
-
|
|
228
|
+
var slashRegex = new RegExp(SLASH_COMMAND_MARKER_REGEX.source, 'g');
|
|
229
|
+
var withoutSlash = withoutMentions.replace(slashRegex, function (_m, _id, label) {
|
|
230
|
+
return "/".concat(String(label).trim());
|
|
231
|
+
});
|
|
232
|
+
var withoutIncompleteSlash = withoutSlash.replace(INCOMPLETE_SLASH_MARKER_REGEX, function (_m, label) {
|
|
233
|
+
return "/".concat(String(label).trim());
|
|
234
|
+
});
|
|
235
|
+
return withoutIncompleteSlash.replace(INCOMPLETE_MENTION_MARKER_REGEX, '').trim();
|
|
226
236
|
};
|
|
227
237
|
|
|
228
238
|
/** Genera la URL de navegación para un mention según su tipo. */
|
|
@@ -309,37 +319,70 @@ var MentionChip = function MentionChip(_ref7) {
|
|
|
309
319
|
}) : null, !showIcon ? normalizedLabel : null]
|
|
310
320
|
});
|
|
311
321
|
};
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
export var renderTextWithMentions = function renderTextWithMentions(text) {
|
|
319
|
-
if (!text) return [text];
|
|
320
|
-
var out = [];
|
|
321
|
-
var lastIdx = 0;
|
|
322
|
+
export var hasInlineMarkers = function hasInlineMarkers(text) {
|
|
323
|
+
if (!text) return false;
|
|
324
|
+
return text.includes('[[mention:') || text.includes('[[slash_command:');
|
|
325
|
+
};
|
|
326
|
+
var collectInlineMarkers = function collectInlineMarkers(text) {
|
|
327
|
+
var markers = [];
|
|
322
328
|
MENTION_MARKER_REGEX.lastIndex = 0;
|
|
323
|
-
var
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
id = _match2[2],
|
|
331
|
-
label = _match2[3];
|
|
329
|
+
var m = MENTION_MARKER_REGEX.exec(text);
|
|
330
|
+
while (m) {
|
|
331
|
+
var _m2 = m,
|
|
332
|
+
_m3 = _slicedToArray(_m2, 4),
|
|
333
|
+
rawType = _m3[1],
|
|
334
|
+
id = _m3[2],
|
|
335
|
+
label = _m3[3];
|
|
332
336
|
var type = ALLOWED_TYPES.includes(rawType) ? rawType : 'user';
|
|
333
|
-
|
|
337
|
+
markers.push({
|
|
338
|
+
kind: 'mention',
|
|
339
|
+
index: m.index,
|
|
340
|
+
length: m[0].length,
|
|
334
341
|
type: type,
|
|
335
342
|
id: id,
|
|
336
343
|
label: label
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
keyIdx += 1;
|
|
340
|
-
match = MENTION_MARKER_REGEX.exec(text);
|
|
344
|
+
});
|
|
345
|
+
m = MENTION_MARKER_REGEX.exec(text);
|
|
341
346
|
}
|
|
347
|
+
var slashRegex = new RegExp(SLASH_COMMAND_MARKER_REGEX.source, 'g');
|
|
348
|
+
var s = slashRegex.exec(text);
|
|
349
|
+
while (s) {
|
|
350
|
+
markers.push({
|
|
351
|
+
kind: 'slash',
|
|
352
|
+
index: s.index,
|
|
353
|
+
length: s[0].length,
|
|
354
|
+
id: s[1],
|
|
355
|
+
label: s[2]
|
|
356
|
+
});
|
|
357
|
+
s = slashRegex.exec(text);
|
|
358
|
+
}
|
|
359
|
+
return markers.sort(function (a, b) {
|
|
360
|
+
return a.index - b.index;
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
export var renderTextWithMentions = function renderTextWithMentions(text) {
|
|
364
|
+
if (!text) return [text];
|
|
365
|
+
var markers = collectInlineMarkers(text);
|
|
366
|
+
if (markers.length === 0) return [text];
|
|
367
|
+
var out = [];
|
|
368
|
+
var lastIdx = 0;
|
|
369
|
+
markers.forEach(function (marker) {
|
|
370
|
+
if (marker.index > lastIdx) out.push(text.slice(lastIdx, marker.index));
|
|
371
|
+
if (marker.kind === 'mention') {
|
|
372
|
+
out.push(/*#__PURE__*/_jsx(MentionChip, {
|
|
373
|
+
type: marker.type,
|
|
374
|
+
id: marker.id,
|
|
375
|
+
label: marker.label
|
|
376
|
+
}, "mention-".concat(marker.index, "-").concat(marker.type, "-").concat(marker.id)));
|
|
377
|
+
} else {
|
|
378
|
+
out.push(/*#__PURE__*/_jsx(SlashCommandChip, {
|
|
379
|
+
label: marker.label,
|
|
380
|
+
inline: false
|
|
381
|
+
}, "slash-".concat(marker.index, "-").concat(marker.id)));
|
|
382
|
+
}
|
|
383
|
+
lastIdx = marker.index + marker.length;
|
|
384
|
+
});
|
|
342
385
|
if (lastIdx < text.length) out.push(text.slice(lastIdx));
|
|
343
386
|
return out;
|
|
344
387
|
};
|
|
345
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJBTExPV0VEX1RZUEVTIiwicGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmIiwiaHJlZiIsInJlc3QiLCJzbGljZSIsImxlbmd0aCIsInNsYXNoSWR4IiwiaW5kZXhPZiIsInJhd1R5cGUiLCJyYXdJZCIsImlkIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiX3VudXNlZCIsInR5cGUiLCJpbmNsdWRlcyIsInNlcmlhbGl6ZU1lbnRpb24iLCJtZW50aW9uIiwiY29uY2F0IiwibGFiZWwiLCJ0cmFuc2Zvcm1NZW50aW9uTWFya2VycyIsInRleHQiLCJyZXBsYWNlIiwiX20iLCJzYWZlTGFiZWwiLCJTdHJpbmciLCJlbmNvZGVVUklDb21wb25lbnQiLCJtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsIiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJjIiwiam9pbiIsInNwbGl0TGFiZWxGaXJzdFdvcmQiLCJub3JtYWxpemVkIiwidHJpbSIsImZpcnN0V29yZCIsImZpcnN0V2hpdGVzcGFjZUlkeCIsInNlYXJjaCIsImlubGluZU1lbnRpb25Ib3ZlckNzcyIsImlzQ2xpY2thYmxlIiwiYmciLCJTQ0lubGluZU1lbnRpb24iLCJzcGFuIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiX01FTlRJT05fQ0hJUF9DT0xPUlMkIiwiJHR5cGUiLCJ1c2VyIiwiX3JlZjIiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQyIiwiZmciLCJfcmVmMyIsIiRpc0NsaWNrYWJsZSIsIl9yZWY0IiwiU0NJbmxpbmVNZW50aW9uSWNvbiIsIl9yZWY1IiwiJHRhc2siLCJfcmVmNiIsIlNDSW5saW5lTWVudGlvbkljb25Sb3ciLCJTQ0lubGluZU1lbnRpb25Xb3JkIiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0Q29tcGxldGVNYXJrZXJzIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjciLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJyZW5kZXJUZXh0V2l0aE1lbnRpb25zIiwib3V0IiwibGFzdElkeCIsImxhc3RJbmRleCIsIm1hdGNoIiwiZXhlYyIsImtleUlkeCIsImluZGV4IiwicHVzaCIsIl9tYXRjaCIsIl9tYXRjaDIiLCJfc2xpY2VkVG9BcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBTQ1Rhc2tMaW5rIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4vY29udGV4dE1lbnRpb25MYWJlbCdcbmltcG9ydCB7IG9wZW5UYXNrSW5Db3JQYW5lbCB9IGZyb20gJy4vb3BlblRhc2tJbkNvclBhbmVsJ1xuXG4vKipcbiAqIEZvcm1hdG8gZGVsIG1hcmNhZG9yIHF1ZSB2aWFqYSBlbiBlbCB0ZXh0byBkZWwgbWVuc2FqZTpcbiAqICAgW1ttZW50aW9uOjx0eXBlPjo8aWQ+fDxsYWJlbD5dXVxuICpcbiAqIEVsIGVkaXRvciBsbyBlbWl0ZSBjdWFuZG8gc2VyaWFsaXphIGVsIGNvbnRlbnRlZGl0YWJsZSwgZWwgYmFja2VuZCBsb1xuICogcGVyc2lzdGUgdGFsIGN1YWwgeSBhbCByZW5kZXJpemFyIHNlIHRyYW5zZm9ybWEgZW4gdW4gbGluayBtYXJrZG93biBjb25cbiAqIHVuIHByb3RvY29sbyBwcm9waW8gcXVlIGBDdXN0b21MaW5rYCBpbnRlcmNlcHRhIHkgZGlidWphIGNvbW8gc3BhblxuICogZXN0aWxhZG8uXG4gKlxuICogUG9yIHNlcGFyYWRvLCBsYSBtZXRhZGF0YSBgY29udGV4dF9tZXNzYWdlYCBsbGV2YSBsb3MgdmFsb3JlcyBsaW1waW9zXG4gKiAoaWQgKyBuYW1lKSBwYXJhIHF1ZSBlbCBiYWNrZW5kIHB1ZWRhIGludGVycHJldGFyIGxhcyBlbnRpZGFkZXMgc2luXG4gKiB0ZW5lciBxdWUgcGFyc2VhciBlbCB0ZXh0by5cbiAqL1xuLyoqXG4gKiBMYWJlbCBwdWVkZSBjb250ZW5lciBgXWAgKGVqOiBcIltFZHVjYXRlXUJsb2cgUG9zdCAuLi5cIiksIHBvciBlc29cbiAqIHNlIGNhcHR1cmEgZGUgZm9ybWEgbGF6eSBoYXN0YSBlbCBjaWVycmUgcmVhbCBgXV1gLlxuICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjooY2xpZW50fHByb2plY3R8dGFza3x1c2VyfG1jcCk6KFtefFxcXV0rKVxcfChbXFxzXFxTXSo/KVxcXVxcXS9nXG5leHBvcnQgY29uc3QgTUFJQV9NRU5USU9OX1BST1RPQ09MID0gJ21haWEtbWVudGlvbjovLydcbmNvbnN0IElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjpbXFxzXFxTXSokL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IGlubGluZU1lbnRpb25Ib3ZlckNzcyA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaXNDbGlja2FibGU/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGJnID0gdHlwZSA9PT0gJ3Byb2plY3QnID8gVklPTEVUX0lBX0NPTE9SU1sxMDBdIDogTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlVGFza0NsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZVRhc2tLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaXNQcm9qZWN0ID0gdHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IHByb2plY3RVcmwgPSBpc1Byb2plY3QgPyBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGAgOiBudWxsXG4gIGNvbnN0IHNob3dJY29uID0gIWlzUHJvamVjdFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChsYWJlbClcblxuICBjb25zdCBoYW5kbGVQcm9qZWN0Q2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFwcm9qZWN0VXJsKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgd2luZG93Lm9wZW4ocHJvamVjdFVybCwgJ19ibGFuaycpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc1Byb2plY3R9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNQcm9qZWN0ID8gaGFuZGxlUHJvamVjdENsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNQcm9qZWN0ID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNQcm9qZWN0ID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPHNwYW4+e3Jlc3R9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbi8qKiBRdWl0YSBsb3MgbWFya2VycyBkZWwgdGV4dG8sIGRlamFuZG8gc29sbyBgbGFiZWxgLiDDmnRpbCBwYXJhIGZhbGxiYWNrIHBsYW5vLiAqL1xuZXhwb3J0IGNvbnN0IHN0cmlwTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+XG4gIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpKSlcblxuLyoqXG4gKiBUw610dWxvcyBkZSBjb252ZXJzYWNpw7NuIChwLiBlai4gYGxhc3RfcXVlc3Rpb25gIGRlcml2YWRvIGRlbCBwcmltZXIgbWVuc2FqZSkgcHVlZGVuXG4gKiBpbmNsdWlyIGVsIHRleHRvIHNlcmlhbGl6YWRvIGBbW21lbnRpb246dHlwZTppZHxsYWJlbF1dYC4gUGFyYSBzaWRlYmFyIHkgbGlzdGFkb3MsXG4gKiByZWVtcGxhemEgY2FkYSBibG9xdWUgcG9yIGBsYWJlbGAgZW4gdGV4dG8gcGxhbm8sIHNpbiBlbCBtYXJjYWRvciBjcnVkby5cbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgaWYgKHRleHQgPT0gbnVsbCB8fCB0ZXh0ID09PSAnJykgcmV0dXJuIHRleHQgPz8gJydcbiAgY29uc3Qgd2l0aG91dENvbXBsZXRlTWFya2VycyA9IHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT5cbiAgICBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkudHJpbSgpKVxuICApXG4gIHJldHVybiB3aXRob3V0Q29tcGxldGVNYXJrZXJzLnJlcGxhY2UoSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCwgJycpLnRyaW0oKVxufVxuXG4vKiogR2VuZXJhIGxhIFVSTCBkZSBuYXZlZ2FjacOzbiBwYXJhIHVuIG1lbnRpb24gc2Vnw7puIHN1IHRpcG8uICovXG5jb25zdCBnZXRNZW50aW9uVXJsID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpZDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2NsaWVudCc6XG4gICAgICByZXR1cm4gYC9jbGllbnRzLyR7aWR9YFxuICAgIGNhc2UgJ3Byb2plY3QnOlxuICAgICAgcmV0dXJuIGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYFxuICAgIGNhc2UgJ3Rhc2snOlxuICAgICAgcmV0dXJuIGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIG51bGwgLy8gTG9zIHVzZXJzIG5vIHNvbiBjbGlja2VhYmxlc1xuICAgIGNhc2UgJ21jcCc6XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmNvbnN0IE1lbnRpb25DaGlwID0gKHsgdHlwZSwgaWQsIGxhYmVsIH06IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKVxuICBjb25zdCB1cmwgPSBnZXRNZW50aW9uVXJsKHR5cGUsIGlkKVxuICBjb25zdCBpc0NsaWNrYWJsZSA9ICEhdXJsXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCB7IGZpcnN0V29yZCwgcmVzdCB9ID0gc3BsaXRMYWJlbEZpcnN0V29yZChub3JtYWxpemVkTGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzQ2xpY2thYmxlIHx8ICF1cmwpIHJldHVyblxuICAgIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgdHlwZSAhPT0gJ3Rhc2snKSByZXR1cm5cbiAgICBpZiAoZS5rZXkgIT09ICdFbnRlcicgJiYgZS5rZXkgIT09ICcgJykgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDVGFza0xpbmtcbiAgICAgICAgaHJlZj17dXJsID8/ICcjJ31cbiAgICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge25vcm1hbGl6ZWRMYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0lubGluZU1lbnRpb25cbiAgICAgICR0eXBlPXt0eXBlfVxuICAgICAgJGlzQ2xpY2thYmxlPXtpc0NsaWNrYWJsZX1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc0NsaWNrYWJsZSA/IGhhbmRsZUNsaWNrIDogdW5kZWZpbmVkfVxuICAgICAgcm9sZT17aXNDbGlja2FibGUgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc0NsaWNrYWJsZSA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxzcGFuPntyZXN0fTwvc3Bhbj4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IG5vcm1hbGl6ZWRMYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqXG4gKiBTcGxpdGVhIGVsIHRleHRvIHBvciBtYXJrZXJzIHkgZGV2dWVsdmUgdW4gYXJyYXkgZGUgUmVhY3ROb2RlczpcbiAqIHRleHRvIHBsYW5vICsgc3BhbnMgZXN0aWxhZG9zIHBhcmEgY2FkYSBtZW50aW9uLiBSZW5kZXJpemEgZGlyZWN0YW1lbnRlXG4gKiBzaW4gcGFzYXIgcG9yIFN0cmVhbWRvd24gKG5vIHNvcG9ydGEgbWFya2Rvd24gZW4gZXN0ZSBtb2RvKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlclRleHRXaXRoTWVudGlvbnMgPSAodGV4dDogc3RyaW5nKTogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIFt0ZXh0XVxuICBjb25zdCBvdXQ6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPSBbXVxuICBsZXQgbGFzdElkeCA9IDBcbiAgTUVOVElPTl9NQVJLRVJfUkVHRVgubGFzdEluZGV4ID0gMFxuICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIGxldCBrZXlJZHggPSAwXG4gIHdoaWxlIChtYXRjaCkge1xuICAgIGlmIChtYXRjaC5pbmRleCA+IGxhc3RJZHgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCwgbWF0Y2guaW5kZXgpKVxuICAgIGNvbnN0IFssIHJhd1R5cGUsIGlkLCBsYWJlbF0gPSBtYXRjaFxuICAgIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG5cbiAgICBvdXQucHVzaCg8TWVudGlvbkNoaXAga2V5PXtgbWVudGlvbi0ke2tleUlkeH0tJHttYXRjaC5pbmRleH1gfSB0eXBlPXt0eXBlfSBpZD17aWR9IGxhYmVsPXtsYWJlbH0gLz4pXG5cbiAgICBsYXN0SWR4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhcbiAgICBrZXlJZHggKz0gMVxuICAgIG1hdGNoID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB9XG4gIGlmIChsYXN0SWR4IDwgdGV4dC5sZW5ndGgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCkpXG4gIHJldHVybiBvdXRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUE0Q0MsMEJBQTBCLFFBQVEseUJBQXlCO0FBQ3ZHLFNBQ0VDLG1CQUFtQixFQUNuQkMsOEJBQThCLFFBQ3pCLGtFQUFrRTtBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIsUUFBUSx1QkFBdUI7QUFDN0QsU0FBU0MsNEJBQTRCLFFBQVEsdUJBQXVCO0FBQ3BFLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSUEsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyx1RUFBdUU7QUFDM0csT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxpQkFBaUI7QUFDdEQsSUFBTUMsK0JB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
|
|
388
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJyZW5kZXJNZW50aW9uTGluayIsInN0YXJ0c1dpdGgiLCJfcGFyc2VNZW50aW9uUHJvdG9jb2wiLCJpc1Rhc2siLCJpY29uU2l6ZSIsInRhc2tVcmwiLCJoYW5kbGVUYXNrQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhc2tLZXlEb3duIiwia2V5IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uS2V5RG93biIsImlzUHJvamVjdCIsInByb2plY3RVcmwiLCJzaG93SWNvbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwiaGFuZGxlUHJvamVjdENsaWNrIiwid2luZG93Iiwib3BlbiIsInVuZGVmaW5lZCIsInJvbGUiLCJ0YWJJbmRleCIsInN0cmlwTWVudGlvbk1hcmtlcnMiLCJfdHlwZSIsIl9pZCIsImZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyIsIndpdGhvdXRNZW50aW9ucyIsInNsYXNoUmVnZXgiLCJSZWdFeHAiLCJzb3VyY2UiLCJ3aXRob3V0U2xhc2giLCJ3aXRob3V0SW5jb21wbGV0ZVNsYXNoIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjciLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJoYXNJbmxpbmVNYXJrZXJzIiwiY29sbGVjdElubGluZU1hcmtlcnMiLCJtYXJrZXJzIiwibGFzdEluZGV4IiwibSIsImV4ZWMiLCJfbTIiLCJfbTMiLCJfc2xpY2VkVG9BcnJheSIsInB1c2giLCJraW5kIiwiaW5kZXgiLCJzIiwic29ydCIsImEiLCJiIiwicmVuZGVyVGV4dFdpdGhNZW50aW9ucyIsIm91dCIsImxhc3RJZHgiLCJmb3JFYWNoIiwibWFya2VyIiwiaW5saW5lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWFjdEVsZW1lbnQsIE1vdXNlRXZlbnQsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmRDaGlwIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVggfSBmcm9tICcuL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB7IFZJT0xFVF9JQV9DT0xPUlMgfSBmcm9tICcuLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgU0NUYXNrTGluayB9IGZyb20gJy4uL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL25ld1N0eWxlcydcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4vY29udGV4dE1lbnRpb25JY29ucydcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuL29wZW5UYXNrSW5Db3JQYW5lbCdcblxuLyoqXG4gKiBGb3JtYXRvIGRlbCBtYXJjYWRvciBxdWUgdmlhamEgZW4gZWwgdGV4dG8gZGVsIG1lbnNhamU6XG4gKiAgIFtbbWVudGlvbjo8dHlwZT46PGlkPnw8bGFiZWw+XV1cbiAqXG4gKiBFbCBlZGl0b3IgbG8gZW1pdGUgY3VhbmRvIHNlcmlhbGl6YSBlbCBjb250ZW50ZWRpdGFibGUsIGVsIGJhY2tlbmQgbG9cbiAqIHBlcnNpc3RlIHRhbCBjdWFsIHkgYWwgcmVuZGVyaXphciBzZSB0cmFuc2Zvcm1hIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uXG4gKiB1biBwcm90b2NvbG8gcHJvcGlvIHF1ZSBgQ3VzdG9tTGlua2AgaW50ZXJjZXB0YSB5IGRpYnVqYSBjb21vIHNwYW5cbiAqIGVzdGlsYWRvLlxuICpcbiAqIFBvciBzZXBhcmFkbywgbGEgbWV0YWRhdGEgYGNvbnRleHRfbWVzc2FnZWAgbGxldmEgbG9zIHZhbG9yZXMgbGltcGlvc1xuICogKGlkICsgbmFtZSkgcGFyYSBxdWUgZWwgYmFja2VuZCBwdWVkYSBpbnRlcnByZXRhciBsYXMgZW50aWRhZGVzIHNpblxuICogdGVuZXIgcXVlIHBhcnNlYXIgZWwgdGV4dG8uXG4gKi9cbi8qKlxuICogTGFiZWwgcHVlZGUgY29udGVuZXIgYF1gIChlajogXCJbRWR1Y2F0ZV1CbG9nIFBvc3QgLi4uXCIpLCBwb3IgZXNvXG4gKiBzZSBjYXB0dXJhIGRlIGZvcm1hIGxhenkgaGFzdGEgZWwgY2llcnJlIHJlYWwgYF1dYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246KGNsaWVudHxwcm9qZWN0fHRhc2t8dXNlcnxtY3ApOihbXnxcXF1dKylcXHwoW1xcc1xcU10qPylcXF1cXF0vZ1xuZXhwb3J0IGNvbnN0IE1BSUFfTUVOVElPTl9QUk9UT0NPTCA9ICdtYWlhLW1lbnRpb246Ly8nXG5jb25zdCBJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYID0gL1xcW1xcW21lbnRpb246W1xcc1xcU10qJC9cbmNvbnN0IElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYID0gL1xcW1xcW3NsYXNoX2NvbW1hbmQ6W158XFxdXStcXHwoW1xcc1xcU10qKSQvXG5cbmNvbnN0IEFMTE9XRURfVFlQRVM6IENvbnRleHRFbnRpdHlUeXBlW10gPSBbJ2NsaWVudCcsICdwcm9qZWN0JywgJ3Rhc2snLCAndXNlcicsICdtY3AnXVxuXG5jb25zdCBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYgPSAoaHJlZjogc3RyaW5nKTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZyB9ID0+IHtcbiAgY29uc3QgcmVzdCA9IGhyZWYuc2xpY2UoTUFJQV9NRU5USU9OX1BST1RPQ09MLmxlbmd0aClcbiAgY29uc3Qgc2xhc2hJZHggPSByZXN0LmluZGV4T2YoJy8nKVxuICBjb25zdCByYXdUeXBlID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2UoMCwgc2xhc2hJZHgpIDogcmVzdFxuICBjb25zdCByYXdJZCA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKHNsYXNoSWR4ICsgMSkgOiAnJ1xuICBsZXQgaWQgPSAnJ1xuICB0cnkge1xuICAgIGlkID0gcmF3SWQgPyBkZWNvZGVVUklDb21wb25lbnQocmF3SWQpIDogJydcbiAgfSBjYXRjaCB7XG4gICAgaWQgPSByYXdJZFxuICB9XG4gIGNvbnN0IHR5cGUgPSBBTExPV0VEX1RZUEVTLmluY2x1ZGVzKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpID8gKHJhd1R5cGUgYXMgQ29udGV4dEVudGl0eVR5cGUpIDogJ3VzZXInXG4gIHJldHVybiB7IHR5cGUsIGlkIH1cbn1cblxuLyoqIEdlbmVyYSBlbCBtYXJjYWRvciBwYXJhIHVuIG1lbnRpb24gZGFkby4gTG8gdXNhIGVsIGVkaXRvciBhbCBzZXJpYWxpemFyLiAqL1xuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZU1lbnRpb24gPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBzdHJpbmcgPT5cbiAgYFtbbWVudGlvbjoke21lbnRpb24udHlwZX06JHttZW50aW9uLmlkfXwke21lbnRpb24ubGFiZWx9XV1gXG5cbi8qKlxuICogQ29udmllcnRlIGNhZGEgYFtbbWVudGlvbjouLi5dXWAgZW4gdW4gbGluayBtYXJrZG93biBjb24gcHJvdG9jb2xvIHByb3Bpb1xuICogcGFyYSBxdWUgU3RyZWFtZG93biBsbyBlbWl0YSBjb21vIGA8YT5gIHkgYEN1c3RvbUxpbmtgIGxvIGludGVyY2VwdGUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiB0ZXh0XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgdHlwZSwgaWQsIGxhYmVsKSA9PiB7XG4gICAgY29uc3Qgc2FmZUxhYmVsID0gU3RyaW5nKGxhYmVsKS5yZXBsYWNlKC9bXFxcXFxcXV0vZywgJ1xcXFwkJicpXG4gICAgcmV0dXJuIGBbJHtzYWZlTGFiZWx9XSgke01BSUFfTUVOVElPTl9QUk9UT0NPTH0ke3R5cGV9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfSlgXG4gIH0pXG59XG5cbmNvbnN0IG1lbnRpb25DaGlsZHJlblRvTGFiZWwgPSAoY2hpbGRyZW46IFJlYWN0Tm9kZSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnKSByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbilcbiAgaWYgKGNoaWxkcmVuID09IG51bGwgfHwgY2hpbGRyZW4gPT09IGZhbHNlKSByZXR1cm4gJydcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4ubWFwKGMgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiAnJykpLmpvaW4oJycpKVxuICB9XG4gIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhjaGlsZHJlbikpXG59XG5cbmNvbnN0IHNwbGl0TGFiZWxGaXJzdFdvcmQgPSAobGFiZWw6IHN0cmluZyk6IHsgZmlyc3RXb3JkOiBzdHJpbmc7IHJlc3Q6IHN0cmluZyB9ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpLnRyaW0oKVxuICBpZiAoIW5vcm1hbGl6ZWQpIHJldHVybiB7IGZpcnN0V29yZDogJycsIHJlc3Q6ICcnIH1cbiAgY29uc3QgZmlyc3RXaGl0ZXNwYWNlSWR4ID0gbm9ybWFsaXplZC5zZWFyY2goL1xccy8pXG4gIGlmIChmaXJzdFdoaXRlc3BhY2VJZHggPCAwKSByZXR1cm4geyBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQsIHJlc3Q6ICcnIH1cbiAgcmV0dXJuIHtcbiAgICBmaXJzdFdvcmQ6IG5vcm1hbGl6ZWQuc2xpY2UoMCwgZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgICByZXN0OiBub3JtYWxpemVkLnNsaWNlKGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gIH1cbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgYmcgPSB0eXBlID09PSAncHJvamVjdCcgPyBWSU9MRVRfSUFfQ09MT1JTWzEwMF0gOiBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkdcbiAgcmV0dXJuIGNzc2BcbiAgICBiYWNrZ3JvdW5kOiAke2JnfTtcbiAgICBvcGFjaXR5OiAke2lzQ2xpY2thYmxlID8gMC45NSA6IDF9O1xuICBgXG59XG5cbi8qKiBTcGFuIGlubGluZSBlc3RpbGFkbyAobWVuY2lvbmVzIG5vLXRhc2sgZW4gY2hhdCkuICovXG5jb25zdCBTQ0lubGluZU1lbnRpb24gPSBzdHlsZWQuc3Bhbjx7ICR0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgJGlzQ2xpY2thYmxlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW46IDAgMXB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmJnfTtcbiAgY29sb3I6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuZmd9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBjdXJzb3I6ICR7KHsgJGlzQ2xpY2thYmxlIH0pID0+ICgkaXNDbGlja2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICY6aG92ZXIge1xuICAgICR7KHsgJHR5cGUsICRpc0NsaWNrYWJsZSB9KSA9PiBpbmxpbmVNZW50aW9uSG92ZXJDc3MoJHR5cGUsICRpc0NsaWNrYWJsZSl9XG4gIH1cbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvbiA9IHN0eWxlZC5zcGFuPHsgJHRhc2s/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICB3aWR0aDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbiAgaGVpZ2h0OiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uUm93ID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbldvcmQgPSBzdHlsZWQuc3BhbmBcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUYXNrQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlVGFza0tleURvd259XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgcHJvamVjdFVybCA9IGlzUHJvamVjdCA/IGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYCA6IG51bGxcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKGxhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZVByb2plY3RDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIXByb2plY3RVcmwpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbihwcm9qZWN0VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzUHJvamVjdH1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc1Byb2plY3QgPyBoYW5kbGVQcm9qZWN0Q2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc1Byb2plY3QgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc1Byb2plY3QgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8c3Bhbj57cmVzdH08L3NwYW4+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBsYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqIFF1aXRhIGxvcyBtYXJrZXJzIGRlbCB0ZXh0bywgZGVqYW5kbyBzb2xvIGBsYWJlbGAuIMOadGlsIHBhcmEgZmFsbGJhY2sgcGxhbm8uICovXG5leHBvcnQgY29uc3Qgc3RyaXBNZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkpKVxuXG4vKipcbiAqIFTDrXR1bG9zIGRlIGNvbnZlcnNhY2nDs24gKHAuIGVqLiBgbGFzdF9xdWVzdGlvbmAgZGVyaXZhZG8gZGVsIHByaW1lciBtZW5zYWplKSBwdWVkZW5cbiAqIGluY2x1aXIgZWwgdGV4dG8gc2VyaWFsaXphZG8gYFtbbWVudGlvbjp0eXBlOmlkfGxhYmVsXV1gLiBQYXJhIHNpZGViYXIgeSBsaXN0YWRvcyxcbiAqIHJlZW1wbGF6YSBjYWRhIGJsb3F1ZSBwb3IgYGxhYmVsYCBlbiB0ZXh0byBwbGFubywgc2luIGVsIG1hcmNhZG9yIGNydWRvLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zID0gKHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQgPT09ICcnKSByZXR1cm4gdGV4dCA/PyAnJ1xuICBjb25zdCB3aXRob3V0TWVudGlvbnMgPSB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+XG4gICAgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpLnRyaW0oKSlcbiAgKVxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgY29uc3Qgd2l0aG91dFNsYXNoID0gd2l0aG91dE1lbnRpb25zLnJlcGxhY2Uoc2xhc2hSZWdleCwgKF9tLCBfaWQsIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YClcbiAgY29uc3Qgd2l0aG91dEluY29tcGxldGVTbGFzaCA9IHdpdGhvdXRTbGFzaC5yZXBsYWNlKFxuICAgIElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYLFxuICAgIChfbSwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gXG4gIClcbiAgcmV0dXJuIHdpdGhvdXRJbmNvbXBsZXRlU2xhc2gucmVwbGFjZShJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYLCAnJykudHJpbSgpXG59XG5cbi8qKiBHZW5lcmEgbGEgVVJMIGRlIG5hdmVnYWNpw7NuIHBhcmEgdW4gbWVudGlvbiBzZWfDum4gc3UgdGlwby4gKi9cbmNvbnN0IGdldE1lbnRpb25VcmwgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiBgL2NsaWVudHMvJHtpZH1gXG4gICAgY2FzZSAncHJvamVjdCc6XG4gICAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgXG4gICAgY2FzZSAndGFzayc6XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS9kZXRhaWxgXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gbnVsbCAvLyBMb3MgdXNlcnMgbm8gc29uIGNsaWNrZWFibGVzXG4gICAgY2FzZSAnbWNwJzpcbiAgICAgIHJldHVybiBudWxsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgTWVudGlvbkNoaXAgPSAoeyB0eXBlLCBpZCwgbGFiZWwgfTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpXG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLW1lbnRpb24tdHlwZT1cInRhc2tcIlxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgPlxuICAgICAgICB7bm9ybWFsaXplZExhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzQ2xpY2thYmxlfVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzQ2xpY2thYmxlID8gaGFuZGxlQ2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc0NsaWNrYWJsZSA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzQ2xpY2thYmxlID8gMCA6IHVuZGVmaW5lZH1cbiAgICA+XG4gICAgICB7c2hvd0ljb24gPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvbiAkdGFzaz17aXNUYXNrfT5cbiAgICAgICAgICAgICAge2dldENvbnRleHRNZW50aW9uSWNvbih0eXBlLCBNRU5USU9OX0NISVBfQ09MT1JTW3R5cGVdLmZnLCBpZCwgaWNvblNpemUpfVxuICAgICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uPlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbldvcmQ+e2ZpcnN0V29yZH08L1NDSW5saW5lTWVudGlvbldvcmQ+XG4gICAgICAgICAgPC9TQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgIHtyZXN0ID8gPHNwYW4+e3Jlc3R9PC9zcGFuPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IXNob3dJY29uID8gbm9ybWFsaXplZExhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgaGFzSW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRleHQuaW5jbHVkZXMoJ1tbbWVudGlvbjonKSB8fCB0ZXh0LmluY2x1ZGVzKCdbW3NsYXNoX2NvbW1hbmQ6Jylcbn1cblxudHlwZSBJbmxpbmVNYXJrZXIgPVxuICB8IHsga2luZDogJ21lbnRpb24nOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHsga2luZDogJ3NsYXNoJzsgaW5kZXg6IG51bWJlcjsgbGVuZ3RoOiBudW1iZXI7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuXG5jb25zdCBjb2xsZWN0SW5saW5lTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBJbmxpbmVNYXJrZXJbXSA9PiB7XG4gIGNvbnN0IG1hcmtlcnM6IElubGluZU1hcmtlcltdID0gW11cblxuICBNRU5USU9OX01BUktFUl9SRUdFWC5sYXN0SW5kZXggPSAwXG4gIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB3aGlsZSAobSkge1xuICAgIGNvbnN0IFssIHJhd1R5cGUsIGlkLCBsYWJlbF0gPSBtXG4gICAgY29uc3QgdHlwZSA9IEFMTE9XRURfVFlQRVMuaW5jbHVkZXMocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgPyAocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgOiAndXNlcidcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnbWVudGlvbicsIGluZGV4OiBtLmluZGV4LCBsZW5ndGg6IG1bMF0ubGVuZ3RoLCB0eXBlLCBpZCwgbGFiZWwgfSlcbiAgICBtID0gTUVOVElPTl9NQVJLRVJfUkVHRVguZXhlYyh0ZXh0KVxuICB9XG5cbiAgY29uc3Qgc2xhc2hSZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGxldCBzOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gc2xhc2hSZWdleC5leGVjKHRleHQpXG4gIHdoaWxlIChzKSB7XG4gICAgbWFya2Vycy5wdXNoKHsga2luZDogJ3NsYXNoJywgaW5kZXg6IHMuaW5kZXgsIGxlbmd0aDogc1swXS5sZW5ndGgsIGlkOiBzWzFdLCBsYWJlbDogc1syXSB9KVxuICAgIHMgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgfVxuXG4gIHJldHVybiBtYXJrZXJzLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KVxufVxuXG5leHBvcnQgY29uc3QgcmVuZGVyVGV4dFdpdGhNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcpOiBBcnJheTxzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+ID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gW3RleHRdXG4gIGNvbnN0IG1hcmtlcnMgPSBjb2xsZWN0SW5saW5lTWFya2Vycyh0ZXh0KVxuICBpZiAobWFya2Vycy5sZW5ndGggPT09IDApIHJldHVybiBbdGV4dF1cblxuICBjb25zdCBvdXQ6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPSBbXVxuICBsZXQgbGFzdElkeCA9IDBcbiAgbWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgaWYgKG1hcmtlci5pbmRleCA+IGxhc3RJZHgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCwgbWFya2VyLmluZGV4KSlcbiAgICBpZiAobWFya2VyLmtpbmQgPT09ICdtZW50aW9uJykge1xuICAgICAgb3V0LnB1c2goXG4gICAgICAgIDxNZW50aW9uQ2hpcFxuICAgICAgICAgIGtleT17YG1lbnRpb24tJHttYXJrZXIuaW5kZXh9LSR7bWFya2VyLnR5cGV9LSR7bWFya2VyLmlkfWB9XG4gICAgICAgICAgdHlwZT17bWFya2VyLnR5cGV9XG4gICAgICAgICAgaWQ9e21hcmtlci5pZH1cbiAgICAgICAgICBsYWJlbD17bWFya2VyLmxhYmVsfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQucHVzaCg8U2xhc2hDb21tYW5kQ2hpcCBrZXk9e2BzbGFzaC0ke21hcmtlci5pbmRleH0tJHttYXJrZXIuaWR9YH0gbGFiZWw9e21hcmtlci5sYWJlbH0gaW5saW5lPXtmYWxzZX0gLz4pXG4gICAgfVxuICAgIGxhc3RJZHggPSBtYXJrZXIuaW5kZXggKyBtYXJrZXIubGVuZ3RoXG4gIH0pXG4gIGlmIChsYXN0SWR4IDwgdGV4dC5sZW5ndGgpIG91dC5wdXNoKHRleHQuc2xpY2UobGFzdElkeCkpXG4gIHJldHVybiBvdXRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUE0Q0MsMEJBQTBCLFFBQVEseUJBQXlCO0FBQ3ZHLFNBQ0VDLG1CQUFtQixFQUNuQkMsOEJBQThCLFFBQ3pCLGtFQUFrRTtBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxzQ0FBc0M7QUFDdkUsU0FBU0MsMEJBQTBCLFFBQVEsc0JBQXNCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxVQUFVLFFBQVEsa0RBQWtEO0FBQzdFLFNBQVNDLHFCQUFxQixRQUFRLHVCQUF1QjtBQUM3RCxTQUFTQyw0QkFBNEIsUUFBUSx1QkFBdUI7QUFDcEUsU0FBU0Msa0JBQWtCLFFBQVEsc0JBQXNCOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFJQSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLHVFQUF1RTtBQUMzRyxPQUFPLElBQU1DLHFCQUFxQixHQUFHLGlCQUFpQjtBQUN0RCxJQUFNQywrQkFBK0IsR0FBRyxzQkFBc0I7QUFDOUQsSUFBTUMsNkJBQTZCLEdBQUcsdUNBQXVDO0FBRTdFLElBQU1DLGFBQWtDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBRXZGLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlDLElBQVksRUFBOEM7RUFDMUYsSUFBTUMsSUFBSSxHQUFHRCxJQUFJLENBQUNFLEtBQUssQ0FBQ1AscUJBQXFCLENBQUNRLE1BQU0sQ0FBQztFQUNyRCxJQUFNQyxRQUFRLEdBQUdILElBQUksQ0FBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUNsQyxJQUFNQyxPQUFPLEdBQUdGLFFBQVEsSUFBSSxDQUFDLEdBQUdILElBQUksQ0FBQ0MsS0FBSyxDQUFDLENBQUMsRUFBRUUsUUFBUSxDQUFDLEdBQUdILElBQUk7RUFDOUQsSUFBTU0sS0FBSyxHQUFHSCxRQUFRLElBQUksQ0FBQyxHQUFHSCxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUU7RUFDM0QsSUFBSUksRUFBRSxHQUFHLEVBQUU7RUFDWCxJQUFJO0lBQ0ZBLEVBQUUsR0FBR0QsS0FBSyxHQUFHRSxrQkFBa0IsQ0FBQ0YsS0FBSyxDQUFDLEdBQUcsRUFBRTtFQUM3QyxDQUFDLENBQUMsT0FBQUcsT0FBQSxFQUFNO0lBQ05GLEVBQUUsR0FBR0QsS0FBSztFQUNaO0VBQ0EsSUFBTUksSUFBSSxHQUFHYixhQUFhLENBQUNjLFFBQVEsQ0FBQ04sT0FBNEIsQ0FBQyxHQUFJQSxPQUFPLEdBQXlCLE1BQU07RUFDM0csT0FBTztJQUFFSyxJQUFJLEVBQUpBLElBQUk7SUFBRUgsRUFBRSxFQUFGQTtFQUFHLENBQUM7QUFDckIsQ0FBQzs7QUFFRDtBQUNBLE9BQU8sSUFBTUssZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsT0FBdUI7RUFBQSxvQkFBQUMsTUFBQSxDQUN6Q0QsT0FBTyxDQUFDSCxJQUFJLE9BQUFJLE1BQUEsQ0FBSUQsT0FBTyxDQUFDTixFQUFFLE9BQUFPLE1BQUEsQ0FBSUQsT0FBTyxDQUFDRSxLQUFLO0FBQUEsQ0FBSTs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLElBQVksRUFBYTtFQUMvRCxJQUFJLENBQUNBLElBQUksRUFBRSxPQUFPQSxJQUFJO0VBQ3RCLE9BQU9BLElBQUksQ0FBQ0MsT0FBTyxDQUFDekIsb0JBQW9CLEVBQUUsVUFBQzBCLEVBQUUsRUFBRVQsSUFBSSxFQUFFSCxFQUFFLEVBQUVRLEtBQUssRUFBSztJQUNqRSxJQUFNSyxTQUFTLEdBQUdDLE1BQU0sQ0FBQ04sS0FBSyxDQUFDLENBQUNHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQzFELFdBQUFKLE1BQUEsQ0FBV00sU0FBUyxRQUFBTixNQUFBLENBQUtwQixxQkFBcUIsRUFBQW9CLE1BQUEsQ0FBR0osSUFBSSxPQUFBSSxNQUFBLENBQUlRLGtCQUFrQixDQUFDRCxNQUFNLENBQUNkLEVBQUUsQ0FBQyxDQUFDO0VBQ3pGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxJQUFNZ0Isc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsUUFBbUIsRUFBYTtFQUM5RCxJQUFJLE9BQU9BLFFBQVEsS0FBSyxRQUFRLEVBQUUsT0FBT3ZDLDRCQUE0QixDQUFDdUMsUUFBUSxDQUFDO0VBQy9FLElBQUlBLFFBQVEsSUFBSSxJQUFJLElBQUlBLFFBQVEsS0FBSyxLQUFLLEVBQUUsT0FBTyxFQUFFO0VBQ3JELElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLENBQUMsRUFBRTtJQUMzQixPQUFPdkMsNEJBQTRCLENBQUN1QyxRQUFRLENBQUNHLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSyxPQUFPQSxDQUFDLEtBQUssUUFBUSxHQUFHQSxDQUFDLEdBQUcsRUFBRTtJQUFBLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDbkc7RUFDQSxPQUFPNUMsNEJBQTRCLENBQUNvQyxNQUFNLENBQUNHLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxJQUFNTSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJZixLQUFhLEVBQTBDO0VBQ2xGLElBQU1nQixVQUFVLEdBQUc5Qyw0QkFBNEIsQ0FBQzhCLEtBQUssQ0FBQyxDQUFDaUIsSUFBSSxDQUFDLENBQUM7RUFDN0QsSUFBSSxDQUFDRCxVQUFVLEVBQUUsT0FBTztJQUFFRSxTQUFTLEVBQUUsRUFBRTtJQUFFakMsSUFBSSxFQUFFO0VBQUcsQ0FBQztFQUNuRCxJQUFNa0Msa0JBQWtCLEdBQUdILFVBQVUsQ0FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQztFQUNsRCxJQUFJRCxrQkFBa0IsR0FBRyxDQUFDLEVBQUUsT0FBTztJQUFFRCxTQUFTLEVBQUVGLFVBQVU7SUFBRS9CLElBQUksRUFBRTtFQUFHLENBQUM7RUFDdEUsT0FBTztJQUNMaUMsU0FBUyxFQUFFRixVQUFVLENBQUM5QixLQUFLLENBQUMsQ0FBQyxFQUFFaUMsa0JBQWtCLENBQUM7SUFDbERsQyxJQUFJLEVBQUUrQixVQUFVLENBQUM5QixLQUFLLENBQUNpQyxrQkFBa0I7RUFDM0MsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFNRSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJMUIsSUFBdUIsRUFBRTJCLFdBQXFCLEVBQUs7RUFDaEYsSUFBTUMsRUFBRSxHQUFHNUIsSUFBSSxLQUFLLFNBQVMsR0FBRzVCLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHSCw4QkFBOEI7RUFDdEYsT0FBT0gsR0FBRyxvQ0FDTThELEVBQUUsRUFDTEQsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDO0FBRXJDLENBQUM7O0FBRUQ7QUFDQSxJQUFNRSxlQUFlLEdBQUdoRSxNQUFNLENBQUNpRSxJQUFJLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd1ZBU25CLFVBQUFDLElBQUE7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLElBQUdDLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0VBQUEsT0FBTyxFQUFBRCxxQkFBQSxHQUFDbkUsbUJBQW1CLENBQUNvRSxLQUFLLENBQUMsY0FBQUQscUJBQUEsY0FBQUEscUJBQUEsR0FBSW5FLG1CQUFtQixDQUFDcUUsSUFBSSxFQUFFVCxFQUFFO0FBQUEsR0FDL0UsVUFBQVUsS0FBQTtFQUFBLElBQUFDLHNCQUFBO0VBQUEsSUFBR0gsS0FBSyxHQUFBRSxLQUFBLENBQUxGLEtBQUs7RUFBQSxPQUFPLEVBQUFHLHNCQUFBLEdBQUN2RSxtQkFBbUIsQ0FBQ29FLEtBQUssQ0FBQyxjQUFBRyxzQkFBQSxjQUFBQSxzQkFBQSxHQUFJdkUsbUJBQW1CLENBQUNxRSxJQUFJLEVBQUVHLEVBQUU7QUFBQSxHQUl6RSxVQUFBQyxLQUFBO0VBQUEsSUFBR0MsWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7RUFBQSxPQUFRQSxZQUFZLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBS2xFLFVBQUFDLEtBQUE7RUFBQSxJQUFHUCxLQUFLLEdBQUFPLEtBQUEsQ0FBTFAsS0FBSztJQUFFTSxZQUFZLEdBQUFDLEtBQUEsQ0FBWkQsWUFBWTtFQUFBLE9BQU9oQixxQkFBcUIsQ0FBQ1UsS0FBSyxFQUFFTSxZQUFZLENBQUM7QUFBQSxFQUU1RTtBQUVELElBQU1FLG1CQUFtQixHQUFHL0UsTUFBTSxDQUFDaUUsSUFBSSxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFJQU01QixVQUFBWSxLQUFBO0VBQUEsSUFBR0MsS0FBSyxHQUFBRCxLQUFBLENBQUxDLEtBQUs7RUFBQSxPQUFRQSxLQUFLLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBQ3ZDLFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxLQUFLLEdBQUFDLEtBQUEsQ0FBTEQsS0FBSztFQUFBLE9BQVFBLEtBQUssR0FBRyxNQUFNLEdBQUcsTUFBTTtBQUFBLENBQUMsQ0FDbkQ7QUFFRCxJQUFNRSxzQkFBc0IsR0FBR25GLE1BQU0sQ0FBQ2lFLElBQUksQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1R0FNekM7QUFFRCxJQUFNZ0IsbUJBQW1CLEdBQUdwRixNQUFNLENBQUNpRSxJQUFJLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaURBR3RDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNaUIsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSTdELElBQXdCLEVBQUV5QixRQUFtQixFQUF1QjtFQUNwRyxJQUFJLENBQUN6QixJQUFJLElBQUksQ0FBQ0EsSUFBSSxDQUFDOEQsVUFBVSxDQUFDbkUscUJBQXFCLENBQUMsRUFBRSxPQUFPLElBQUk7RUFDakUsSUFBQW9FLHFCQUFBLEdBQXFCaEUsd0JBQXdCLENBQUNDLElBQUksQ0FBQztJQUEzQ1csSUFBSSxHQUFBb0QscUJBQUEsQ0FBSnBELElBQUk7SUFBRUgsRUFBRSxHQUFBdUQscUJBQUEsQ0FBRnZELEVBQUU7RUFDaEIsSUFBTVEsS0FBSyxHQUFHUSxzQkFBc0IsQ0FBQ0MsUUFBUSxDQUFDO0VBQzlDLElBQU11QyxNQUFNLEdBQUdyRCxJQUFJLEtBQUssTUFBTTtFQUM5QixJQUFNc0QsUUFBUSxHQUFHRCxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFDakMsSUFBTUUsT0FBTyxhQUFBbkQsTUFBQSxDQUFhUCxFQUFFLFlBQVM7RUFFckMsSUFBTTJELGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsQ0FBZ0MsRUFBSztJQUM1RCxJQUFJQSxDQUFDLENBQUNDLE9BQU8sSUFBSUQsQ0FBQyxDQUFDRSxPQUFPLEVBQUU7SUFDNUJGLENBQUMsQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDbEJILENBQUMsQ0FBQ0ksZUFBZSxDQUFDLENBQUM7SUFDbkJyRixrQkFBa0IsQ0FBQ3FCLEVBQUUsRUFBRSxRQUFRLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQU1pRSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJTCxDQUFtQyxFQUFLO0lBQ2pFLElBQUlBLENBQUMsQ0FBQ00sR0FBRyxLQUFLLE9BQU8sSUFBSU4sQ0FBQyxDQUFDTSxHQUFHLEtBQUssR0FBRyxFQUFFO0lBQ3hDTixDQUFDLENBQUNHLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCcEYsa0JBQWtCLENBQUNxQixFQUFFLEVBQUUsUUFBUSxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFJd0QsTUFBTSxFQUFFO0lBQ1Ysb0JBQ0UzRSxJQUFBLENBQUNMLFVBQVU7TUFDVGdCLElBQUksRUFBRWtFLE9BQVE7TUFDZFMsU0FBUyxFQUFFakcsMEJBQTJCO01BQ3RDLHFCQUFtQmlDLElBQUs7TUFDeEIsd0JBQXFCLE1BQU07TUFDM0JpRSxPQUFPLEVBQUVULGVBQWdCO01BQ3pCVSxTQUFTLEVBQUVKLGlCQUFrQjtNQUFBaEQsUUFBQSxFQUU1QlQ7SUFBSyxDQUNJLENBQUM7RUFFakI7RUFFQSxJQUFNOEQsU0FBUyxHQUFHbkUsSUFBSSxLQUFLLFNBQVM7RUFDcEMsSUFBTW9FLFVBQVUsR0FBR0QsU0FBUyxnQkFBQS9ELE1BQUEsQ0FBZ0JQLEVBQUUsa0JBQWUsSUFBSTtFQUNqRSxJQUFNd0UsUUFBUSxHQUFHLENBQUNGLFNBQVM7RUFDM0IsSUFBQUcsb0JBQUEsR0FBNEJsRCxtQkFBbUIsQ0FBQ2YsS0FBSyxDQUFDO0lBQTlDa0IsU0FBUyxHQUFBK0Msb0JBQUEsQ0FBVC9DLFNBQVM7SUFBRWpDLElBQUksR0FBQWdGLG9CQUFBLENBQUpoRixJQUFJO0VBRXZCLElBQU1pRixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJZCxDQUE4QixFQUFLO0lBQzdELElBQUksQ0FBQ1csVUFBVSxFQUFFO0lBQ2pCWCxDQUFDLENBQUNHLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCSCxDQUFDLENBQUNJLGVBQWUsQ0FBQyxDQUFDO0lBQ25CVyxNQUFNLENBQUNDLElBQUksQ0FBQ0wsVUFBVSxFQUFFLFFBQVEsQ0FBQztFQUNuQyxDQUFDO0VBRUQsb0JBQ0V4RixLQUFBLENBQUNpRCxlQUFlO0lBQ2RPLEtBQUssRUFBRXBDLElBQUs7SUFDWjBDLFlBQVksRUFBRXlCLFNBQVU7SUFDeEJILFNBQVMsRUFBRWpHLDBCQUEyQjtJQUN0QyxxQkFBbUJpQyxJQUFLO0lBQ3hCLHdCQUFxQixNQUFNO0lBQzNCaUUsT0FBTyxFQUFFRSxTQUFTLEdBQUdJLGtCQUFrQixHQUFHRyxTQUFVO0lBQ3BEQyxJQUFJLEVBQUVSLFNBQVMsR0FBRyxRQUFRLEdBQUdPLFNBQVU7SUFDdkNFLFFBQVEsRUFBRVQsU0FBUyxHQUFHLENBQUMsR0FBR08sU0FBVTtJQUFBNUQsUUFBQSxHQUVuQ3VELFFBQVEsZ0JBQ1B6RixLQUFBLENBQUFFLFNBQUE7TUFBQWdDLFFBQUEsZ0JBQ0VsQyxLQUFBLENBQUNvRSxzQkFBc0I7UUFBQWxDLFFBQUEsZ0JBQ3JCcEMsSUFBQSxDQUFDa0UsbUJBQW1CO1VBQUNFLEtBQUssRUFBRU8sTUFBTztVQUFBdkMsUUFBQSxFQUNoQ3hDLHFCQUFxQixDQUFDMEIsSUFBSSxFQUFFaEMsbUJBQW1CLENBQUNnQyxJQUFJLENBQUMsQ0FBQ3dDLEVBQUUsRUFBRTNDLEVBQUUsRUFBRXlELFFBQVE7UUFBQyxDQUNyRCxDQUFDLGVBQ3RCNUUsSUFBQSxDQUFDdUUsbUJBQW1CO1VBQUFuQyxRQUFBLEVBQUVTO1FBQVMsQ0FBc0IsQ0FBQztNQUFBLENBQ2hDLENBQUMsRUFDeEJqQyxJQUFJLGdCQUFHWixJQUFBO1FBQUFvQyxRQUFBLEVBQU94QjtNQUFJLENBQU8sQ0FBQyxHQUFHLElBQUk7SUFBQSxDQUNsQyxDQUFDLEdBQ0QsSUFBSSxFQUNQLENBQUMrRSxRQUFRLEdBQUdoRSxLQUFLLEdBQUcsSUFBSTtFQUFBLENBQ1YsQ0FBQztBQUV0QixDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNd0UsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSXRFLElBQVk7RUFBQSxPQUM5Q0EsSUFBSSxDQUFDQyxPQUFPLENBQUN6QixvQkFBb0IsRUFBRSxVQUFDMEIsRUFBRSxFQUFFcUUsS0FBSyxFQUFFQyxHQUFHLEVBQUUxRSxLQUFLO0lBQUEsT0FBSzlCLDRCQUE0QixDQUFDb0MsTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQztFQUFBLEVBQUM7QUFBQTs7QUFFNUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTTJFLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBMkJBLENBQUl6RSxJQUErQixFQUFhO0VBQ3RGLElBQUlBLElBQUksSUFBSSxJQUFJLElBQUlBLElBQUksS0FBSyxFQUFFLEVBQUUsT0FBT0EsSUFBSSxhQUFKQSxJQUFJLGNBQUpBLElBQUksR0FBSSxFQUFFO0VBQ2xELElBQU0wRSxlQUFlLEdBQUcxRSxJQUFJLENBQUNDLE9BQU8sQ0FBQ3pCLG9CQUFvQixFQUFFLFVBQUMwQixFQUFFLEVBQUVxRSxLQUFLLEVBQUVDLEdBQUcsRUFBRTFFLEtBQUs7SUFBQSxPQUMvRTlCLDRCQUE0QixDQUFDb0MsTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUNwRCxDQUFDO0VBQ0QsSUFBTTRELFVBQVUsR0FBRyxJQUFJQyxNQUFNLENBQUNoSCwwQkFBMEIsQ0FBQ2lILE1BQU0sRUFBRSxHQUFHLENBQUM7RUFDckUsSUFBTUMsWUFBWSxHQUFHSixlQUFlLENBQUN6RSxPQUFPLENBQUMwRSxVQUFVLEVBQUUsVUFBQ3pFLEVBQUUsRUFBRXNFLEdBQUcsRUFBRTFFLEtBQUs7SUFBQSxXQUFBRCxNQUFBLENBQVNPLE1BQU0sQ0FBQ04sS0FBSyxDQUFDLENBQUNpQixJQUFJLENBQUMsQ0FBQztFQUFBLENBQUUsQ0FBQztFQUN4RyxJQUFNZ0Usc0JBQXNCLEdBQUdELFlBQVksQ0FBQzdFLE9BQU8sQ0FDakR0Qiw2QkFBNkIsRUFDN0IsVUFBQ3VCLEVBQUUsRUFBRUosS0FBSztJQUFBLFdBQUFELE1BQUEsQ0FBU08sTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDO0VBQUEsQ0FDekMsQ0FBQztFQUNELE9BQU9nRSxzQkFBc0IsQ0FBQzlFLE9BQU8sQ0FBQ3ZCLCtCQUErQixFQUFFLEVBQUUsQ0FBQyxDQUFDcUMsSUFBSSxDQUFDLENBQUM7QUFDbkYsQ0FBQzs7QUFFRDtBQUNBLElBQU1pRSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUl2RixJQUF1QixFQUFFSCxFQUFtQixFQUFvQjtFQUNyRixRQUFRRyxJQUFJO0lBQ1YsS0FBSyxRQUFRO01BQ1gsbUJBQUFJLE1BQUEsQ0FBbUJQLEVBQUU7SUFDdkIsS0FBSyxTQUFTO01BQ1osb0JBQUFPLE1BQUEsQ0FBb0JQLEVBQUU7SUFDeEIsS0FBSyxNQUFNO01BQ1QsaUJBQUFPLE1BQUEsQ0FBaUJQLEVBQUU7SUFDckIsS0FBSyxNQUFNO01BQ1QsT0FBTyxJQUFJO0lBQUM7SUFDZCxLQUFLLEtBQUs7TUFDUixPQUFPLElBQUk7SUFDYjtNQUNFLE9BQU8sSUFBSTtFQUNmO0FBQ0YsQ0FBQztBQUVELElBQU0yRixXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsS0FBQSxFQUFvRjtFQUFBLElBQTlFekYsSUFBSSxHQUFBeUYsS0FBQSxDQUFKekYsSUFBSTtJQUFFSCxFQUFFLEdBQUE0RixLQUFBLENBQUY1RixFQUFFO0lBQUVRLEtBQUssR0FBQW9GLEtBQUEsQ0FBTHBGLEtBQUs7RUFDcEMsSUFBTXFGLGVBQWUsR0FBR25ILDRCQUE0QixDQUFDOEIsS0FBSyxDQUFDO0VBQzNELElBQU1zRixHQUFHLEdBQUdKLGFBQWEsQ0FBQ3ZGLElBQUksRUFBRUgsRUFBRSxDQUFDO0VBQ25DLElBQU04QixXQUFXLEdBQUcsQ0FBQyxDQUFDZ0UsR0FBRztFQUN6QixJQUFNdEMsTUFBTSxHQUFHckQsSUFBSSxLQUFLLE1BQU07RUFDOUIsSUFBTW1FLFNBQVMsR0FBR25FLElBQUksS0FBSyxTQUFTO0VBQ3BDLElBQU1xRSxRQUFRLEdBQUcsQ0FBQ0YsU0FBUztFQUMzQixJQUFNYixRQUFRLEdBQUdELE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRTtFQUNqQyxJQUFBdUMscUJBQUEsR0FBNEJ4RSxtQkFBbUIsQ0FBQ3NFLGVBQWUsQ0FBQztJQUF4RG5FLFNBQVMsR0FBQXFFLHFCQUFBLENBQVRyRSxTQUFTO0lBQUVqQyxJQUFJLEdBQUFzRyxxQkFBQSxDQUFKdEcsSUFBSTtFQUV2QixJQUFNdUcsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlwQyxDQUFrRCxFQUFLO0lBQzFFLElBQUksQ0FBQzlCLFdBQVcsSUFBSSxDQUFDZ0UsR0FBRyxFQUFFO0lBQzFCLElBQUkzRixJQUFJLEtBQUssTUFBTSxFQUFFO01BQ25CLElBQUl5RCxDQUFDLENBQUNDLE9BQU8sSUFBSUQsQ0FBQyxDQUFDRSxPQUFPLEVBQUU7TUFDNUJGLENBQUMsQ0FBQ0csY0FBYyxDQUFDLENBQUM7TUFDbEJILENBQUMsQ0FBQ0ksZUFBZSxDQUFDLENBQUM7TUFDbkJyRixrQkFBa0IsQ0FBQ3FCLEVBQUUsRUFBRSxRQUFRLENBQUM7TUFDaEM7SUFDRjtJQUNBNEQsQ0FBQyxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUNsQlksTUFBTSxDQUFDQyxJQUFJLENBQUNrQixHQUFHLEVBQUUsUUFBUSxDQUFDO0VBQzVCLENBQUM7RUFFRCxJQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlyQyxDQUFxRCxFQUFLO0lBQy9FLElBQUksQ0FBQzlCLFdBQVcsSUFBSTNCLElBQUksS0FBSyxNQUFNLEVBQUU7SUFDckMsSUFBSXlELENBQUMsQ0FBQ00sR0FBRyxLQUFLLE9BQU8sSUFBSU4sQ0FBQyxDQUFDTSxHQUFHLEtBQUssR0FBRyxFQUFFO0lBQ3hDTixDQUFDLENBQUNHLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCcEYsa0JBQWtCLENBQUNxQixFQUFFLEVBQUUsUUFBUSxDQUFDO0VBQ2xDLENBQUM7RUFFRCxJQUFJRyxJQUFJLEtBQUssTUFBTSxFQUFFO0lBQ25CLG9CQUNFdEIsSUFBQSxDQUFDTCxVQUFVO01BQ1RnQixJQUFJLEVBQUVzRyxHQUFHLGFBQUhBLEdBQUcsY0FBSEEsR0FBRyxHQUFJLEdBQUk7TUFDakIzQixTQUFTLEVBQUVqRywwQkFBMkI7TUFDdEMscUJBQWtCLE1BQU07TUFDeEIsd0JBQXFCLE1BQU07TUFDM0JrRyxPQUFPLEVBQUU0QixXQUFZO01BQ3JCM0IsU0FBUyxFQUFFNEIsYUFBYztNQUFBaEYsUUFBQSxFQUV4QjRFO0lBQWUsQ0FDTixDQUFDO0VBRWpCO0VBRUEsb0JBQ0U5RyxLQUFBLENBQUNpRCxlQUFlO0lBQ2RPLEtBQUssRUFBRXBDLElBQUs7SUFDWjBDLFlBQVksRUFBRWYsV0FBWTtJQUMxQnFDLFNBQVMsRUFBRWpHLDBCQUEyQjtJQUN0QyxxQkFBbUJpQyxJQUFLO0lBQ3hCLHdCQUFxQixNQUFNO0lBQzNCaUUsT0FBTyxFQUFFdEMsV0FBVyxHQUFHa0UsV0FBVyxHQUFHbkIsU0FBVTtJQUMvQ0MsSUFBSSxFQUFFaEQsV0FBVyxHQUFHLFFBQVEsR0FBRytDLFNBQVU7SUFDekNFLFFBQVEsRUFBRWpELFdBQVcsR0FBRyxDQUFDLEdBQUcrQyxTQUFVO0lBQUE1RCxRQUFBLEdBRXJDdUQsUUFBUSxnQkFDUHpGLEtBQUEsQ0FBQUUsU0FBQTtNQUFBZ0MsUUFBQSxnQkFDRWxDLEtBQUEsQ0FBQ29FLHNCQUFzQjtRQUFBbEMsUUFBQSxnQkFDckJwQyxJQUFBLENBQUNrRSxtQkFBbUI7VUFBQ0UsS0FBSyxFQUFFTyxNQUFPO1VBQUF2QyxRQUFBLEVBQ2hDeEMscUJBQXFCLENBQUMwQixJQUFJLEVBQUVoQyxtQkFBbUIsQ0FBQ2dDLElBQUksQ0FBQyxDQUFDd0MsRUFBRSxFQUFFM0MsRUFBRSxFQUFFeUQsUUFBUTtRQUFDLENBQ3JELENBQUMsZUFDdEI1RSxJQUFBLENBQUN1RSxtQkFBbUI7VUFBQW5DLFFBQUEsRUFBRVM7UUFBUyxDQUFzQixDQUFDO01BQUEsQ0FDaEMsQ0FBQyxFQUN4QmpDLElBQUksZ0JBQUdaLElBQUE7UUFBQW9DLFFBQUEsRUFBT3hCO01BQUksQ0FBTyxDQUFDLEdBQUcsSUFBSTtJQUFBLENBQ2xDLENBQUMsR0FDRCxJQUFJLEVBQ1AsQ0FBQytFLFFBQVEsR0FBR3FCLGVBQWUsR0FBRyxJQUFJO0VBQUEsQ0FDcEIsQ0FBQztBQUV0QixDQUFDO0FBRUQsT0FBTyxJQUFNSyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJeEYsSUFBWSxFQUFjO0VBQ3pELElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU8sS0FBSztFQUN2QixPQUFPQSxJQUFJLENBQUNOLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSU0sSUFBSSxDQUFDTixRQUFRLENBQUMsa0JBQWtCLENBQUM7QUFDekUsQ0FBQztBQU1ELElBQU0rRixvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJekYsSUFBWSxFQUFxQjtFQUM3RCxJQUFNMEYsT0FBdUIsR0FBRyxFQUFFO0VBRWxDbEgsb0JBQW9CLENBQUNtSCxTQUFTLEdBQUcsQ0FBQztFQUNsQyxJQUFJQyxDQUF5QixHQUFHcEgsb0JBQW9CLENBQUNxSCxJQUFJLENBQUM3RixJQUFJLENBQUM7RUFDL0QsT0FBTzRGLENBQUMsRUFBRTtJQUNSLElBQUFFLEdBQUEsR0FBK0JGLENBQUM7TUFBQUcsR0FBQSxHQUFBQyxjQUFBLENBQUFGLEdBQUE7TUFBdkIxRyxPQUFPLEdBQUEyRyxHQUFBO01BQUV6RyxFQUFFLEdBQUF5RyxHQUFBO01BQUVqRyxLQUFLLEdBQUFpRyxHQUFBO0lBQzNCLElBQU10RyxJQUFJLEdBQUdiLGFBQWEsQ0FBQ2MsUUFBUSxDQUFDTixPQUE0QixDQUFDLEdBQUlBLE9BQU8sR0FBeUIsTUFBTTtJQUMzR3NHLE9BQU8sQ0FBQ08sSUFBSSxDQUFDO01BQUVDLElBQUksRUFBRSxTQUFTO01BQUVDLEtBQUssRUFBRVAsQ0FBQyxDQUFDTyxLQUFLO01BQUVsSCxNQUFNLEVBQUUyRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMzRyxNQUFNO01BQUVRLElBQUksRUFBSkEsSUFBSTtNQUFFSCxFQUFFLEVBQUZBLEVBQUU7TUFBRVEsS0FBSyxFQUFMQTtJQUFNLENBQUMsQ0FBQztJQUN2RjhGLENBQUMsR0FBR3BILG9CQUFvQixDQUFDcUgsSUFBSSxDQUFDN0YsSUFBSSxDQUFDO0VBQ3JDO0VBRUEsSUFBTTJFLFVBQVUsR0FBRyxJQUFJQyxNQUFNLENBQUNoSCwwQkFBMEIsQ0FBQ2lILE1BQU0sRUFBRSxHQUFHLENBQUM7RUFDckUsSUFBSXVCLENBQXlCLEdBQUd6QixVQUFVLENBQUNrQixJQUFJLENBQUM3RixJQUFJLENBQUM7RUFDckQsT0FBT29HLENBQUMsRUFBRTtJQUNSVixPQUFPLENBQUNPLElBQUksQ0FBQztNQUFFQyxJQUFJLEVBQUUsT0FBTztNQUFFQyxLQUFLLEVBQUVDLENBQUMsQ0FBQ0QsS0FBSztNQUFFbEgsTUFBTSxFQUFFbUgsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDbkgsTUFBTTtNQUFFSyxFQUFFLEVBQUU4RyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQUV0RyxLQUFLLEVBQUVzRyxDQUFDLENBQUMsQ0FBQztJQUFFLENBQUMsQ0FBQztJQUMzRkEsQ0FBQyxHQUFHekIsVUFBVSxDQUFDa0IsSUFBSSxDQUFDN0YsSUFBSSxDQUFDO0VBQzNCO0VBRUEsT0FBTzBGLE9BQU8sQ0FBQ1csSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQztJQUFBLE9BQUtELENBQUMsQ0FBQ0gsS0FBSyxHQUFHSSxDQUFDLENBQUNKLEtBQUs7RUFBQSxFQUFDO0FBQ2xELENBQUM7QUFFRCxPQUFPLElBQU1LLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUl4RyxJQUFZLEVBQW1DO0VBQ3BGLElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU8sQ0FBQ0EsSUFBSSxDQUFDO0VBQ3hCLElBQU0wRixPQUFPLEdBQUdELG9CQUFvQixDQUFDekYsSUFBSSxDQUFDO0VBQzFDLElBQUkwRixPQUFPLENBQUN6RyxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQ2UsSUFBSSxDQUFDO0VBRXZDLElBQU15RyxHQUFpQyxHQUFHLEVBQUU7RUFDNUMsSUFBSUMsT0FBTyxHQUFHLENBQUM7RUFDZmhCLE9BQU8sQ0FBQ2lCLE9BQU8sQ0FBQyxVQUFBQyxNQUFNLEVBQUk7SUFDeEIsSUFBSUEsTUFBTSxDQUFDVCxLQUFLLEdBQUdPLE9BQU8sRUFBRUQsR0FBRyxDQUFDUixJQUFJLENBQUNqRyxJQUFJLENBQUNoQixLQUFLLENBQUMwSCxPQUFPLEVBQUVFLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLENBQUM7SUFDdkUsSUFBSVMsTUFBTSxDQUFDVixJQUFJLEtBQUssU0FBUyxFQUFFO01BQzdCTyxHQUFHLENBQUNSLElBQUksY0FDTjlILElBQUEsQ0FBQzhHLFdBQVc7UUFFVnhGLElBQUksRUFBRW1ILE1BQU0sQ0FBQ25ILElBQUs7UUFDbEJILEVBQUUsRUFBRXNILE1BQU0sQ0FBQ3RILEVBQUc7UUFDZFEsS0FBSyxFQUFFOEcsTUFBTSxDQUFDOUc7TUFBTSxjQUFBRCxNQUFBLENBSEorRyxNQUFNLENBQUNULEtBQUssT0FBQXRHLE1BQUEsQ0FBSStHLE1BQU0sQ0FBQ25ILElBQUksT0FBQUksTUFBQSxDQUFJK0csTUFBTSxDQUFDdEgsRUFBRSxDQUl6RCxDQUNILENBQUM7SUFDSCxDQUFDLE1BQU07TUFDTG1ILEdBQUcsQ0FBQ1IsSUFBSSxjQUFDOUgsSUFBQSxDQUFDUixnQkFBZ0I7UUFBNENtQyxLQUFLLEVBQUU4RyxNQUFNLENBQUM5RyxLQUFNO1FBQUMrRyxNQUFNLEVBQUU7TUFBTSxZQUFBaEgsTUFBQSxDQUFoRStHLE1BQU0sQ0FBQ1QsS0FBSyxPQUFBdEcsTUFBQSxDQUFJK0csTUFBTSxDQUFDdEgsRUFBRSxDQUF5QyxDQUFDLENBQUM7SUFDL0c7SUFDQW9ILE9BQU8sR0FBR0UsTUFBTSxDQUFDVCxLQUFLLEdBQUdTLE1BQU0sQ0FBQzNILE1BQU07RUFDeEMsQ0FBQyxDQUFDO0VBQ0YsSUFBSXlILE9BQU8sR0FBRzFHLElBQUksQ0FBQ2YsTUFBTSxFQUFFd0gsR0FBRyxDQUFDUixJQUFJLENBQUNqRyxJQUFJLENBQUNoQixLQUFLLENBQUMwSCxPQUFPLENBQUMsQ0FBQztFQUN4RCxPQUFPRCxHQUFHO0FBQ1osQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var SLASH_COMMAND_MARKER_REGEX = /\[\[slash_command:([^|\]]+)\|([\s\S]*?)\]\]/g;
|
|
2
|
+
export var serializeSlashCommand = function serializeSlashCommand(marker) {
|
|
3
|
+
return "[[slash_command:".concat(marker.id, "|").concat(marker.label, "]]");
|
|
4
|
+
};
|
|
5
|
+
export var hasSlashCommandMarker = function hasSlashCommandMarker(text) {
|
|
6
|
+
if (!text) return false;
|
|
7
|
+
return text.includes('[[slash_command:');
|
|
8
|
+
};
|
|
9
|
+
export var parseSlashCommandMarkers = function parseSlashCommandMarkers(text) {
|
|
10
|
+
if (!hasSlashCommandMarker(text)) return [];
|
|
11
|
+
var out = [];
|
|
12
|
+
var regex = new RegExp(SLASH_COMMAND_MARKER_REGEX.source, 'g');
|
|
13
|
+
var match = regex.exec(text);
|
|
14
|
+
while (match) {
|
|
15
|
+
out.push({
|
|
16
|
+
id: match[1],
|
|
17
|
+
label: match[2]
|
|
18
|
+
});
|
|
19
|
+
match = regex.exec(text);
|
|
20
|
+
}
|
|
21
|
+
return out;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWCIsInNlcmlhbGl6ZVNsYXNoQ29tbWFuZCIsIm1hcmtlciIsImNvbmNhdCIsImlkIiwibGFiZWwiLCJoYXNTbGFzaENvbW1hbmRNYXJrZXIiLCJ0ZXh0IiwiaW5jbHVkZXMiLCJwYXJzZVNsYXNoQ29tbWFuZE1hcmtlcnMiLCJvdXQiLCJyZWdleCIsIlJlZ0V4cCIsInNvdXJjZSIsIm1hdGNoIiwiZXhlYyIsInB1c2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2xhc2hDb21tYW5kTWFya2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNsYXNoQ29tbWFuZE1hcmtlciA9IHtcbiAgaWQ6IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOihbXnxcXF1dKylcXHwoW1xcc1xcU10qPylcXF1cXF0vZ1xuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplU2xhc2hDb21tYW5kID0gKG1hcmtlcjogU2xhc2hDb21tYW5kTWFya2VyKTogc3RyaW5nID0+XG4gIGBbW3NsYXNoX2NvbW1hbmQ6JHttYXJrZXIuaWR9fCR7bWFya2VyLmxhYmVsfV1dYFxuXG5leHBvcnQgY29uc3QgaGFzU2xhc2hDb21tYW5kTWFya2VyID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdGV4dC5pbmNsdWRlcygnW1tzbGFzaF9jb21tYW5kOicpXG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVNsYXNoQ29tbWFuZE1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogU2xhc2hDb21tYW5kTWFya2VyW10gPT4ge1xuICBpZiAoIWhhc1NsYXNoQ29tbWFuZE1hcmtlcih0ZXh0KSkgcmV0dXJuIFtdXG4gIGNvbnN0IG91dDogU2xhc2hDb21tYW5kTWFya2VyW10gPSBbXVxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVguc291cmNlLCAnZycpXG4gIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IHJlZ2V4LmV4ZWModGV4dClcbiAgd2hpbGUgKG1hdGNoKSB7XG4gICAgb3V0LnB1c2goeyBpZDogbWF0Y2hbMV0sIGxhYmVsOiBtYXRjaFsyXSB9KVxuICAgIG1hdGNoID0gcmVnZXguZXhlYyh0ZXh0KVxuICB9XG4gIHJldHVybiBvdXRcbn1cbiJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxJQUFNQSwwQkFBMEIsR0FBRyw4Q0FBOEM7QUFFeEYsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxNQUEwQjtFQUFBLDBCQUFBQyxNQUFBLENBQzNDRCxNQUFNLENBQUNFLEVBQUUsT0FBQUQsTUFBQSxDQUFJRCxNQUFNLENBQUNHLEtBQUs7QUFBQSxDQUFJO0FBRWxELE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsSUFBWSxFQUFjO0VBQzlELElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU8sS0FBSztFQUN2QixPQUFPQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztBQUMxQyxDQUFDO0FBRUQsT0FBTyxJQUFNQyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUFJRixJQUFZLEVBQTJCO0VBQzlFLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRTtFQUMzQyxJQUFNRyxHQUF5QixHQUFHLEVBQUU7RUFDcEMsSUFBTUMsS0FBSyxHQUFHLElBQUlDLE1BQU0sQ0FBQ1osMEJBQTBCLENBQUNhLE1BQU0sRUFBRSxHQUFHLENBQUM7RUFDaEUsSUFBSUMsS0FBNkIsR0FBR0gsS0FBSyxDQUFDSSxJQUFJLENBQUNSLElBQUksQ0FBQztFQUNwRCxPQUFPTyxLQUFLLEVBQUU7SUFDWkosR0FBRyxDQUFDTSxJQUFJLENBQUM7TUFBRVosRUFBRSxFQUFFVSxLQUFLLENBQUMsQ0FBQyxDQUFDO01BQUVULEtBQUssRUFBRVMsS0FBSyxDQUFDLENBQUM7SUFBRSxDQUFDLENBQUM7SUFDM0NBLEtBQUssR0FBR0gsS0FBSyxDQUFDSSxJQUFJLENBQUNSLElBQUksQ0FBQztFQUMxQjtFQUNBLE9BQU9HLEdBQUc7QUFDWixDQUFDIiwiaWdub3JlTGlzdCI6W119
|