@projectcor/maia-components 2.30.2-0 → 2.30.3-1

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.
Files changed (45) hide show
  1. package/lib/App.js +2 -4
  2. package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -73
  3. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +6 -3
  4. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +150 -391
  5. package/lib/components/molecules/ChatAIMessages/newStyles.js +18 -50
  6. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +381 -94
  7. package/lib/components/molecules/MessageFeedback/styles.js +2 -6
  8. package/lib/components/molecules/Sidebar/Sidebar.js +41 -18
  9. package/lib/components/organisms/ChatAI/ChatAI.js +21 -8
  10. package/lib/context/global-context.js +1 -1
  11. package/lib/hooks/useChatManager/useChatManager.js +59 -97
  12. package/lib/hooks/useChatMessages/useChatMessages.js +27 -28
  13. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  14. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +3 -4
  15. package/lib/hooks/useProjectSummaryConfig.js +17 -36
  16. package/lib/lang/br/index.js +31 -237
  17. package/lib/lang/en/index.js +31 -237
  18. package/lib/lang/es/index.js +31 -237
  19. package/lib/lang/fr/index.js +31 -237
  20. package/lib/services/maia/Agents/getAgents.js +25 -21
  21. package/lib/services/maia/Orchestrator/orchestrator.js +7 -9
  22. package/lib/services/utils/mapChatMessages.js +18 -21
  23. package/lib/store/maiaLastChatPersistence.js +3 -4
  24. package/lib/store/maiaPanelSessionPersistence.js +74 -0
  25. package/lib/store/sessions/sessionStreamManager.js +51 -98
  26. package/lib/store/sessions/sessions.types.js +1 -1
  27. package/lib/types/Chat.js +1 -1
  28. package/lib/utils/hitlAnalytics.js +3 -4
  29. package/lib/utils/streamActivityMessages.js +41 -106
  30. package/package.json +1 -1
  31. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +0 -116
  32. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +0 -197
  33. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +0 -157
  34. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +0 -123
  35. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +0 -115
  36. package/lib/components/atoms/ReasoningBlock/index.js +0 -3
  37. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +0 -54
  38. package/lib/dev/DevReasoningTimeline.js +0 -235
  39. package/lib/dev/reasoningTraceMock.js +0 -556
  40. package/lib/hooks/useReasoningTrace/index.js +0 -3
  41. package/lib/hooks/useReasoningTrace/reasoningStore.js +0 -142
  42. package/lib/hooks/useReasoningTrace/useReasoningTrace.js +0 -14
  43. package/lib/types/reasoning.js +0 -2
  44. package/lib/utils/autoApproveStorage.js +0 -26
  45. package/lib/utils/reasoningMappers.js +0 -62
@@ -1,116 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { ChevronRight } from '@projectcor/icons/lib/components/ChevronRight';
4
- import { useT } from '../../../hooks/useT';
5
- import { useReasoningTrace } from '../../../hooks/useReasoningTrace';
6
- import { formatActivityElapsed } from '../AgentActivityIndicator/AgentActivityIndicator.utils';
7
- import { deriveReasoningSummary } from '../../../utils/reasoningMappers';
8
- import { isVisibleStep, StepList } from './ReasoningSteps';
9
- import { SCExpandedTrace, SCReasoningBlock, SCSummaryToggle, SCTraceCollapse, SCTraceNote } from './ReasoningBlock.styles';
10
-
11
- /** Tiempo que queda visible el detalle antes de plegarse solo al terminar el turno. */
12
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- var AUTO_COLLAPSE_DELAY_MS = 900;
14
- // Preview del resultado de la tool: deshabilitado. El `result_preview` del back
15
- // son los primeros 200 chars del retorno crudo, así que lo que se mostraba era
16
- // el encabezado interno del payload ("DATOS DE PROYECTO"): redundante con el
17
- // label y ausente en las tools que devuelven JSON.
18
- // PENDIENTE: definir qué mostrar acá o dejar de emitir `result_preview` en el back.
19
- // const cleanPreview = (preview: string | undefined): string => {
20
- // if (!preview) return ''
21
- // return preview
22
- // .replace(/^[\s=\-_*#|~]+/, '')
23
- // .split('\n')[0]
24
- // .trim()
25
- // }
26
- //
27
- // const isMeaningfulPreview = (preview: string | undefined): boolean => {
28
- // const cleaned = cleanPreview(preview)
29
- // if (cleaned.length < 2) return false
30
- // if (cleaned.startsWith('{') || cleaned.startsWith('[')) return false
31
- // return cleaned.replace(/[^\p{L}\p{N}]/gu, '').length >= 2
32
- // }
33
-
34
- export var ReasoningBlock = function ReasoningBlock(_ref) {
35
- var _ref2, _liveTrace$summary;
36
- var messageId = _ref.messageId,
37
- trace = _ref.trace;
38
- var _useT = useT(),
39
- t = _useT.t;
40
- var liveTrace = useReasoningTrace(messageId);
41
- // Este bloque reemplaza al timeline en vivo cuando el turno cierra: si hay
42
- // snapshot propio ya terminado, monta expandido y se pliega solo, así se ve
43
- // el traspaso. Los mensajes del histórico no tienen snapshot => colapsados.
44
- var tookOverFromLive = useRef(liveTrace.phase === 'done' && liveTrace.steps.length > 0);
45
- var _useState = useState(tookOverFromLive.current),
46
- _useState2 = _slicedToArray(_useState, 2),
47
- isExpanded = _useState2[0],
48
- setIsExpanded = _useState2[1];
49
- useEffect(function () {
50
- if (!tookOverFromLive.current) return undefined;
51
- var timeoutId = window.setTimeout(function () {
52
- return setIsExpanded(false);
53
- }, AUTO_COLLAPSE_DELAY_MS);
54
- return function () {
55
- return window.clearTimeout(timeoutId);
56
- };
57
- }, []);
58
- var liveSteps = liveTrace.steps;
59
- var effectiveSummary = (_ref2 = (_liveTrace$summary = liveTrace.summary) !== null && _liveTrace$summary !== void 0 ? _liveTrace$summary : trace === null || trace === void 0 ? void 0 : trace.summary) !== null && _ref2 !== void 0 ? _ref2 : liveSteps.length ? deriveReasoningSummary(liveSteps) : null;
60
- var expandedSteps = useMemo(function () {
61
- var _trace$steps;
62
- return (liveSteps.length > 0 ? liveSteps : (_trace$steps = trace === null || trace === void 0 ? void 0 : trace.steps) !== null && _trace$steps !== void 0 ? _trace$steps : []).filter(isVisibleStep);
63
- }, [liveSteps, trace]);
64
- var handleToggle = useCallback(function () {
65
- return setIsExpanded(function (current) {
66
- return !current;
67
- });
68
- }, []);
69
- if (!expandedSteps.length) return null;
70
- var actionCount = deriveReasoningSummary(expandedSteps).toolCount;
71
- var durationLabel = (effectiveSummary === null || effectiveSummary === void 0 ? void 0 : effectiveSummary.durationMs) !== undefined ? formatActivityElapsed(Math.max(1, Math.round(effectiveSummary.durationMs / 1000))) : null;
72
- return /*#__PURE__*/_jsxs(SCReasoningBlock, {
73
- children: [/*#__PURE__*/_jsxs(SCSummaryToggle, {
74
- type: "button",
75
- onClick: handleToggle,
76
- "aria-expanded": isExpanded,
77
- title: isExpanded ? t('chat.reasoning.collapse') : t('chat.reasoning.expand'),
78
- children: [/*#__PURE__*/_jsx("span", {
79
- children: durationLabel ? t('chat.reasoning.thoughtFor', {
80
- duration: durationLabel
81
- }) : t('chat.reasoning.thought')
82
- }), actionCount > 0 && /*#__PURE__*/_jsxs(_Fragment, {
83
- children: [/*#__PURE__*/_jsx("span", {
84
- className: "ReasoningBlock-separator",
85
- "aria-hidden": true,
86
- children: "-"
87
- }), /*#__PURE__*/_jsx("span", {
88
- children: t('chat.reasoning.actionCount', {
89
- count: actionCount
90
- })
91
- })]
92
- }), /*#__PURE__*/_jsx("span", {
93
- className: "ReasoningBlock-chevron",
94
- "aria-hidden": true,
95
- children: /*#__PURE__*/_jsx(ChevronRight, {
96
- color: "currentColor",
97
- width: "18px",
98
- height: "18px"
99
- })
100
- })]
101
- }), /*#__PURE__*/_jsx(SCTraceCollapse, {
102
- $isOpen: isExpanded,
103
- "aria-hidden": !isExpanded,
104
- children: /*#__PURE__*/_jsxs(SCExpandedTrace, {
105
- $isOpen: isExpanded,
106
- children: [/*#__PURE__*/_jsx(StepList, {
107
- steps: expandedSteps,
108
- t: t
109
- }), (effectiveSummary === null || effectiveSummary === void 0 ? void 0 : effectiveSummary.truncated) && /*#__PURE__*/_jsx(SCTraceNote, {
110
- children: t('chat.reasoning.truncated')
111
- })]
112
- })
113
- })]
114
- });
115
- };
116
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwiQ2hldnJvblJpZ2h0IiwidXNlVCIsInVzZVJlYXNvbmluZ1RyYWNlIiwiZm9ybWF0QWN0aXZpdHlFbGFwc2VkIiwiZGVyaXZlUmVhc29uaW5nU3VtbWFyeSIsImlzVmlzaWJsZVN0ZXAiLCJTdGVwTGlzdCIsIlNDRXhwYW5kZWRUcmFjZSIsIlNDUmVhc29uaW5nQmxvY2siLCJTQ1N1bW1hcnlUb2dnbGUiLCJTQ1RyYWNlQ29sbGFwc2UiLCJTQ1RyYWNlTm90ZSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIkFVVE9fQ09MTEFQU0VfREVMQVlfTVMiLCJSZWFzb25pbmdCbG9jayIsIl9yZWYiLCJfcmVmMiIsIl9saXZlVHJhY2Ukc3VtbWFyeSIsIm1lc3NhZ2VJZCIsInRyYWNlIiwiX3VzZVQiLCJ0IiwibGl2ZVRyYWNlIiwidG9va092ZXJGcm9tTGl2ZSIsInBoYXNlIiwic3RlcHMiLCJsZW5ndGgiLCJfdXNlU3RhdGUiLCJjdXJyZW50IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJ1bmRlZmluZWQiLCJ0aW1lb3V0SWQiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwibGl2ZVN0ZXBzIiwiZWZmZWN0aXZlU3VtbWFyeSIsInN1bW1hcnkiLCJleHBhbmRlZFN0ZXBzIiwiX3RyYWNlJHN0ZXBzIiwiZmlsdGVyIiwiaGFuZGxlVG9nZ2xlIiwiYWN0aW9uQ291bnQiLCJ0b29sQ291bnQiLCJkdXJhdGlvbkxhYmVsIiwiZHVyYXRpb25NcyIsIk1hdGgiLCJtYXgiLCJyb3VuZCIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJ0aXRsZSIsImR1cmF0aW9uIiwiY2xhc3NOYW1lIiwiY291bnQiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiJGlzT3BlbiIsInRydW5jYXRlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1JlYXNvbmluZ0Jsb2NrL1JlYXNvbmluZ0Jsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVJlYXNvbmluZ1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVhc29uaW5nVHJhY2UnXG5pbXBvcnQgeyBmb3JtYXRBY3Rpdml0eUVsYXBzZWQgfSBmcm9tICcuLi9BZ2VudEFjdGl2aXR5SW5kaWNhdG9yL0FnZW50QWN0aXZpdHlJbmRpY2F0b3IudXRpbHMnXG5pbXBvcnQgeyBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVhc29uaW5nTWFwcGVycydcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nVHJhY2UgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9yZWFzb25pbmcnXG5pbXBvcnQgeyBpc1Zpc2libGVTdGVwLCBTdGVwTGlzdCB9IGZyb20gJy4vUmVhc29uaW5nU3RlcHMnXG5pbXBvcnQge1xuICBTQ0V4cGFuZGVkVHJhY2UsXG4gIFNDUmVhc29uaW5nQmxvY2ssXG4gIFNDU3VtbWFyeVRvZ2dsZSxcbiAgU0NUcmFjZUNvbGxhcHNlLFxuICBTQ1RyYWNlTm90ZSxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbi8qKiBUaWVtcG8gcXVlIHF1ZWRhIHZpc2libGUgZWwgZGV0YWxsZSBhbnRlcyBkZSBwbGVnYXJzZSBzb2xvIGFsIHRlcm1pbmFyIGVsIHR1cm5vLiAqL1xuY29uc3QgQVVUT19DT0xMQVBTRV9ERUxBWV9NUyA9IDkwMFxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdCbG9ja1Byb3BzID0ge1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICB0cmFjZT86IFJlYXNvbmluZ1RyYWNlIHwgbnVsbFxufVxuXG4vLyBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGUgbGEgdG9vbDogZGVzaGFiaWxpdGFkby4gRWwgYHJlc3VsdF9wcmV2aWV3YCBkZWwgYmFja1xuLy8gc29uIGxvcyBwcmltZXJvcyAyMDAgY2hhcnMgZGVsIHJldG9ybm8gY3J1ZG8sIGFzw60gcXVlIGxvIHF1ZSBzZSBtb3N0cmFiYSBlcmFcbi8vIGVsIGVuY2FiZXphZG8gaW50ZXJubyBkZWwgcGF5bG9hZCAoXCJEQVRPUyBERSBQUk9ZRUNUT1wiKTogcmVkdW5kYW50ZSBjb24gZWxcbi8vIGxhYmVsIHkgYXVzZW50ZSBlbiBsYXMgdG9vbHMgcXVlIGRldnVlbHZlbiBKU09OLlxuLy8gUEVORElFTlRFOiBkZWZpbmlyIHF1w6kgbW9zdHJhciBhY8OhIG8gZGVqYXIgZGUgZW1pdGlyIGByZXN1bHRfcHJldmlld2AgZW4gZWwgYmFjay5cbi8vIGNvbnN0IGNsZWFuUHJldmlldyA9IChwcmV2aWV3OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuLy8gICBpZiAoIXByZXZpZXcpIHJldHVybiAnJ1xuLy8gICByZXR1cm4gcHJldmlld1xuLy8gICAgIC5yZXBsYWNlKC9eW1xccz1cXC1fKiN8fl0rLywgJycpXG4vLyAgICAgLnNwbGl0KCdcXG4nKVswXVxuLy8gICAgIC50cmltKClcbi8vIH1cbi8vXG4vLyBjb25zdCBpc01lYW5pbmdmdWxQcmV2aWV3ID0gKHByZXZpZXc6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuLy8gICBjb25zdCBjbGVhbmVkID0gY2xlYW5QcmV2aWV3KHByZXZpZXcpXG4vLyAgIGlmIChjbGVhbmVkLmxlbmd0aCA8IDIpIHJldHVybiBmYWxzZVxuLy8gICBpZiAoY2xlYW5lZC5zdGFydHNXaXRoKCd7JykgfHwgY2xlYW5lZC5zdGFydHNXaXRoKCdbJykpIHJldHVybiBmYWxzZVxuLy8gICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9bXlxccHtMfVxccHtOfV0vZ3UsICcnKS5sZW5ndGggPj0gMlxuLy8gfVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nQmxvY2sgPSAoeyBtZXNzYWdlSWQsIHRyYWNlIH06IFJlYXNvbmluZ0Jsb2NrUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgbGl2ZVRyYWNlID0gdXNlUmVhc29uaW5nVHJhY2UobWVzc2FnZUlkKVxuICAvLyBFc3RlIGJsb3F1ZSByZWVtcGxhemEgYWwgdGltZWxpbmUgZW4gdml2byBjdWFuZG8gZWwgdHVybm8gY2llcnJhOiBzaSBoYXlcbiAgLy8gc25hcHNob3QgcHJvcGlvIHlhIHRlcm1pbmFkbywgbW9udGEgZXhwYW5kaWRvIHkgc2UgcGxpZWdhIHNvbG8sIGFzw60gc2UgdmVcbiAgLy8gZWwgdHJhc3Bhc28uIExvcyBtZW5zYWplcyBkZWwgaGlzdMOzcmljbyBubyB0aWVuZW4gc25hcHNob3QgPT4gY29sYXBzYWRvcy5cbiAgY29uc3QgdG9va092ZXJGcm9tTGl2ZSA9IHVzZVJlZihsaXZlVHJhY2UucGhhc2UgPT09ICdkb25lJyAmJiBsaXZlVHJhY2Uuc3RlcHMubGVuZ3RoID4gMClcbiAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUodG9va092ZXJGcm9tTGl2ZS5jdXJyZW50KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0b29rT3ZlckZyb21MaXZlLmN1cnJlbnQpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBzZXRJc0V4cGFuZGVkKGZhbHNlKSwgQVVUT19DT0xMQVBTRV9ERUxBWV9NUylcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGxpdmVTdGVwcyA9IGxpdmVUcmFjZS5zdGVwc1xuICBjb25zdCBlZmZlY3RpdmVTdW1tYXJ5ID1cbiAgICBsaXZlVHJhY2Uuc3VtbWFyeSA/PyB0cmFjZT8uc3VtbWFyeSA/PyAobGl2ZVN0ZXBzLmxlbmd0aCA/IGRlcml2ZVJlYXNvbmluZ1N1bW1hcnkobGl2ZVN0ZXBzKSA6IG51bGwpXG5cbiAgY29uc3QgZXhwYW5kZWRTdGVwcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGxpdmVTdGVwcy5sZW5ndGggPiAwID8gbGl2ZVN0ZXBzIDogKHRyYWNlPy5zdGVwcyA/PyBbXSkpLmZpbHRlcihpc1Zpc2libGVTdGVwKSxcbiAgICBbbGl2ZVN0ZXBzLCB0cmFjZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNldElzRXhwYW5kZWQoY3VycmVudCA9PiAhY3VycmVudCksIFtdKVxuXG4gIGlmICghZXhwYW5kZWRTdGVwcy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgY29uc3QgYWN0aW9uQ291bnQgPSBkZXJpdmVSZWFzb25pbmdTdW1tYXJ5KGV4cGFuZGVkU3RlcHMpLnRvb2xDb3VudFxuICBjb25zdCBkdXJhdGlvbkxhYmVsID1cbiAgICBlZmZlY3RpdmVTdW1tYXJ5Py5kdXJhdGlvbk1zICE9PSB1bmRlZmluZWRcbiAgICAgID8gZm9ybWF0QWN0aXZpdHlFbGFwc2VkKE1hdGgubWF4KDEsIE1hdGgucm91bmQoZWZmZWN0aXZlU3VtbWFyeS5kdXJhdGlvbk1zIC8gMTAwMCkpKVxuICAgICAgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NSZWFzb25pbmdCbG9jaz5cbiAgICAgIDxTQ1N1bW1hcnlUb2dnbGVcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgYXJpYS1leHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgdGl0bGU9e2lzRXhwYW5kZWQgPyB0KCdjaGF0LnJlYXNvbmluZy5jb2xsYXBzZScpIDogdCgnY2hhdC5yZWFzb25pbmcuZXhwYW5kJyl9XG4gICAgICA+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHtkdXJhdGlvbkxhYmVsID8gdCgnY2hhdC5yZWFzb25pbmcudGhvdWdodEZvcicsIHsgZHVyYXRpb246IGR1cmF0aW9uTGFiZWwgfSkgOiB0KCdjaGF0LnJlYXNvbmluZy50aG91Z2h0Jyl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAge2FjdGlvbkNvdW50ID4gMCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXNlcGFyYXRvclwiIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICAtXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57dCgnY2hhdC5yZWFzb25pbmcuYWN0aW9uQ291bnQnLCB7IGNvdW50OiBhY3Rpb25Db3VudCB9KX08L3NwYW4+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLWNoZXZyb25cIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNvbG9yPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCIxOHB4XCIgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvU0NTdW1tYXJ5VG9nZ2xlPlxuXG4gICAgICA8U0NUcmFjZUNvbGxhcHNlICRpc09wZW49e2lzRXhwYW5kZWR9IGFyaWEtaGlkZGVuPXshaXNFeHBhbmRlZH0+XG4gICAgICAgIDxTQ0V4cGFuZGVkVHJhY2UgJGlzT3Blbj17aXNFeHBhbmRlZH0+XG4gICAgICAgICAgPFN0ZXBMaXN0IHN0ZXBzPXtleHBhbmRlZFN0ZXBzfSB0PXt0fSAvPlxuICAgICAgICAgIHtlZmZlY3RpdmVTdW1tYXJ5Py50cnVuY2F0ZWQgJiYgPFNDVHJhY2VOb3RlPnt0KCdjaGF0LnJlYXNvbmluZy50cnVuY2F0ZWQnKX08L1NDVHJhY2VOb3RlPn1cbiAgICAgICAgPC9TQ0V4cGFuZGVkVHJhY2U+XG4gICAgICA8L1NDVHJhY2VDb2xsYXBzZT5cbiAgICA8L1NDUmVhc29uaW5nQmxvY2s+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssSUFBSUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNoRixTQUFTQyxZQUFZLFFBQVEsK0NBQStDO0FBRTVFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBQ3BFLFNBQVNDLHFCQUFxQixRQUFRLHdEQUF3RDtBQUM5RixTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFFeEUsU0FBU0MsYUFBYSxFQUFFQyxRQUFRLFFBQVEsa0JBQWtCO0FBQzFELFNBQ0VDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsV0FBVyxRQUNOLHlCQUF5Qjs7QUFFaEM7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUNBLElBQU1DLHNCQUFzQixHQUFHLEdBQUc7QUFPbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUFDLElBQUEsRUFBa0Q7RUFBQSxJQUFBQyxLQUFBLEVBQUFDLGtCQUFBO0VBQUEsSUFBNUNDLFNBQVMsR0FBQUgsSUFBQSxDQUFURyxTQUFTO0lBQUVD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VSxHQUFHVixDQUFDLENBQUMseUJBQXlCLENBQUMsR0FBR0EsQ0FBQyxDQUFDLHVCQUF1QixDQUFFO01BQUErQixRQUFBLGdCQUU5RTVDLElBQUE7UUFBQTRDLFFBQUEsRUFDR0wsYUFBYSxHQUFHMUIsQ0FBQyxDQUFDLDJCQUEyQixFQUFFO1VBQUVtQyxRQUFRLEVBQUVUO1FBQWMsQ0FBQyxDQUFDLEdBQUcxQixDQUFDLENBQUMsd0JBQXdCO01BQUMsQ0FDdEcsQ0FBQyxFQUNOd0IsV0FBVyxHQUFHLENBQUMsaUJBQ2RqQyxLQUFBLENBQUFGLFNBQUE7UUFBQTBDLFFBQUEsZ0JBQ0U1QyxJQUFBO1VBQU1pRCxTQUFTLEVBQUMsMEJBQTBCO1VBQUMsbUJBQVc7VUFBQUwsUUFBQSxFQUFDO1FBRXZELENBQU0sQ0FBQyxlQUNQNUMsSUFBQTtVQUFBNEMsUUFBQSxFQUFPL0IsQ0FBQyxDQUFDLDRCQUE0QixFQUFFO1lBQUVxQyxLQUFLLEVBQUViO1VBQVksQ0FBQztRQUFDLENBQU8sQ0FBQztNQUFBLENBQ3RFLENBQ0gsZUFDRHJDLElBQUE7UUFBTWlELFNBQVMsRUFBQyx3QkFBd0I7UUFBQyxtQkFBVztRQUFBTCxRQUFBLGVBQ2xENUMsSUFBQSxDQUFDYixZQUFZO1VBQUNnRSxLQUFLLEVBQUMsY0FBYztVQUFDQyxLQUFLLEVBQUMsTUFBTTtVQUFDQyxNQUFNLEVBQUM7UUFBTSxDQUFFO01BQUMsQ0FDNUQsQ0FBQztJQUFBLENBQ1EsQ0FBQyxlQUVsQnJELElBQUEsQ0FBQ0gsZUFBZTtNQUFDeUQsT0FBTyxFQUFFL0IsVUFBVztNQUFDLGVBQWEsQ0FBQ0EsVUFBVztNQUFBcUIsUUFBQSxlQUM3RHhDLEtBQUEsQ0FBQ1YsZUFBZTtRQUFDNEQsT0FBTyxFQUFFL0IsVUFBVztRQUFBcUIsUUFBQSxnQkFDbkM1QyxJQUFBLENBQUNQLFFBQVE7VUFBQ3dCLEtBQUssRUFBRWdCLGFBQWM7VUFBQ3BCLENBQUMsRUFBRUE7UUFBRSxDQUFFLENBQUMsRUFDdkMsQ0FBQWtCLGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUV3QixTQUFTLGtCQUFJdkQsSUFBQSxDQUFDRixXQUFXO1VBQUE4QyxRQUFBLEVBQUUvQixDQUFDLENBQUMsMEJBQTBCO1FBQUMsQ0FBYyxDQUFDO01BQUEsQ0FDM0U7SUFBQyxDQUNILENBQUM7RUFBQSxDQUNGLENBQUM7QUFFdkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,197 +0,0 @@
1
- import styled, { css, keyframes } from 'styled-components';
2
- import colors from '@projectcor/theme/lib/base/colors';
3
- export var LIVE_VIEWPORT_MAX_HEIGHT = 72;
4
- var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
5
- var fadeIn = keyframes(["from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:none;}"]);
6
- var stepReplace = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}"]);
7
-
8
- /* Halo del paso en curso: lo distingue de los ya cerrados sin cambiar su tamaño. */
9
- var markerPulse = keyframes(["0%{box-shadow:0 0 0 0 rgba(32,32,32,0.28);}70%{box-shadow:0 0 0 5px rgba(32,32,32,0);}100%{box-shadow:0 0 0 0 rgba(32,32,32,0);}"]);
10
-
11
- /** Gutter donde viven el marcador y la línea que une los pasos. */
12
- var MARKER_SIZE = 7;
13
- var GUTTER_WIDTH = 22;
14
- var MARKER_PADDING_Y = 4;
15
- /* Centra el marcador con la primera línea de texto (16px * 1.5 = 24px) + padding vertical. */
16
- var MARKER_TOP = MARKER_PADDING_Y + (24 - MARKER_SIZE) / 2;
17
- /** Centra el rail de 1px con el círculo de 7px. */
18
- var MARKER_RAIL_LEFT = (MARKER_SIZE - 1) / 2;
19
- /** Separación entre el rail y el borde del círculo. */
20
- var RAIL_GAP = 4;
21
- var MARKER_RAIL_TOP_END = MARKER_TOP - RAIL_GAP;
22
- var MARKER_RAIL_BOTTOM_START = MARKER_TOP + MARKER_SIZE + RAIL_GAP;
23
- var railBeforeBottom = function railBeforeBottom(railThrough, railTop) {
24
- if (railThrough) return '0';
25
- if (railTop) return "calc(100% - ".concat(MARKER_RAIL_TOP_END, "px)");
26
- return '0';
27
- };
28
- var stepRowPaddingBottom = function stepRowPaddingBottom(hasMarker, connectBelow) {
29
- if (hasMarker) return "".concat(MARKER_PADDING_Y, "px");
30
- return connectBelow ? '12px' : '0';
31
- };
32
- var railBeforeDisplay = function railBeforeDisplay(showChrome, railThrough, railTop) {
33
- return showChrome && (railThrough || railTop) ? 'block' : 'none';
34
- };
35
- var railAfterDisplay = function railAfterDisplay(showChrome, railBottom) {
36
- return showChrome && railBottom ? 'block' : 'none';
37
- };
38
- var railSegmentStyle = "\n position: absolute;\n left: ".concat(MARKER_RAIL_LEFT, "px;\n width: 1px;\n z-index: 0;\n background: ").concat(colors.text.mediumGray, ";\n opacity: 0.25;\n");
39
-
40
- /** El paso activo va a color pleno; los cerrados quedan atenuados. */
41
- var markerColor = function markerColor(status, isActive) {
42
- if (status === 'error') return colors.error.main;
43
- if (isActive) return colors.text.primary;
44
- return colors.text.mediumGray;
45
- };
46
- export var SCReasoningBlock = styled.div.withConfig({
47
- displayName: "ReasoningBlockstyles__SCReasoningBlock",
48
- componentId: "sc-y2psdb-0"
49
- })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
50
- export var SCLiveStep = styled.div.withConfig({
51
- displayName: "ReasoningBlockstyles__SCLiveStep",
52
- componentId: "sc-y2psdb-1"
53
- })(["width:100%;max-height:", "px;overflow:hidden;animation:", " 0.22s ease-out;"], LIVE_VIEWPORT_MAX_HEIGHT, stepReplace);
54
-
55
- /* Timeline en vivo: los pasos se apilan en vez de reemplazarse. */
56
- export var SCReasoningTimeline = styled.div.withConfig({
57
- displayName: "ReasoningBlockstyles__SCReasoningTimeline",
58
- componentId: "sc-y2psdb-2"
59
- })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
60
- var stepReplaceAnim = css(["animation:", " 0.24s ease-out both;"], stepReplace);
61
-
62
- /* Cada fila entra sola cuando llega su paso: sin delay escalonado (no es un listado que monta junto). */
63
- export var SCTimelineRow = styled.div.withConfig({
64
- displayName: "ReasoningBlockstyles__SCTimelineRow",
65
- componentId: "sc-y2psdb-3"
66
- })(["", ""], function (_ref) {
67
- var $seamless = _ref.$seamless;
68
- return $seamless ? css([""]) : stepReplaceAnim;
69
- });
70
-
71
- /* Va debajo del cuerpo del mensaje: separa del texto y no deja aire sobrante abajo. */
72
- export var SCTimelineIndicator = styled.div.withConfig({
73
- displayName: "ReasoningBlockstyles__SCTimelineIndicator",
74
- componentId: "sc-y2psdb-4"
75
- })(["padding-top:6px;animation:", " 0.24s ease-out both;> *{padding-bottom:0;}"], stepReplace);
76
-
77
- /** Respuesta final en stream: sin gutter de la traza, debajo del razonamiento. */
78
- export var SCFinalAnswerBody = styled.div.withConfig({
79
- displayName: "ReasoningBlockstyles__SCFinalAnswerBody",
80
- componentId: "sc-y2psdb-5"
81
- })(["width:100%;max-width:640px;"]);
82
-
83
- /* El markdown lo resuelve MaiaStreamdown (mismo variant que el cuerpo del mensaje). */
84
- export var SCThinkingText = styled.div.withConfig({
85
- displayName: "ReasoningBlockstyles__SCThinkingText",
86
- componentId: "sc-y2psdb-6"
87
- })(["overflow-wrap:anywhere;opacity:", ";font-style:", ";"], function (_ref2) {
88
- var $muted = _ref2.$muted;
89
- return $muted ? 0.6 : 1;
90
- }, function (_ref3) {
91
- var $muted = _ref3.$muted;
92
- return $muted ? 'italic' : 'normal';
93
- });
94
-
95
- /**
96
- * Fila de la traza. Solo los pasos de acción (tool/handoff) llevan círculo; las
97
- * narraciones comparten el gutter para que la línea las atraviese. El rail deja
98
- * 4px de separación antes de cada círculo.
99
- */
100
- export var SCStepRow = styled.div.withConfig({
101
- displayName: "ReasoningBlockstyles__SCStepRow",
102
- componentId: "sc-y2psdb-7"
103
- })(["position:relative;padding-left:", ";padding-top:", ";padding-bottom:", ";&::before{content:'';display:", ";", " top:0;bottom:", ";}&::after{content:'';display:", ";", " top:", "px;bottom:0;}.ReasoningBlock-marker{display:", ";position:absolute;left:0;top:", "px;z-index:1;width:", "px;height:", "px;border-radius:50%;background:", ";opacity:", ";animation:", " 1.6s ease-out infinite;}"], function (_ref4) {
104
- var $showChrome = _ref4.$showChrome;
105
- return $showChrome ? "".concat(GUTTER_WIDTH, "px") : '0';
106
- }, function (_ref5) {
107
- var $hasMarker = _ref5.$hasMarker;
108
- return $hasMarker ? "".concat(MARKER_PADDING_Y, "px") : '0';
109
- }, function (_ref6) {
110
- var $hasMarker = _ref6.$hasMarker,
111
- $connectBelow = _ref6.$connectBelow;
112
- return stepRowPaddingBottom($hasMarker, $connectBelow);
113
- }, function (_ref7) {
114
- var $showChrome = _ref7.$showChrome,
115
- $railThrough = _ref7.$railThrough,
116
- $railTop = _ref7.$railTop;
117
- return railBeforeDisplay($showChrome, $railThrough, $railTop);
118
- }, railSegmentStyle, function (_ref8) {
119
- var $railThrough = _ref8.$railThrough,
120
- $railTop = _ref8.$railTop;
121
- return railBeforeBottom($railThrough, $railTop);
122
- }, function (_ref9) {
123
- var $showChrome = _ref9.$showChrome,
124
- $railBottom = _ref9.$railBottom;
125
- return railAfterDisplay($showChrome, $railBottom);
126
- }, railSegmentStyle, MARKER_RAIL_BOTTOM_START, function (_ref0) {
127
- var $showChrome = _ref0.$showChrome;
128
- return $showChrome ? 'block' : 'none';
129
- }, MARKER_TOP, MARKER_SIZE, MARKER_SIZE, function (_ref1) {
130
- var $status = _ref1.$status,
131
- $isActive = _ref1.$isActive;
132
- return markerColor($status, $isActive);
133
- }, function (_ref10) {
134
- var $isActive = _ref10.$isActive;
135
- return $isActive ? 1 : 0.45;
136
- }, function (_ref11) {
137
- var $isActive = _ref11.$isActive;
138
- return $isActive ? markerPulse : 'none';
139
- });
140
- export var SCParallelContent = styled.div.withConfig({
141
- displayName: "ReasoningBlockstyles__SCParallelContent",
142
- componentId: "sc-y2psdb-8"
143
- })(["display:flex;flex-direction:column;min-width:0;"]);
144
- export var SCToolStep = styled.div.withConfig({
145
- displayName: "ReasoningBlockstyles__SCToolStep",
146
- componentId: "sc-y2psdb-9"
147
- })(["display:flex;align-items:baseline;gap:6px;font-size:16px;line-height:150%;color:#202020;.ReasoningBlock-toolLabel{flex-shrink:0;white-space:nowrap;color:", ";}.ReasoningBlock-toolPreview{flex:1;min-width:0;opacity:0.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"], function (_ref12) {
148
- var $status = _ref12.$status;
149
- return $status === 'error' ? colors.error.main : colors.text.primary;
150
- });
151
- export var SCParallelCount = styled.span.withConfig({
152
- displayName: "ReasoningBlockstyles__SCParallelCount",
153
- componentId: "sc-y2psdb-10"
154
- })(["flex-shrink:0;font-size:14px;line-height:150%;color:#808080;"]);
155
- export var SCParallelDetail = styled.div.withConfig({
156
- displayName: "ReasoningBlockstyles__SCParallelDetail",
157
- componentId: "sc-y2psdb-11"
158
- })(["margin-top:2px;font-size:13px;line-height:150%;color:#808080;overflow-wrap:anywhere;"]);
159
- export var SCSummaryToggle = styled.button.withConfig({
160
- displayName: "ReasoningBlockstyles__SCSummaryToggle",
161
- componentId: "sc-y2psdb-12"
162
- })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:400;line-height:26px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform 200ms ease;}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main);
163
-
164
- /* height: auto <-> 0 sin medir el contenido: el track de grid interpola entre 0fr y 1fr. */
165
- export var SCTraceCollapse = styled.div.withConfig({
166
- displayName: "ReasoningBlockstyles__SCTraceCollapse",
167
- componentId: "sc-y2psdb-13"
168
- })(["display:grid;grid-template-rows:", ";transition:grid-template-rows 240ms cubic-bezier(0.2,0,0,1);> *{min-height:0;overflow:hidden;}"], function (_ref13) {
169
- var $isOpen = _ref13.$isOpen;
170
- return $isOpen ? '1fr' : '0fr';
171
- });
172
- export var SCExpandedTrace = styled.div.withConfig({
173
- displayName: "ReasoningBlockstyles__SCExpandedTrace",
174
- componentId: "sc-y2psdb-14"
175
- })(["display:flex;flex-direction:column;opacity:", ";padding-bottom:", ";transform:translateY(", ");transition:opacity 140ms ease-out,transform 140ms ease-out,padding 240ms cubic-bezier(0.2,0,0,1);"], function (_ref14) {
176
- var $isOpen = _ref14.$isOpen;
177
- return $isOpen ? 1 : 0;
178
- }, function (_ref15) {
179
- var $isOpen = _ref15.$isOpen;
180
- return $isOpen ? '16px' : '0';
181
- }, function (_ref16) {
182
- var $isOpen = _ref16.$isOpen;
183
- return $isOpen ? '0' : '-4px';
184
- });
185
- export var SCTraceNote = styled.p.withConfig({
186
- displayName: "ReasoningBlockstyles__SCTraceNote",
187
- componentId: "sc-y2psdb-15"
188
- })(["margin:8px 0 0;font-size:11px;font-style:italic;color:", ";opacity:0.75;"], colors.text.mediumGray);
189
- export var SCLoadingLine = styled.div.withConfig({
190
- displayName: "ReasoningBlockstyles__SCLoadingLine",
191
- componentId: "sc-y2psdb-16"
192
- })(["height:10px;width:60%;border-radius:6px;background:linear-gradient(90deg,rgba(0,0,0,0.04) 0%,rgba(0,0,0,0.08) 50%,rgba(0,0,0,0.04) 100%);background-size:200% 100%;animation:", " 1.8s ease-in-out infinite;"], shimmer);
193
- export var SCErrorRow = styled.div.withConfig({
194
- displayName: "ReasoningBlockstyles__SCErrorRow",
195
- componentId: "sc-y2psdb-17"
196
- })(["display:flex;align-items:center;gap:8px;font-size:12px;color:", ";button{border:none;background:none;padding:0;cursor:pointer;font-size:12px;text-decoration:underline;color:", ";}"], colors.text.mediumGray, colors.text.primary);
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaXNPcGVuIiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiX3JlZjE1IiwiX3JlZjE2IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAyMlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnMTJweCcgOiAnMCdcbn1cblxuY29uc3QgcmFpbEJlZm9yZURpc3BsYXkgPSAoc2hvd0Nocm9tZT86IGJvb2xlYW4sIHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiAocmFpbFRocm91Z2ggfHwgcmFpbFRvcCkgPyAnYmxvY2snIDogJ25vbmUnXG5cbmNvbnN0IHJhaWxBZnRlckRpc3BsYXkgPSAoc2hvd0Nocm9tZT86IGJvb2xlYW4sIHJhaWxCb3R0b20/OiBib29sZWFuKTogc3RyaW5nID0+XG4gIHNob3dDaHJvbWUgJiYgcmFpbEJvdHRvbSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbFNlZ21lbnRTdHlsZSA9IGBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAke01BUktFUl9SQUlMX0xFRlR9cHg7XG4gIHdpZHRoOiAxcHg7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gIG9wYWNpdHk6IDAuMjU7XG5gXG5cbi8qKiBFbCBwYXNvIGFjdGl2byB2YSBhIGNvbG9yIHBsZW5vOyBsb3MgY2VycmFkb3MgcXVlZGFuIGF0ZW51YWRvcy4gKi9cbmNvbnN0IG1hcmtlckNvbG9yID0gKHN0YXR1cz86IHN0cmluZywgaXNBY3RpdmU/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0YXR1cyA9PT0gJ2Vycm9yJykgcmV0dXJuIGNvbG9ycy5lcnJvci5tYWluXG4gIGlmIChpc0FjdGl2ZSkgcmV0dXJuIGNvbG9ycy50ZXh0LnByaW1hcnlcbiAgcmV0dXJuIGNvbG9ycy50ZXh0Lm1lZGl1bUdyYXlcbn1cblxuZXhwb3J0IGNvbnN0IFNDUmVhc29uaW5nQmxvY2sgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogU2luIGdhcDogZWwgZXNwYWNpbyBoYWNpYSBlbCBkZXRhbGxlIHZpdmUgZW4gc3UgcGFkZGluZy10b3AsIGFzw60gY29sYXBzYSBqdW50byBjb24gw6lsLiAqL1xuYFxuXG5leHBvcnQgY29uc3QgU0NMaXZlU3RlcCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAke0xJVkVfVklFV1BPUlRfTUFYX0hFSUdIVH1weDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjIycyBlYXNlLW91dDtcbmBcblxuLyogVGltZWxpbmUgZW4gdml2bzogbG9zIHBhc29zIHNlIGFwaWxhbiBlbiB2ZXogZGUgcmVlbXBsYXphcnNlLiAqL1xuZXhwb3J0IGNvbnN0IFNDUmVhc29uaW5nVGltZWxpbmUgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmBcblxuY29uc3Qgc3RlcFJlcGxhY2VBbmltID0gY3NzYFxuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjRzIGVhc2Utb3V0IGJvdGg7XG5gXG5cbi8qIENhZGEgZmlsYSBlbnRyYSBzb2xhIGN1YW5kbyBsbGVnYSBzdSBwYXNvOiBzaW4gZGVsYXkgZXNjYWxvbmFkbyAobm8gZXMgdW4gbGlzdGFkbyBxdWUgbW9udGEganVudG8pLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGltZWxpbmVSb3cgPSBzdHlsZWQuZGl2PHsgJHNlYW1sZXNzPzogYm9vbGVhbiB9PmBcbiAgJHsoeyAkc2VhbWxlc3MgfSkgPT4gKCRzZWFtbGVzcyA/IGNzc2BgIDogc3RlcFJlcGxhY2VBbmltKX1cbmBcblxuLyogVmEgZGViYWpvIGRlbCBjdWVycG8gZGVsIG1lbnNhamU6IHNlcGFyYSBkZWwgdGV4dG8geSBubyBkZWphIGFpcmUgc29icmFudGUgYWJham8uICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZUluZGljYXRvciA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcblxuICA+ICoge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5gXG5cbi8qKiBSZXNwdWVzdGEgZmluYWwgZW4gc3RyZWFtOiBzaW4gZ3V0dGVyIGRlIGxhIHRyYXphLCBkZWJham8gZGVsIHJhem9uYW1pZW50by4gKi9cbmV4cG9ydCBjb25zdCBTQ0ZpbmFsQW5zd2VyQm9keSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuYFxuXG4vKiBFbCBtYXJrZG93biBsbyByZXN1ZWx2ZSBNYWlhU3RyZWFtZG93biAobWlzbW8gdmFyaWFudCBxdWUgZWwgY3VlcnBvIGRlbCBtZW5zYWplKS4gKi9cbmV4cG9ydCBjb25zdCBTQ1RoaW5raW5nVGV4dCA9IHN0eWxlZC5kaXY8eyAkbXV0ZWQ/OiBib29sZWFuIH0+YFxuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgLyogRWwgdGhpbmtpbmcgKHJhem9uYW1pZW50byBjcnVkbykgdmEgYXRlbnVhZG8gcGFyYSBkaXN0aW5ndWlybG8gZGUgbGEgbmFycmFjacOzbi4gKi9cbiAgb3BhY2l0eTogJHsoeyAkbXV0ZWQgfSkgPT4gKCRtdXRlZCA/IDAuNiA6IDEpfTtcbiAgZm9udC1zdHlsZTogJHsoeyAkbXV0ZWQgfSkgPT4gKCRtdXRlZCA/ICdpdGFsaWMnIDogJ25vcm1hbCcpfTtcbmBcblxuLyoqXG4gKiBGaWxhIGRlIGxhIHRyYXphLiBTb2xvIGxvcyBwYXNvcyBkZSBhY2Npw7NuICh0b29sL2hhbmRvZmYpIGxsZXZhbiBjw61yY3VsbzsgbGFzXG4gKiBuYXJyYWNpb25lcyBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXMgYXRyYXZpZXNlLiBFbCByYWlsIGRlamFcbiAqIDRweCBkZSBzZXBhcmFjacOzbiBhbnRlcyBkZSBjYWRhIGPDrXJjdWxvLlxuICovXG5leHBvcnQgY29uc3QgU0NTdGVwUm93ID0gc3R5bGVkLmRpdjx7XG4gICRzdGF0dXM/OiBzdHJpbmdcbiAgJGhhc01hcmtlcj86IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgJGlzQWN0aXZlPzogYm9vbGVhblxuICAkc2hvd0Nocm9tZT86IGJvb2xlYW5cbiAgJHJhaWxUaHJvdWdoPzogYm9vbGVhblxuICAkcmFpbFRvcD86IGJvb2xlYW5cbiAgJHJhaWxCb3R0b20/OiBib29sZWFuXG59PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gYCR7R1VUVEVSX1dJRFRIfXB4YCA6ICcwJyl9O1xuICBwYWRkaW5nLXRvcDogJHsoeyAkaGFzTWFya2VyIH0pID0+ICgkaGFzTWFya2VyID8gYCR7TUFSS0VSX1BBRERJTkdfWX1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyB9KSA9PiBzdGVwUm93UGFkZGluZ0JvdHRvbSgkaGFzTWFya2VyLCAkY29ubmVjdEJlbG93KX07XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wIH0pID0+IHJhaWxCZWZvcmVEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gICAgJHtyYWlsU2VnbWVudFN0eWxlfVxuICAgIHRvcDogMDtcbiAgICBib3R0b206ICR7KHsgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlQm90dG9tKCRyYWlsVGhyb3VnaCwgJHJhaWxUb3ApfTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSB9KSA9PiByYWlsQWZ0ZXJEaXNwbGF5KCRzaG93Q2hyb21lLCAkcmFpbEJvdHRvbSl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6ICR7TUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUfXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1tYXJrZXIge1xuICAgIGRpc3BsYXk6ICR7KHsgJHNob3dDaHJvbWUgfSkgPT4gKCRzaG93Q2hyb21lID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJHtNQVJLRVJfVE9QfXB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6ICR7TUFSS0VSX1NJWkV9cHg7XG4gICAgaGVpZ2h0OiAke01BUktFUl9TSVpFfXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7ICRzdGF0dXMsICRpc0FjdGl2ZSB9KSA9PiBtYXJrZXJDb2xvcigkc3RhdHVzLCAkaXNBY3RpdmUpfTtcbiAgICBvcGFjaXR5OiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gMSA6IDAuNDUpfTtcbiAgICBhbmltYXRpb246ICR7KHsgJGlzQWN0aXZlIH0pID0+ICgkaXNBY3RpdmUgPyBtYXJrZXJQdWxzZSA6ICdub25lJyl9IDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sU3RlcCA9IHN0eWxlZC5kaXY8eyAkc3RhdHVzPzogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzIwMjAyMDtcblxuICAuUmVhc29uaW5nQmxvY2stdG9vbExhYmVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAkeyh7ICRzdGF0dXMgfSkgPT4gKCRzdGF0dXMgPT09ICdlcnJvcicgPyBjb2xvcnMuZXJyb3IubWFpbiA6IGNvbG9ycy50ZXh0LnByaW1hcnkpfTtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay10b29sUHJldmlldyB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDUGFyYWxsZWxDb3VudCA9IHN0eWxlZC5zcGFuYFxuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsRGV0YWlsID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICBjb2xvcjogIzgwODA4MDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1N1bW1hcnlUb2dnbGUgPSBzdHlsZWQuYnV0dG9uYFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBjb2xvcjogIzgwODA4MDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZTtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC4yNHMgZWFzZS1vdXQ7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgJjpkaXNhYmxlZCAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICR7Y29sb3JzLnByaW1hcnkubWFpbn07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1jaGV2cm9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcbiAgfVxuXG4gIC8qIENvbGFwc2FkbyBhcHVudGEgYSBsYSBkZXJlY2hhIChvcmllbnRhY2nDs24gbmF0aXZhIGRlbCBpY29ubyk7IGV4cGFuZGlkbywgYXJyaWJhLiAqL1xuICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxuXG4gIC8qIEVsIGd1aW9uIGVzIHBhcnRlIGRlbCB0ZXh0byBlbiBlbCBtYXF1ZXRhZG8sIG5vIHVuIHNlcGFyYWRvciBhdGVudWFkby4gKi9cbmBcblxuLyogaGVpZ2h0OiBhdXRvIDwtPiAwIHNpbiBtZWRpciBlbCBjb250ZW5pZG86IGVsIHRyYWNrIGRlIGdyaWQgaW50ZXJwb2xhIGVudHJlIDBmciB5IDFmci4gKi9cbmV4cG9ydCBjb25zdCBTQ1RyYWNlQ29sbGFwc2UgPSBzdHlsZWQuZGl2PHsgJGlzT3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMWZyJyA6ICcwZnInKX07XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAyNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcblxuICA+ICoge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFeHBhbmRlZFRyYWNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6ICR7KHsgJGlzT3BlbiB9KSA9PiAoJGlzT3BlbiA/IDEgOiAwKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMTZweCcgOiAnMCcpfTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7KHsgJGlzT3BlbiB9KSA9PiAoJGlzT3BlbiA/ICcwJyA6ICctNHB4Jyl9KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0LFxuICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLW91dCxcbiAgICBwYWRkaW5nIDI0MG1zIGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUcmFjZU5vdGUgPSBzdHlsZWQucGBcbiAgbWFyZ2luOiA4cHggMCAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gIG9wYWNpdHk6IDAuNzU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xvYWRpbmdMaW5lID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMHB4O1xuICB3aWR0aDogNjAlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLCAwLCAwLCAwLjA0KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjA4KSA1MCUsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMTAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246ICR7c2hpbW1lcn0gMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRXJyb3JSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcblxuICBidXR0b24ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsRUFBRTtBQUUxQyxJQUFNQyxPQUFPLEdBQUdILFNBQVMsdUVBR3hCO0FBRUQsSUFBTUksTUFBTSxHQUFHSixTQUFTLDhFQUd2QjtBQUVELElBQU1LLFdBQVcsR0FBR0wsU0FBUyw2RUFHNUI7O0FBRUQ7QUFDQSxJQUFNTSxXQUFXLEdBQUdOLFNBQVMsc0lBSTVCOztBQUVEO0FBQ0EsSUFBTU8sV0FBVyxHQUFHLENBQUM7QUFDckIsSUFBTUMsWUFBWSxHQUFHLEVBQUU7QUFDdkIsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQztBQUMxQjtBQUNBLElBQU1DLFVBQVUsR0FBR0QsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLEdBQUdGLFdBQVcsSUFBSSxDQUFDO0FBQzVEO0FBQ0EsSUFBTUksZ0JBQWdCLEdBQUcsQ0FBQ0osV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzlDO0FBQ0EsSUFBTUssUUFBUSxHQUFHLENBQUM7QUFDbEIsSUFBTUMsbUJBQW1CLEdBQUdILFVBQVUsR0FBR0UsUUFBUTtBQUNqRCxJQUFNRSx3QkFBd0IsR0FBR0osVUFBVSxHQUFHSCxXQUFXLEdBQUdLLFFBQVE7QUFFcEUsSUFBTUcsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsV0FBcUIsRUFBRUMsT0FBaUIsRUFBYTtFQUM3RSxJQUFJRCxXQUFXLEVBQUUsT0FBTyxHQUFHO0VBQzNCLElBQUlDLE9BQU8sRUFBRSxzQkFBQUMsTUFBQSxDQUFzQkwsbUJBQW1CO0VBQ3RELE9BQU8sR0FBRztBQUNaLENBQUM7QUFFRCxJQUFNTSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxTQUFtQixFQUFFQyxZQUFzQixFQUFhO0VBQ3BGLElBQUlELFNBQVMsRUFBRSxVQUFBRixNQUFBLENBQVVULGdCQUFnQjtFQUN6QyxPQUFPWSxZQUFZLEdBQUcsTUFBTSxHQUFHLEdBQUc7QUFDcEMsQ0FBQztBQUVELElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLFVBQW9CLEVBQUVQLFdBQXFCLEVBQUVDLE9BQWlCO0VBQUEsT0FDdkZNLFVBQVUsS0FBS1AsV0FBVyxJQUFJQyxPQUFPLENBQUMsR0FBRyxPQUFPLEdBQUcsTUFBTTtBQUFBO0FBRTNELElBQU1PLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlELFVBQW9CLEVBQUVFLFVBQW9CO0VBQUEsT0FDbEVGLFVBQVUsSUFBSUUsVUFBVSxHQUFHLE9BQU8sR0FBRyxNQUFNO0FBQUE7QUFFN0MsSUFBTUMsZ0JBQWdCLHVDQUFBUixNQUFBLENBRVpQLGdCQUFnQix1REFBQU8sTUFBQSxDQUdWakIsTUFBTSxDQUFDMEIsSUFBSSxDQUFDQyxVQUFVLDBCQUVyQzs7QUFFRDtBQUNBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxNQUFlLEVBQUVDLFFBQWtCLEVBQWE7RUFDbkUsSUFBSUQsTUFBTSxLQUFLLE9BQU8sRUFBRSxPQUFPN0IsTUFBTSxDQUFDK0IsS0FBSyxDQUFDQyxJQUFJO0VBQ2hELElBQUlGLFFBQVEsRUFBRSxPQUFPOUIsTUFBTSxDQUFDMEIsSUFBSSxDQUFDTyxPQUFPO0VBQ3hDLE9BQU9qQyxNQUFNLENBQUMwQixJQUFJLENBQUNDLFVBQVU7QUFDL0IsQ0FBQztBQUVELE9BQU8sSUFBTU8sZ0JBQWdCLEdBQUdyQyxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0VBTXpDO0FBRUQsT0FBTyxJQUFNQyxVQUFVLEdBQUcxQyxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0ZBRXBCckMsd0JBQXdCLEVBRXpCRyxXQUFXLENBQ3pCOztBQUVEO0FBQ0EsT0FBTyxJQUFNb0MsbUJBQW1CLEdBQUczQyxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0VBSzVDO0FBRUQsSUFBTUcsZUFBZSxHQUFHM0MsR0FBRywwQ0FDWk0sV0FBVyxDQUN6Qjs7QUFFRDtBQUNBLE9BQU8sSUFBTXNDLGFBQWEsR0FBRzdDLE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxhQUNuQyxVQUFBSyxJQUFBO0VBQUEsSUFBR0MsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7RUFBQSxPQUFRQSxTQUFTLEdBQUc5QyxHQUFHLFNBQUsyQyxlQUFlO0FBQUEsQ0FBQyxDQUMzRDs7QUFFRDtBQUNBLE9BQU8sSUFBTUksbUJBQW1CLEdBQUdoRCxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsa0ZBRTlCbEMsV0FBVyxDQUt6Qjs7QUFFRDtBQUNBLE9BQU8sSUFBTTBDLGlCQUFpQixHQUFHakQsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG1DQUcxQzs7QUFFRDtBQUNBLE9BQU8sSUFBTVMsY0FBYyxHQUFHbEQsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZEQUczQixVQUFBVSxLQUFBO0VBQUEsSUFBR0MsTUFBTSxHQUFBRCxLQUFBLENBQU5DLE1BQU07RUFBQSxPQUFRQSxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFBQSxDQUFDLEVBQy9CLFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxNQUFNLEdBQUFDLEtBQUEsQ0FBTkQsTUFBTTtFQUFBLE9BQVFBLE1BQU0sR0FBRyxRQUFRLEdBQUcsUUFBUTtBQUFBLENBQUMsQ0FDN0Q7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUUsU0FBUyxHQUFHdEQsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDBZQVlqQixVQUFBYyxLQUFBO0VBQUEsSUFBR0MsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7RUFBQSxPQUFRQSxXQUFXLE1BQUFwQyxNQUFBLENBQU1WLFlBQVksVUFBTyxHQUFHO0FBQUEsQ0FBQyxFQUMvRCxVQUFBK0MsS0FBQTtFQUFBLElBQUdDLFVBQVUsR0FBQUQsS0FBQSxDQUFWQyxVQUFVO0VBQUEsT0FBUUEsVUFBVSxNQUFBdEMsTUFBQSxDQUFNVCxnQkFBZ0IsVUFBTyxHQUFHO0FBQUEsQ0FBQyxFQUM3RCxVQUFBZ0QsS0FBQTtFQUFBLElBQUdELFVBQVUsR0FBQUMsS0FBQSxDQUFWRCxVQUFVO0lBQUVFLGFBQWEsR0FBQUQsS0FBQSxDQUFiQyxhQUFhO0VBQUEsT0FBT3ZDLG9CQUFvQixDQUFDcUMsVUFBVSxFQUFFRSxhQUFhLENBQUM7QUFBQSxHQUl2RixVQUFBQyxLQUFBO0VBQUEsSUFBR0wsV0FBVyxHQUFBSyxLQUFBLENBQVhMLFdBQVc7SUFBRU0sWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7SUFBRUMsUUFBUSxHQUFBRixLQUFBLENBQVJFLFFBQVE7RUFBQSxPQUFPdkMsaUJBQWlCLENBQUNnQyxXQUFXLEVBQUVNLFlBQVksRUFBRUMsUUFBUSxDQUFDO0FBQUEsR0FDNUduQyxnQkFBZ0IsRUFFUixVQUFBb0MsS0FBQTtFQUFBLElBQUdGLFlBQVksR0FBQUUsS0FBQSxDQUFaRixZQUFZO0lBQUVDLFFBQVEsR0FBQUMsS0FBQSxDQUFSRCxRQUFRO0VBQUEsT0FBTzlDLGdCQUFnQixDQUFDNkMsWUFBWSxFQUFFQyxRQUFRLENBQUM7QUFBQSxHQUt2RSxVQUFBRSxLQUFBO0VBQUEsSUFBR1QsV0FBVyxHQUFBUyxLQUFBLENBQVhULFdBQVc7SUFBRVUsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7RUFBQSxPQUFPeEMsZ0JBQWdCLENBQUM4QixXQUFXLEVBQUVVLFdBQVcsQ0FBQztBQUFBLEdBQ3JGdEMsZ0JBQWdCLEVBQ1haLHdCQUF3QixFQUtwQixVQUFBbUQsS0FBQTtFQUFBLElBQUdYLFdBQVcsR0FBQVcsS0FBQSxDQUFYWCxXQUFXO0VBQUEsT0FBUUEsV0FBVyxHQUFHLE9BQU8sR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQUd6RDVDLFVBQVUsRUFFUkgsV0FBVyxFQUNWQSxXQUFXLEVBRVAsVUFBQTJELEtBQUE7RUFBQSxJQUFHQyxPQUFPLEdBQUFELEtBQUEsQ0FBUEMsT0FBTztJQUFFQyxTQUFTLEdBQUFGLEtBQUEsQ0FBVEUsU0FBUztFQUFBLE9BQU92QyxXQUFXLENBQUNzQyxPQUFPLEVBQUVDLFNBQVMsQ0FBQztBQUFBLEdBQzlELFVBQUFDLE1BQUE7RUFBQSxJQUFHRCxTQUFTLEdBQUFDLE1BQUEsQ0FBVEQsU0FBUztFQUFBLE9BQVFBLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSTtBQUFBLENBQUMsRUFDdkMsVUFBQUUsTUFBQTtFQUFBLElBQUdGLFNBQVMsR0FBQUUsTUFBQSxDQUFURixTQUFTO0VBQUEsT0FBUUEsU0FBUyxHQUFHOUQsV0FBVyxHQUFHLE1BQU07QUFBQSxDQUFDLENBRXJFO0FBRUQsT0FBTyxJQUFNaUUsaUJBQWlCLEdBQUd6RSxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdURBSTFDO0FBRUQsT0FBTyxJQUFNaUMsVUFBVSxHQUFHMUUsTUFBTSxDQUFDc0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLCtSQVd2QixVQUFBa0MsTUFBQTtFQUFBLElBQUdOLE9BQU8sR0FBQU0sTUFBQSxDQUFQTixPQUFPO0VBQUEsT0FBUUEsT0FBTyxLQUFLLE9BQU8sR0FBR2xFLE1BQU0sQ0FBQytCLEtBQUssQ0FBQ0MsSUFBSSxHQUFHaEMsTUFBTSxDQUFDMEIsSUFBSSxDQUFDTyxPQUFPO0FBQUEsQ0FBQyxDQVc1RjtBQUVELE9BQU8sSUFBTXdDLGVBQWUsR0FBRzVFLE1BQU0sQ0FBQzZFLElBQUksQ0FBQXRDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0VBS3pDO0FBRUQsT0FBTyxJQUFNcUMsZ0JBQWdCLEdBQUc5RSxNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNEZBTXpDO0FBRUQsT0FBTyxJQUFNc0MsZUFBZSxHQUFHL0UsTUFBTSxDQUFDZ0YsTUFBTSxDQUFBekMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxnb0JBZTdCbkMsTUFBTSxFQUdSSCxNQUFNLENBQUMwQixJQUFJLENBQUNPLE9BQU8sRUFhUGpDLE1BQU0sQ0FBQ2lDLE9BQU8sQ0FBQ0QsSUFBSSxDQWdCM0M7O0FBRUQ7QUFDQSxPQUFPLElBQU04QyxlQUFlLEdBQUdqRixNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNElBRWpCLFVBQUF5QyxNQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxNQUFBLENBQVBDLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsS0FBSyxHQUFHLEtBQUs7QUFBQSxDQUFDLENBT2pFO0FBRUQsT0FBTyxJQUFNQyxlQUFlLEdBQUdwRixNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseU1BRzVCLFVBQUE0QyxNQUFBO0VBQUEsSUFBR0YsT0FBTyxHQUFBRSxNQUFBLENBQVBGLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFBQSxDQUFDLEVBQzNCLFVBQUFHLE1BQUE7RUFBQSxJQUFHSCxPQUFPLEdBQUFHLE1BQUEsQ0FBUEgsT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxNQUFNLEdBQUcsR0FBRztBQUFBLENBQUMsRUFDbkMsVUFBQUksTUFBQTtFQUFBLElBQUdKLE9BQU8sR0FBQUksTUFBQSxDQUFQSixPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLEdBQUcsR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQUtsRTtBQUVELE9BQU8sSUFBTUssV0FBVyxHQUFHeEYsTUFBTSxDQUFDeUYsQ0FBQyxDQUFBbEQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxpRkFJeEJ0QyxNQUFNLENBQUMwQixJQUFJLENBQUNDLFVBQVUsQ0FFaEM7QUFFRCxPQUFPLElBQU00RCxhQUFhLEdBQUcxRixNQUFNLENBQUNzQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscU5BTXhCcEMsT0FBTyxDQUNyQjtBQUVELE9BQU8sSUFBTXNGLFVBQVUsR0FBRzNGLE1BQU0sQ0FBQ3NDLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0TEFLekJ0QyxNQUFNLENBQUMwQixJQUFJLENBQUNDLFVBQVUsRUFTcEIzQixNQUFNLENBQUMwQixJQUFJLENBQUNPLE9BQU8sQ0FFL0IiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,157 +0,0 @@
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 React from 'react';
5
- import { resolveToolStepPastLabel } from '../../../utils/streamActivityMessages';
6
- import { MaiaStreamdown } from '../MaiaStreamdown/MaiaStreamdown';
7
- import { displayRowKey, groupParallelSteps, parallelStepDetail } from './groupParallelSteps';
8
- import { SCParallelContent, SCParallelCount, SCParallelDetail, SCStepRow, SCThinkingText, SCToolStep } from './ReasoningBlock.styles';
9
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
- export var stepLabel = function stepLabel(step, t) {
11
- if (step.type === 'handoff') {
12
- return step.to ? t('chat.reasoning.calledAgent', {
13
- agent: step.to
14
- }) : t('chat.activity.executedAction');
15
- }
16
- if (!step.tool) return t('chat.activity.executedAction');
17
- return resolveToolStepPastLabel(step.tool, t);
18
- };
19
-
20
- /** Los `thinking` son el razonamiento crudo del modelo: fuera de la vista por defecto. */
21
- export var isVisibleStep = function isVisibleStep(step) {
22
- return step.type !== 'thinking';
23
- };
24
-
25
- /** Solo tool/handoff llevan círculo en la traza; narraciones y thinking no. */
26
- export var isActionStep = function isActionStep(step) {
27
- return step.type === 'tool' || step.type === 'handoff';
28
- };
29
- var stepRowRailProps = function stepRowRailProps(hasMarker, connectAbove, connectBelow) {
30
- var showChrome = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
31
- return {
32
- $showChrome: showChrome,
33
- $hasMarker: hasMarker,
34
- $connectAbove: !!connectAbove,
35
- $connectBelow: !!connectBelow,
36
- $railThrough: showChrome && !hasMarker && !!(connectAbove || connectBelow),
37
- $railTop: showChrome && hasMarker && !!connectAbove,
38
- $railBottom: showChrome && hasMarker && !!connectBelow
39
- };
40
- };
41
- export var ReasoningStepRow = function ReasoningStepRow(_ref) {
42
- var step = _ref.step,
43
- t = _ref.t,
44
- connectAbove = _ref.connectAbove,
45
- connectBelow = _ref.connectBelow,
46
- isActive = _ref.isActive,
47
- _ref$showChrome = _ref.showChrome,
48
- showChrome = _ref$showChrome === void 0 ? true : _ref$showChrome;
49
- var isText = step.type === 'narration' || step.type === 'thinking';
50
- var hasMarker = isActionStep(step);
51
- if (isText && !step.text) return null;
52
- return /*#__PURE__*/_jsxs(SCStepRow, _objectSpread(_objectSpread({}, stepRowRailProps(hasMarker, connectAbove, connectBelow, showChrome)), {}, {
53
- $status: step.status,
54
- $isActive: showChrome ? isActive : false,
55
- children: [showChrome && hasMarker && /*#__PURE__*/_jsx("span", {
56
- className: "ReasoningBlock-marker",
57
- "aria-hidden": true
58
- }), isText ? /*#__PURE__*/_jsx(SCThinkingText, {
59
- $muted: step.type === 'thinking',
60
- children: /*#__PURE__*/_jsx(MaiaStreamdown, {
61
- variant: "chat",
62
- children: step.text
63
- })
64
- }) : /*#__PURE__*/_jsx(SCToolStep, {
65
- $status: step.status,
66
- children: /*#__PURE__*/_jsx("span", {
67
- className: "ReasoningBlock-toolLabel",
68
- children: stepLabel(step, t)
69
- })
70
- })]
71
- }));
72
- };
73
- var ParallelStepRow = function ParallelStepRow(_ref2) {
74
- var row = _ref2.row,
75
- t = _ref2.t,
76
- connectAbove = _ref2.connectAbove,
77
- connectBelow = _ref2.connectBelow,
78
- showDetail = _ref2.showDetail,
79
- isActive = _ref2.isActive,
80
- _ref2$showChrome = _ref2.showChrome,
81
- showChrome = _ref2$showChrome === void 0 ? true : _ref2$showChrome;
82
- var detail = showDetail ? parallelStepDetail(row.steps) : null;
83
- var countLabel = t('chat.reasoning.parallelCount', {
84
- count: row.steps.length
85
- });
86
- return /*#__PURE__*/_jsxs(SCStepRow, _objectSpread(_objectSpread({}, stepRowRailProps(true, connectAbove, connectBelow, showChrome)), {}, {
87
- $status: row.status,
88
- $isActive: showChrome ? isActive : false,
89
- children: [showChrome && /*#__PURE__*/_jsx("span", {
90
- className: "ReasoningBlock-marker",
91
- "aria-hidden": true
92
- }), /*#__PURE__*/_jsxs(SCParallelContent, {
93
- children: [/*#__PURE__*/_jsxs(SCToolStep, {
94
- $status: row.status,
95
- children: [/*#__PURE__*/_jsx("span", {
96
- className: "ReasoningBlock-toolLabel",
97
- children: row.label
98
- }), /*#__PURE__*/_jsx(SCParallelCount, {
99
- "aria-label": countLabel,
100
- children: countLabel
101
- })]
102
- }), detail && /*#__PURE__*/_jsx(SCParallelDetail, {
103
- children: detail
104
- })]
105
- })]
106
- }));
107
- };
108
- export var DisplayStepRow = function DisplayStepRow(_ref3) {
109
- var row = _ref3.row,
110
- t = _ref3.t,
111
- connectAbove = _ref3.connectAbove,
112
- connectBelow = _ref3.connectBelow,
113
- showDetail = _ref3.showDetail,
114
- isActive = _ref3.isActive,
115
- _ref3$showChrome = _ref3.showChrome,
116
- showChrome = _ref3$showChrome === void 0 ? true : _ref3$showChrome;
117
- if (row.kind === 'parallel') {
118
- return /*#__PURE__*/_jsx(ParallelStepRow, {
119
- row: row,
120
- t: t,
121
- connectAbove: connectAbove,
122
- connectBelow: connectBelow,
123
- showDetail: showDetail,
124
- isActive: isActive,
125
- showChrome: showChrome
126
- });
127
- }
128
- return /*#__PURE__*/_jsx(ReasoningStepRow, {
129
- step: row.step,
130
- t: t,
131
- connectAbove: connectAbove,
132
- connectBelow: connectBelow,
133
- isActive: isActive,
134
- showChrome: showChrome
135
- });
136
- };
137
- export var StepList = function StepList(_ref4) {
138
- var steps = _ref4.steps,
139
- t = _ref4.t,
140
- _ref4$showDetail = _ref4.showDetail,
141
- showDetail = _ref4$showDetail === void 0 ? true : _ref4$showDetail;
142
- var rows = groupParallelSteps(steps, function (step) {
143
- return stepLabel(step, t);
144
- });
145
- return /*#__PURE__*/_jsx(_Fragment, {
146
- children: rows.map(function (row, index) {
147
- return /*#__PURE__*/_jsx(DisplayStepRow, {
148
- row: row,
149
- t: t,
150
- connectAbove: index > 0,
151
- connectBelow: index < rows.length - 1,
152
- showDetail: showDetail
153
- }, displayRowKey(row));
154
- })
155
- });
156
- };
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsIlNDUGFyYWxsZWxDb250ZW50IiwiU0NQYXJhbGxlbENvdW50IiwiU0NQYXJhbGxlbERldGFpbCIsIlNDU3RlcFJvdyIsIlNDVGhpbmtpbmdUZXh0IiwiU0NUb29sU3RlcCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsInN0ZXBMYWJlbCIsInN0ZXAiLCJ0IiwidHlwZSIsInRvIiwiYWdlbnQiLCJ0b29sIiwiaXNWaXNpYmxlU3RlcCIsImlzQWN0aW9uU3RlcCIsInN0ZXBSb3dSYWlsUHJvcHMiLCJoYXNNYXJrZXIiLCJjb25uZWN0QWJvdmUiLCJjb25uZWN0QmVsb3ciLCJzaG93Q2hyb21lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiJHNob3dDaHJvbWUiLCIkaGFzTWFya2VyIiwiJGNvbm5lY3RBYm92ZSIsIiRjb25uZWN0QmVsb3ciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIiRyYWlsQm90dG9tIiwiUmVhc29uaW5nU3RlcFJvdyIsIl9yZWYiLCJpc0FjdGl2ZSIsIl9yZWYkc2hvd0Nocm9tZSIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiJG11dGVkIiwidmFyaWFudCIsIlBhcmFsbGVsU3RlcFJvdyIsIl9yZWYyIiwicm93Iiwic2hvd0RldGFpbCIsIl9yZWYyJHNob3dDaHJvbWUiLCJkZXRhaWwiLCJzdGVwcyIsImNvdW50TGFiZWwiLCJjb3VudCIsImxhYmVsIiwiRGlzcGxheVN0ZXBSb3ciLCJfcmVmMyIsIl9yZWYzJHNob3dDaHJvbWUiLCJraW5kIiwiU3RlcExpc3QiLCJfcmVmNCIsIl9yZWY0JHNob3dEZXRhaWwiLCJyb3dzIiwibWFwIiwiaW5kZXgiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdTdGVwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBkaXNwbGF5Um93S2V5LCBncm91cFBhcmFsbGVsU3RlcHMsIHBhcmFsbGVsU3RlcERldGFpbCB9IGZyb20gJy4vZ3JvdXBQYXJhbGxlbFN0ZXBzJ1xuaW1wb3J0IHtcbiAgU0NQYXJhbGxlbENvbnRlbnQsXG4gIFNDUGFyYWxsZWxDb3VudCxcbiAgU0NQYXJhbGxlbERldGFpbCxcbiAgU0NTdGVwUm93LFxuICBTQ1RoaW5raW5nVGV4dCxcbiAgU0NUb29sU3RlcCxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0ZUZuID0gUmV0dXJuVHlwZTx0eXBlb2YgdXNlVD5bJ3QnXVxuXG5leHBvcnQgY29uc3Qgc3RlcExhYmVsID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHQ6IFRyYW5zbGF0ZUZuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0ZXAudHlwZSA9PT0gJ2hhbmRvZmYnKSB7XG4gICAgcmV0dXJuIHN0ZXAudG8gPyB0KCdjaGF0LnJlYXNvbmluZy5jYWxsZWRBZ2VudCcsIHsgYWdlbnQ6IHN0ZXAudG8gfSkgOiB0KCdjaGF0LmFjdGl2aXR5LmV4ZWN1dGVkQWN0aW9uJylcbiAgfVxuICBpZiAoIXN0ZXAudG9vbCkgcmV0dXJuIHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICByZXR1cm4gcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsKHN0ZXAudG9vbCwgdClcbn1cblxuLyoqIExvcyBgdGhpbmtpbmdgIHNvbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gZGVsIG1vZGVsbzogZnVlcmEgZGUgbGEgdmlzdGEgcG9yIGRlZmVjdG8uICovXG5leHBvcnQgY29uc3QgaXNWaXNpYmxlU3RlcCA9IChzdGVwOiBSZWFzb25pbmdTdGVwKTogYm9vbGVhbiA9PiBzdGVwLnR5cGUgIT09ICd0aGlua2luZydcblxuLyoqIFNvbG8gdG9vbC9oYW5kb2ZmIGxsZXZhbiBjw61yY3VsbyBlbiBsYSB0cmF6YTsgbmFycmFjaW9uZXMgeSB0aGlua2luZyBuby4gKi9cbmV4cG9ydCBjb25zdCBpc0FjdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZidcblxuY29uc3Qgc3RlcFJvd1JhaWxQcm9wcyA9IChcbiAgaGFzTWFya2VyOiBib29sZWFuLFxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuLFxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuLFxuICBzaG93Q2hyb21lID0gdHJ1ZVxuKToge1xuICAkc2hvd0Nocm9tZTogYm9vbGVhblxuICAkaGFzTWFya2VyOiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU6IGJvb2xlYW5cbiAgJGNvbm5lY3RCZWxvdzogYm9vbGVhblxuICAkcmFpbFRocm91Z2g6IGJvb2xlYW5cbiAgJHJhaWxUb3A6IGJvb2xlYW5cbiAgJHJhaWxCb3R0b206IGJvb2xlYW5cbn0gPT4gKHtcbiAgJHNob3dDaHJvbWU6IHNob3dDaHJvbWUsXG4gICRoYXNNYXJrZXI6IGhhc01hcmtlcixcbiAgJGNvbm5lY3RBYm92ZTogISFjb25uZWN0QWJvdmUsXG4gICRjb25uZWN0QmVsb3c6ICEhY29ubmVjdEJlbG93LFxuICAkcmFpbFRocm91Z2g6IHNob3dDaHJvbWUgJiYgIWhhc01hcmtlciAmJiAhIShjb25uZWN0QWJvdmUgfHwgY29ubmVjdEJlbG93KSxcbiAgJHJhaWxUb3A6IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEFib3ZlLFxuICAkcmFpbEJvdHRvbTogc2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG59KVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICAvKiogQ8OtcmN1bG9zIHkgcmFpbDogc29sbyBlbiBlbCBibG9xdWUgZXhwYW5kaWRvLCBubyBlbiB0aW1lbGluZSBlbiB2aXZvLiAqL1xuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJcIiBhcmlhLWhpZGRlbiAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCI+e3N0ZXAudGV4dH08L01haWFTdHJlYW1kb3duPlxuICAgICAgICA8L1NDVGhpbmtpbmdUZXh0PlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDVG9vbFN0ZXAgJHN0YXR1cz17c3RlcC5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntzdGVwTGFiZWwoc3RlcCwgdCl9PC9zcGFuPlxuICAgICAgICAgIHsvKiBQcmV2aWV3IGRlbCByZXN1bHRhZG8gZGVzaGFiaWxpdGFkbzogdmVyIG5vdGEgZW4gUmVhc29uaW5nQmxvY2sudHN4ICovfVxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICApfVxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbnR5cGUgUGFyYWxsZWxTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogRXh0cmFjdDxSZWFzb25pbmdEaXNwbGF5Um93LCB7IGtpbmQ6ICdwYXJhbGxlbCcgfT5cbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5jb25zdCBQYXJhbGxlbFN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBEaXNwbGF5U3RlcFJvdyA9ICh7XG4gIHJvdyxcbiAgdCxcbiAgY29ubmVjdEFib3ZlLFxuICBjb25uZWN0QmVsb3csXG4gIHNob3dEZXRhaWwsXG4gIGlzQWN0aXZlLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbn06IERpc3BsYXlTdGVwUm93UHJvcHMpID0+IHtcbiAgaWYgKHJvdy5raW5kID09PSAncGFyYWxsZWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYXJhbGxlbFN0ZXBSb3dcbiAgICAgICAgcm93PXtyb3d9XG4gICAgICAgIHQ9e3R9XG4gICAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgICAgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UmVhc29uaW5nU3RlcFJvd1xuICAgICAgc3RlcD17cm93LnN0ZXB9XG4gICAgICB0PXt0fVxuICAgICAgY29ubmVjdEFib3ZlPXtjb25uZWN0QWJvdmV9XG4gICAgICBjb25uZWN0QmVsb3c9e2Nvbm5lY3RCZWxvd31cbiAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBTdGVwTGlzdFByb3BzID0ge1xuICBzdGVwczogUmVhc29uaW5nU3RlcFtdXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBTdGVwTGlzdCA9ICh7IHN0ZXBzLCB0LCBzaG93RGV0YWlsID0gdHJ1ZSB9OiBTdGVwTGlzdFByb3BzKSA9PiB7XG4gIGNvbnN0IHJvd3MgPSBncm91cFBhcmFsbGVsU3RlcHMoc3RlcHMsIHN0ZXAgPT4gc3RlcExhYmVsKHN0ZXAsIHQpKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtyb3dzLm1hcCgocm93LCBpbmRleCkgPT4gKFxuICAgICAgICA8RGlzcGxheVN0ZXBSb3dcbiAgICAgICAgICBrZXk9e2Rpc3BsYXlSb3dLZXkocm93KX1cbiAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICB0PXt0fVxuICAgICAgICAgIGNvbm5lY3RBYm92ZT17aW5kZXggPiAwfVxuICAgICAgICAgIGNvbm5lY3RCZWxvdz17aW5kZXggPCByb3dzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBR3pCLFNBQVNDLHdCQUF3QixRQUFRLHVDQUF1QztBQUNoRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBR2pFLFNBQVNDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUM1RixTQUNFQyxp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