@projectcor/maia-components 2.31.0 → 2.31.1-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.
- package/CHANGELOG.md +664 -0
- package/lib/App.js +4 -2
- package/lib/components/atoms/MAIAInput/MAIAInput.js +62 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +121 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +197 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +182 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +123 -0
- package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +115 -0
- package/lib/components/atoms/ReasoningBlock/index.js +3 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +58 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +391 -120
- package/lib/components/molecules/ChatAIMessages/newStyles.js +50 -18
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +42 -21
- package/lib/components/molecules/MessageFeedback/styles.js +6 -2
- package/lib/context/global-context.js +1 -1
- package/lib/dev/DevReasoningTimeline.js +237 -0
- package/lib/dev/reasoningTraceMock.js +556 -0
- package/lib/hooks/useChatManager/useChatManager.js +111 -63
- package/lib/hooks/useChatMessages/useChatMessages.js +28 -27
- package/lib/hooks/useEvent.js +2 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -3
- package/lib/hooks/useProjectSummaryConfig.js +45 -17
- package/lib/hooks/useReasoningTrace/index.js +3 -0
- package/lib/hooks/useReasoningTrace/reasoningStore.js +170 -0
- package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
- package/lib/lang/br/index.js +237 -31
- package/lib/lang/en/index.js +237 -31
- package/lib/lang/es/index.js +237 -31
- package/lib/lang/fr/index.js +237 -31
- package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
- package/lib/services/utils/mapChatMessages.js +21 -18
- package/lib/store/sessions/sessionStreamManager.js +99 -51
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/types/Chat.js +1 -1
- package/lib/types/reasoning.js +2 -0
- package/lib/utils/autoApproveStorage.js +26 -0
- package/lib/utils/hitlAnalytics.js +4 -3
- package/lib/utils/reasoningMappers.js +62 -0
- package/lib/utils/streamActivityMessages.js +106 -41
- package/package.json +1 -1
- package/README.md +0 -2
|
@@ -27,28 +27,43 @@ export var SCMessagesScroll = styled.div.withConfig({
|
|
|
27
27
|
export var SCMessagesInner = styled.div.withConfig({
|
|
28
28
|
displayName: "newStyles__SCMessagesInner",
|
|
29
29
|
componentId: "sc-1k23l8x-3"
|
|
30
|
-
})(["flex-grow:1;display:flex;flex-direction:column;gap:
|
|
31
|
-
var $
|
|
32
|
-
return $isMarketplaceGlobal ? '0 16px 16px;' : '0 16px;';
|
|
33
|
-
}, fadeIn, function (_ref3) {
|
|
34
|
-
var $scrollOnParent = _ref3.$scrollOnParent;
|
|
30
|
+
})(["flex-grow:1;display:flex;flex-direction:column;gap:24px;padding:0 16px;width:100%;max-width:864px;animation:", " 0.5s ease-out;", " &::after{content:'';flex-shrink:0;height:40px;margin-top:-24px;}"], fadeIn, function (_ref2) {
|
|
31
|
+
var $scrollOnParent = _ref2.$scrollOnParent;
|
|
35
32
|
return $scrollOnParent ? 'overflow: visible;' : 'overflow-y: auto; overscroll-behavior-y: contain;';
|
|
36
33
|
});
|
|
34
|
+
export var SCTurnSpacer = styled.div.withConfig({
|
|
35
|
+
displayName: "newStyles__SCTurnSpacer",
|
|
36
|
+
componentId: "sc-1k23l8x-4"
|
|
37
|
+
})(["height:0;flex-shrink:0;margin-top:-24px;pointer-events:none;"]);
|
|
38
|
+
|
|
39
|
+
/** Difuminado en los bordes del área scrolleable: indica que hay contenido fuera de vista. */
|
|
40
|
+
var messagesEdgeGradient = css(["position:absolute;left:0;right:0;height:48px;width:100%;max-width:864px;margin:0 auto;pointer-events:none;z-index:5;opacity:", ";transition:opacity 0.3s ease-in-out;"], function (_ref3) {
|
|
41
|
+
var $show = _ref3.$show;
|
|
42
|
+
return $show ? 1 : 0;
|
|
43
|
+
});
|
|
44
|
+
export var SCMessagesGradientTop = styled.div.withConfig({
|
|
45
|
+
displayName: "newStyles__SCMessagesGradientTop",
|
|
46
|
+
componentId: "sc-1k23l8x-5"
|
|
47
|
+
})(["", " top:0;background:linear-gradient( to bottom,#ffffff 0%,rgba(255,255,255,0.9) 30%,rgba(255,255,255,0.5) 70%,rgba(255,255,255,0) 100% );"], messagesEdgeGradient);
|
|
48
|
+
export var SCMessagesGradientBottom = styled.div.withConfig({
|
|
49
|
+
displayName: "newStyles__SCMessagesGradientBottom",
|
|
50
|
+
componentId: "sc-1k23l8x-6"
|
|
51
|
+
})(["", " bottom:0;background:linear-gradient( to top,#ffffff 0%,rgba(255,255,255,0.9) 30%,rgba(255,255,255,0.5) 70%,rgba(255,255,255,0) 100% );"], messagesEdgeGradient);
|
|
37
52
|
|
|
38
53
|
/** Columna para loading/loading messages */
|
|
39
54
|
export var SCLoadingMessagesColumn = styled.div.withConfig({
|
|
40
55
|
displayName: "newStyles__SCLoadingMessagesColumn",
|
|
41
|
-
componentId: "sc-1k23l8x-
|
|
56
|
+
componentId: "sc-1k23l8x-7"
|
|
42
57
|
})(["display:flex;flex-direction:column;margin-top:-24px;"]);
|
|
43
58
|
|
|
44
59
|
/** Lista de opciones (MessageOptions) */
|
|
45
60
|
export var SCOptionsList = styled.div.withConfig({
|
|
46
61
|
displayName: "newStyles__SCOptionsList",
|
|
47
|
-
componentId: "sc-1k23l8x-
|
|
62
|
+
componentId: "sc-1k23l8x-8"
|
|
48
63
|
})(["display:flex;flex-direction:column;gap:12px;"]);
|
|
49
64
|
export var SCOptionItem = styled.div.withConfig({
|
|
50
65
|
displayName: "newStyles__SCOptionItem",
|
|
51
|
-
componentId: "sc-1k23l8x-
|
|
66
|
+
componentId: "sc-1k23l8x-9"
|
|
52
67
|
})(["color:", ";font-size:14px;line-height:140%;cursor:", ";opacity:", ";"], GLOBAL_COLORS.dark, function (_ref4) {
|
|
53
68
|
var $hasSelection = _ref4.$hasSelection;
|
|
54
69
|
return $hasSelection ? 'not-allowed' : 'pointer';
|
|
@@ -60,23 +75,23 @@ export var SCOptionItem = styled.div.withConfig({
|
|
|
60
75
|
/** Enlace de tarea (task link) */
|
|
61
76
|
export var SCTaskLink = styled.a.withConfig({
|
|
62
77
|
displayName: "newStyles__SCTaskLink",
|
|
63
|
-
componentId: "sc-1k23l8x-
|
|
78
|
+
componentId: "sc-1k23l8x-10"
|
|
64
79
|
})(["text-decoration:underline !important;color:#337ab7 !important;cursor:pointer;"]);
|
|
65
80
|
|
|
66
81
|
/** Enlace de proyecto (project link) */
|
|
67
82
|
export var SCProjectLink = styled.a.withConfig({
|
|
68
83
|
displayName: "newStyles__SCProjectLink",
|
|
69
|
-
componentId: "sc-1k23l8x-
|
|
84
|
+
componentId: "sc-1k23l8x-11"
|
|
70
85
|
})(["cursor:pointer;"]);
|
|
71
86
|
export var SCProjectLinkIcon = styled.span.withConfig({
|
|
72
87
|
displayName: "newStyles__SCProjectLinkIcon",
|
|
73
|
-
componentId: "sc-1k23l8x-
|
|
88
|
+
componentId: "sc-1k23l8x-12"
|
|
74
89
|
})(["display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;line-height:0;position:relative;top:4px;"]);
|
|
75
90
|
|
|
76
91
|
/** Wrapper de un mensaje (posición, flex, gap) */
|
|
77
92
|
export var SCMessageItemWrapper = styled.div.withConfig({
|
|
78
93
|
displayName: "newStyles__SCMessageItemWrapper",
|
|
79
|
-
componentId: "sc-1k23l8x-
|
|
94
|
+
componentId: "sc-1k23l8x-13"
|
|
80
95
|
})(["position:relative;display:flex;gap:8px;flex-direction:column;", ""], function (_ref6) {
|
|
81
96
|
var $isAssistant = _ref6.$isAssistant;
|
|
82
97
|
return $isAssistant && 'justify-content: start;';
|
|
@@ -85,13 +100,13 @@ export var SCMessageItemWrapper = styled.div.withConfig({
|
|
|
85
100
|
/** Contenedor interior del mensaje (attachments + approval + content) */
|
|
86
101
|
export var SCMessageItemInner = styled.div.withConfig({
|
|
87
102
|
displayName: "newStyles__SCMessageItemInner",
|
|
88
|
-
componentId: "sc-1k23l8x-
|
|
103
|
+
componentId: "sc-1k23l8x-14"
|
|
89
104
|
})(["display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;"]);
|
|
90
105
|
|
|
91
106
|
/** Fila de attachments (flex end para usuario, flex start para assistant) */
|
|
92
107
|
export var SCAttachmentsRow = styled.div.withConfig({
|
|
93
108
|
displayName: "newStyles__SCAttachmentsRow",
|
|
94
|
-
componentId: "sc-1k23l8x-
|
|
109
|
+
componentId: "sc-1k23l8x-15"
|
|
95
110
|
})(["display:flex;justify-content:", ";gap:12px;flex-wrap:wrap;"], function (_ref7) {
|
|
96
111
|
var $isAssistant = _ref7.$isAssistant;
|
|
97
112
|
return $isAssistant ? 'flex-start' : 'flex-end';
|
|
@@ -100,13 +115,13 @@ export var SCAttachmentsRow = styled.div.withConfig({
|
|
|
100
115
|
/** Columna de acciones de approval */
|
|
101
116
|
export var SCApprovalActionsColumn = styled.div.withConfig({
|
|
102
117
|
displayName: "newStyles__SCApprovalActionsColumn",
|
|
103
|
-
componentId: "sc-1k23l8x-
|
|
118
|
+
componentId: "sc-1k23l8x-16"
|
|
104
119
|
})(["display:flex;flex-direction:column;gap:12px;"]);
|
|
105
120
|
|
|
106
121
|
/** Wrapper del contenido del mensaje. contain limita repaint durante streaming al área del texto. */
|
|
107
122
|
export var SCCAIMessageWrapper = styled.div.withConfig({
|
|
108
123
|
displayName: "newStyles__SCCAIMessageWrapper",
|
|
109
|
-
componentId: "sc-1k23l8x-
|
|
124
|
+
componentId: "sc-1k23l8x-17"
|
|
110
125
|
})(["contain:layout style;min-width:0;max-width:100%;padding:", ";border-radius:8px;background-color:", ";display:flex;flex-direction:column;gap:16px;", " &.has-task-links a[data-cor-link='task']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;position:relative;display:inline !important;padding:2px 0 !important;padding-left:22px !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;&:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:#bed5eb !important;border-radius:4px !important;}&::before{content:'';position:absolute;left:0;top:0;width:20px;height:20px;background-image:", ";background-size:contain;background-repeat:no-repeat;background-position:center;}}&.has-project-links a[data-cor-link='project']{text-decoration:none !important;color:#202020 !important;font-weight:600 !important;display:inline-flex !important;align-items:baseline !important;gap:2px !important;padding:2px 0 !important;white-space:normal !important;overflow-wrap:break-word !important;word-break:break-word !important;vertical-align:baseline !important;&:hover{text-decoration-line:underline !important;text-decoration-color:#b3b3b3 !important;text-decoration-thickness:1px !important;text-underline-offset:2px !important;background:#bed5eb !important;border-radius:4px !important;}}", ""], function (_ref8) {
|
|
111
126
|
var isCurrentUser = _ref8.isCurrentUser;
|
|
112
127
|
return isCurrentUser ? '12px' : '0px';
|
|
@@ -126,6 +141,23 @@ export var SCCAIMessageWrapper = styled.div.withConfig({
|
|
|
126
141
|
var fadeInUp = keyframes(["from{opacity:0;transform:translateX(-50%) translateY(10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}"]);
|
|
127
142
|
export var ScrollToBottomButton = styled.button.withConfig({
|
|
128
143
|
displayName: "newStyles__ScrollToBottomButton",
|
|
129
|
-
componentId: "sc-1k23l8x-
|
|
144
|
+
componentId: "sc-1k23l8x-18"
|
|
130
145
|
})(["display:flex;width:40px;height:40px;justify-content:center;align-items:center;gap:10px;aspect-ratio:1/1;border-radius:21.5px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 4px 4px 0 rgba(0,0,0,0.05);position:absolute;bottom:15px;left:50%;transform:translateX(-50%);cursor:pointer;z-index:10;animation:", " 0.3s ease;transition:background 0.3s ease;pointer-events:auto;&:hover{background:#f7f7f7;}"], fadeInUp);
|
|
131
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJCTFVFX0lBX0NPTE9SUyIsIkdMT0JBTF9DT0xPUlMiLCJUQVNLX0xJTktfSUNPTl9DU1NfVVJMIiwiZmFkZUluIiwiTWVzc2FnZVdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTWVzc2FnZXNPdXRlciIsIl9yZWYiLCIkc2Nyb2xsT25QYXJlbnQiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiX3JlZjIiLCIkaXNNYXJrZXRwbGFjZUdsb2JhbCIsIl9yZWYzIiwiU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4iLCJTQ09wdGlvbnNMaXN0IiwiU0NPcHRpb25JdGVtIiwiZGFyayIsIl9yZWY0IiwiJGhhc1NlbGVjdGlvbiIsIl9yZWY1IiwiJGRpbW1lZCIsIlNDVGFza0xpbmsiLCJhIiwiU0NQcm9qZWN0TGluayIsIlNDUHJvamVjdExpbmtJY29uIiwic3BhbiIsIlNDTWVzc2FnZUl0ZW1XcmFwcGVyIiwiX3JlZjYiLCIkaXNBc3Npc3RhbnQiLCJTQ01lc3NhZ2VJdGVtSW5uZXIiLCJTQ0F0dGFjaG1lbnRzUm93IiwiX3JlZjciLCJTQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbiIsIlNDQ0FJTWVzc2FnZVdyYXBwZXIiLCJfcmVmOCIsImlzQ3VycmVudFVzZXIiLCJfcmVmOSIsImlzRnJvbnRlbmRDYW5jZWxsZWQiLCJfcmVmMCIsIl9yZWYxIiwiZmFkZUluVXAiLCJTY3JvbGxUb0JvdHRvbUJ1dHRvbiIsImJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMsIEdMT0JBTF9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgVEFTS19MSU5LX0lDT05fQ1NTX1VSTCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90YXNrTGlua0ljb24nXG5cbmNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgTWVzc2FnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAxNnB4O1xuYFxuXG4vKiogQ29udGVuZWRvciBleHRlcmlvciBkZWwgw6FyZWEgZGUgbWVuc2FqZXMuIEN1YW5kbyBleHBhbmRlZCwgbm8gaGFjZSBzY3JvbGw7IGVsIHNjcm9sbCBsbyB0aWVuZSBTQ01lc3NhZ2VzU2Nyb2xsLiAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZXNPdXRlciA9IHN0eWxlZC5kaXY8eyAkc2Nyb2xsT25QYXJlbnQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gICR7KHsgJHNjcm9sbE9uUGFyZW50IH0pID0+ICgkc2Nyb2xsT25QYXJlbnQgPyAnJyA6ICdvdmVyZmxvdzogYXV0bzsgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluOycpfVxuYFxuXG4vKiogQ3VhbmRvIGV4cGFuZGVkLCBlc3RlIGNvbnRlbmVkb3IgaGFjZSBzY3JvbGwgcGFyYSBxdWUgZWwgYm90w7NuIFwiaXIgYWwgZmluYWxcIiBxdWVkZSBmaWpvIGVuIGVsIMOhcmVhIGRlbCBjaGF0ICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlc1Njcm9sbCA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gXG5cbi8qKiBDb250ZW5lZG9yIGludGVyaW9yIGRlIG1lbnNhamVzIChtYXhXaWR0aCA4NjRweCkuIEN1YW5kbyBleHBhbmRlZCwgb3ZlcmZsb3cgdmlzaWJsZSBwYXJhIHF1ZSBzY3JvbGwgbG8gdGVuZ2EgU0NNZXNzYWdlc1Njcm9sbCAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZXNJbm5lciA9IHN0eWxlZC5kaXY8eyAkc2Nyb2xsT25QYXJlbnQ/OiBib29sZWFuOyAkaXNNYXJrZXRwbGFjZUdsb2JhbD86IGJvb2xlYW4gfT5gXG4gIGZsZXgtZ3JvdzogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAzNnB4O1xuICBwYWRkaW5nOiAkeyh7ICRpc01hcmtldHBsYWNlR2xvYmFsIH0pID0+ICgkaXNNYXJrZXRwbGFjZUdsb2JhbCA/ICcwIDE2cHggMTZweDsnIDogJzAgMTZweDsnKX1cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuNXMgZWFzZS1vdXQ7XG4gICR7KHsgJHNjcm9sbE9uUGFyZW50IH0pID0+XG4gICAgJHNjcm9sbE9uUGFyZW50ID8gJ292ZXJmbG93OiB2aXNpYmxlOycgOiAnb3ZlcmZsb3cteTogYXV0bzsgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluOyd9XG5gXG5cbi8qKiBDb2x1bW5hIHBhcmEgbG9hZGluZy9sb2FkaW5nIG1lc3NhZ2VzICovXG5leHBvcnQgY29uc3QgU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBTQ01lc3NhZ2VzSW5uZXIgdXNhIGdhcCAzNnB4IGVudHJlIG1lbnNhamVzOyBlbCBpbmRpY2Fkb3IgZGViZSBxdWVkYXIgYSAxMnB4IGRlbCBjb250ZW5pZG8gYW50ZXJpb3IgKi9cbiAgbWFyZ2luLXRvcDogLTI0cHg7XG5gXG5cbi8qKiBMaXN0YSBkZSBvcGNpb25lcyAoTWVzc2FnZU9wdGlvbnMpICovXG5leHBvcnQgY29uc3QgU0NPcHRpb25zTGlzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT3B0aW9uSXRlbSA9IHN0eWxlZC5kaXY8eyAkaGFzU2VsZWN0aW9uPzogYm9vbGVhbjsgJGRpbW1lZD86IGJvb2xlYW4gfT5gXG4gIGNvbG9yOiAke0dMT0JBTF9DT0xPUlMuZGFya307XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGN1cnNvcjogJHsoeyAkaGFzU2VsZWN0aW9uIH0pID0+ICgkaGFzU2VsZWN0aW9uID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyl9O1xuICBvcGFjaXR5OiAkeyh7ICRkaW1tZWQgfSkgPT4gKCRkaW1tZWQgPyAwLjUgOiAxKX07XG5gXG5cbi8qKiBFbmxhY2UgZGUgdGFyZWEgKHRhc2sgbGluaykgKi9cbmV4cG9ydCBjb25zdCBTQ1Rhc2tMaW5rID0gc3R5bGVkLmFgXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuLyoqIEVubGFjZSBkZSBwcm95ZWN0byAocHJvamVjdCBsaW5rKSAqL1xuZXhwb3J0IGNvbnN0IFNDUHJvamVjdExpbmsgPSBzdHlsZWQuYWBcbiAgY3Vyc29yOiBwb2ludGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NQcm9qZWN0TGlua0ljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA0cHg7XG5gXG5cbi8qKiBXcmFwcGVyIGRlIHVuIG1lbnNhamUgKHBvc2ljacOzbiwgZmxleCwgZ2FwKSAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZUl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdjx7ICRpc0Fzc2lzdGFudD86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICR7KHsgJGlzQXNzaXN0YW50IH0pID0+ICRpc0Fzc2lzdGFudCAmJiAnanVzdGlmeS1jb250ZW50OiBzdGFydDsnfVxuYFxuXG4vKiogQ29udGVuZWRvciBpbnRlcmlvciBkZWwgbWVuc2FqZSAoYXR0YWNobWVudHMgKyBhcHByb3ZhbCArIGNvbnRlbnQpICovXG5leHBvcnQgY29uc3QgU0NNZXNzYWdlSXRlbUlubmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG4vKiogRmlsYSBkZSBhdHRhY2htZW50cyAoZmxleCBlbmQgcGFyYSB1c3VhcmlvLCBmbGV4IHN0YXJ0IHBhcmEgYXNzaXN0YW50KSAqL1xuZXhwb3J0IGNvbnN0IFNDQXR0YWNobWVudHNSb3cgPSBzdHlsZWQuZGl2PHsgJGlzQXNzaXN0YW50PzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiAkeyh7ICRpc0Fzc2lzdGFudCB9KSA9PiAoJGlzQXNzaXN0YW50ID8gJ2ZsZXgtc3RhcnQnIDogJ2ZsZXgtZW5kJyl9O1xuICBnYXA6IDEycHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbmBcblxuLyoqIENvbHVtbmEgZGUgYWNjaW9uZXMgZGUgYXBwcm92YWwgKi9cbmV4cG9ydCBjb25zdCBTQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbmBcblxuLyoqIFdyYXBwZXIgZGVsIGNvbnRlbmlkbyBkZWwgbWVuc2FqZS4gY29udGFpbiBsaW1pdGEgcmVwYWludCBkdXJhbnRlIHN0cmVhbWluZyBhbCDDoXJlYSBkZWwgdGV4dG8uICovXG5leHBvcnQgY29uc3QgU0NDQUlNZXNzYWdlV3JhcHBlciA9IHN0eWxlZC5kaXY8eyBpc0N1cnJlbnRVc2VyOiBib29sZWFuOyBpc0Zyb250ZW5kQ2FuY2VsbGVkPzogYm9vbGVhbiB9PmBcbiAgY29udGFpbjogbGF5b3V0IHN0eWxlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJHsoeyBpc0N1cnJlbnRVc2VyIH0pID0+IChpc0N1cnJlbnRVc2VyID8gJzEycHgnIDogJzBweCcpfTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzQ3VycmVudFVzZXIsIGlzRnJvbnRlbmRDYW5jZWxsZWQgfSkgPT4ge1xuICAgIGlmIChpc0Zyb250ZW5kQ2FuY2VsbGVkKSByZXR1cm4gJ3RyYW5zcGFyZW50J1xuICAgIGlmIChpc0N1cnJlbnRVc2VyKSByZXR1cm4gQkxVRV9JQV9DT0xPUlNbNTBdXG4gICAgcmV0dXJuICd0cmFuc3BhcmVudCdcbiAgfX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTZweDtcbiAgJHsoeyBpc0N1cnJlbnRVc2VyIH0pID0+XG4gICAgaXNDdXJyZW50VXNlciAmJlxuICAgIGNzc2BcbiAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICBgfVxuXG4gICYuaGFzLXRhc2stbGlua3MgYVtkYXRhLWNvci1saW5rPSd0YXNrJ10ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMjAyMDIwICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMjJweCAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHggIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICNiZWQ1ZWIgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICR7VEFTS19MSU5LX0lDT05fQ1NTX1VSTH07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICYuaGFzLXByb2plY3QtbGlua3MgYVtkYXRhLWNvci1saW5rPSdwcm9qZWN0J10ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMjAyMDIwICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAycHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNiM2IzYjMgIWltcG9ydGFudDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHggIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6ICNiZWQ1ZWIgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PlxuICAgIGlzQ3VycmVudFVzZXIgJiZcbiAgICBjc3NgXG4gICAgICAmLmhhcy10YXNrLWxpbmtzIGFbZGF0YS1jb3ItbGluaz0ndGFzayddIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICYuaGFzLXRhc2stbGlua3MgYVtkYXRhLWNvci1saW5rPSd0YXNrJ106OmJlZm9yZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdG9wOiBjYWxjKCgxbGggLSAyMHB4KSAvIDIpO1xuICAgICAgfVxuXG4gICAgICAmLmhhcy1wcm9qZWN0LWxpbmtzIGFbZGF0YS1jb3ItbGluaz0ncHJvamVjdCddIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgYH1cbmBcblxuY29uc3QgZmFkZUluVXAgPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNjcm9sbFRvQm90dG9tQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gIGJvcmRlci1yYWRpdXM6IDIxLjVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDEwO1xuICBhbmltYXRpb246ICR7ZmFkZUluVXB9IDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsU0FBU0MsY0FBYyxFQUFFQyxhQUFhLFFBQVEsd0JBQXdCO0FBQ3RFLFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUV4RSxJQUFNQyxNQUFNLEdBQUdKLFNBQVMsb0NBT3ZCO0FBRUQsT0FBTyxJQUFNSyxjQUFjLEdBQUdQLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV2Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsZUFBZSxHQUFHWixNQUFNLENBQUNRLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0RkFNckMsVUFBQUUsSUFBQTtFQUFBLElBQUdDLGVBQWUsR0FBQUQsSUFBQSxDQUFmQyxlQUFlO0VBQUEsT0FBUUEsZUFBZSxHQUFHLEVBQUUsR0FBRyxpREFBaUQ7QUFBQSxDQUFDLENBQ3RHOztBQUVEO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBR2YsTUFBTSxDQUFDUSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOEdBT3pDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxlQUFlLEdBQUdoQixNQUFNLENBQUNRLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwSUFLNUIsVUFBQU0sS0FBQTtFQUFBLElBQUdDLG9CQUFvQixHQUFBRCxLQUFBLENBQXBCQyxvQkFBb0I7RUFBQSxPQUFRQSxvQkFBb0IsR0FBRyxjQUFjLEdBQUcsU0FBUztBQUFBLENBQUMsRUFHL0VaLE1BQU0sRUFDakIsVUFBQWEsS0FBQTtFQUFBLElBQUdMLGVBQWUsR0FBQUssS0FBQSxDQUFmTCxlQUFlO0VBQUEsT0FDbEJBLGVBQWUsR0FBRyxvQkFBb0IsR0FBRyxtREFBbUQ7QUFBQSxFQUMvRjs7QUFFRDtBQUNBLE9BQU8sSUFBTU0sdUJBQXVCLEdBQUdwQixNQUFNLENBQUNRLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0REFLaEQ7O0FBRUQ7QUFDQSxPQUFPLElBQU1VLGFBQWEsR0FBR3JCLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9EQUl0QztBQUVELE9BQU8sSUFBTVcsWUFBWSxHQUFHdEIsTUFBTSxDQUFDUSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkVBQzNCUCxhQUFhLENBQUNtQixJQUFJLEVBR2pCLFVBQUFDLEtBQUE7RUFBQSxJQUFHQyxhQUFhLEdBQUFELEtBQUEsQ0FBYkMsYUFBYTtFQUFBLE9BQVFBLGFBQWEsR0FBRyxhQUFhLEdBQUcsU0FBUztBQUFBLENBQUMsRUFDakUsVUFBQUMsS0FBQTtFQUFBLElBQUdDLE9BQU8sR0FBQUQsS0FBQSxDQUFQQyxPQUFPO0VBQUEsT0FBUUEsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsQ0FBQyxDQUNoRDs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsVUFBVSxHQUFHNUIsTUFBTSxDQUFDNkIsQ0FBQyxDQUFBcEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxRkFJakM7O0FBRUQ7QUFDQSxPQUFPLElBQU1tQixhQUFhLEdBQUc5QixNQUFNLENBQUM2QixDQUFDLENBQUFwQixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVCQUVwQztBQUVELE9BQU8sSUFBTW9CLGlCQUFpQixHQUFHL0IsTUFBTSxDQUFDZ0MsSUFBSSxDQUFBdkIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxtSkFVM0M7O0FBRUQ7QUFDQSxPQUFPLElBQU1zQixvQkFBb0IsR0FBR2pDLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDBFQUsxQyxVQUFBdUIsS0FBQTtFQUFBLElBQUdDLFlBQVksR0FBQUQsS0FBQSxDQUFaQyxZQUFZO0VBQUEsT0FBT0EsWUFBWSxJQUFJLHlCQUF5QjtBQUFBLEVBQ2xFOztBQUVEO0FBQ0EsT0FBTyxJQUFNQyxrQkFBa0IsR0FBR3BDLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU0zQzs7QUFFRDtBQUNBLE9BQU8sSUFBTTBCLGdCQUFnQixHQUFHckMsTUFBTSxDQUFDUSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUVBRXJCLFVBQUEyQixLQUFBO0VBQUEsSUFBR0gsWUFBWSxHQUFBRyxLQUFBLENBQVpILFlBQVk7RUFBQSxPQUFRQSxZQUFZLEdBQUcsWUFBWSxHQUFHLFVBQVU7QUFBQSxDQUFDLENBR3BGOztBQUVEO0FBQ0EsT0FBTyxJQUFNSSx1QkFBdUIsR0FBR3ZDLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9EQUloRDs7QUFFRDtBQUNBLE9BQU8sSUFBTTZCLG1CQUFtQixHQUFHeEMsTUFBTSxDQUFDUSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsczlDQUloQyxVQUFBOEIsS0FBQTtFQUFBLElBQUdDLGFBQWEsR0FBQUQsS0FBQSxDQUFiQyxhQUFhO0VBQUEsT0FBUUEsYUFBYSxHQUFHLE1BQU0sR0FBRyxLQUFLO0FBQUEsQ0FBQyxFQUU5QyxVQUFBQyxLQUFBLEVBQTRDO0VBQUEsSUFBekNELGFBQWEsR0FBQUMsS0FBQSxDQUFiRCxhQUFhO0lBQUVFLG1CQUFtQixHQUFBRCxLQUFBLENBQW5CQyxtQkFBbUI7RUFDdkQsSUFBSUEsbUJBQW1CLEVBQUUsT0FBTyxhQUFhO0VBQzdDLElBQUlGLGFBQWEsRUFBRSxPQUFPdkMsY0FBYyxDQUFDLEVBQUUsQ0FBQztFQUM1QyxPQUFPLGFBQWE7QUFDdEIsQ0FBQyxFQUlDLFVBQUEwQyxLQUFBO0VBQUEsSUFBR0gsYUFBYSxHQUFBRyxLQUFBLENBQWJILGFBQWE7RUFBQSxPQUNoQkEsYUFBYSxJQUNiekMsR0FBRywrREFJRjtBQUFBLEdBOEJxQkksc0JBQXNCLEVBOEI1QyxVQUFBeUMsS0FBQTtFQUFBLElBQUdKLGFBQWEsR0FBQUksS0FBQSxDQUFiSixhQUFhO0VBQUEsT0FDaEJBLGFBQWEsSUFDYnpDLEdBQUcsK1JBZUY7QUFBQSxFQUNKO0FBRUQsSUFBTThDLFFBQVEsR0FBRzdDLFNBQVMseUhBU3pCO0FBRUQsT0FBTyxJQUFNOEMsb0JBQW9CLEdBQUdoRCxNQUFNLENBQUNpRCxNQUFNLENBQUF4QyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRaQWtCbENvQyxRQUFRLENBTXRCIiwiaWdub3JlTGlzdCI6W119
|
|
146
|
+
|
|
147
|
+
/* Los dos iconos se superponen para poder cruzarlos; el botón ya es `position: absolute`. */
|
|
148
|
+
export var SCScrollIconSwap = styled.span.withConfig({
|
|
149
|
+
displayName: "newStyles__SCScrollIconSwap",
|
|
150
|
+
componentId: "sc-1k23l8x-19"
|
|
151
|
+
})(["position:absolute;display:inline-flex;align-items:center;justify-content:center;opacity:", ";transform:scale(", ");transition:opacity 180ms ease-out,transform 180ms ease-out;pointer-events:none;"], function (_ref10) {
|
|
152
|
+
var $visible = _ref10.$visible;
|
|
153
|
+
return $visible ? 1 : 0;
|
|
154
|
+
}, function (_ref11) {
|
|
155
|
+
var $visible = _ref11.$visible;
|
|
156
|
+
return $visible ? 1 : 0.72;
|
|
157
|
+
});
|
|
158
|
+
var writingDot = keyframes(["0%,60%,100%{transform:translateY(0);opacity:0.35;}30%{transform:translateY(-3px);opacity:1;}"]);
|
|
159
|
+
export var SCWritingDots = styled.span.withConfig({
|
|
160
|
+
displayName: "newStyles__SCWritingDots",
|
|
161
|
+
componentId: "sc-1k23l8x-20"
|
|
162
|
+
})(["display:inline-flex;align-items:center;gap:3px;span{width:4px;height:4px;border-radius:50%;background:#202020;animation:", " 1.2s ease-in-out infinite;}span:nth-child(2){animation-delay:0.16s;}span:nth-child(3){animation-delay:0.32s;}"], writingDot);
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJCTFVFX0lBX0NPTE9SUyIsIkdMT0JBTF9DT0xPUlMiLCJUQVNLX0xJTktfSUNPTl9DU1NfVVJMIiwiZmFkZUluIiwiTWVzc2FnZVdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTWVzc2FnZXNPdXRlciIsIl9yZWYiLCIkc2Nyb2xsT25QYXJlbnQiLCJTQ01lc3NhZ2VzU2Nyb2xsIiwiU0NNZXNzYWdlc0lubmVyIiwiX3JlZjIiLCJTQ1R1cm5TcGFjZXIiLCJtZXNzYWdlc0VkZ2VHcmFkaWVudCIsIl9yZWYzIiwiJHNob3ciLCJTQ01lc3NhZ2VzR3JhZGllbnRUb3AiLCJTQ01lc3NhZ2VzR3JhZGllbnRCb3R0b20iLCJTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbiIsIlNDT3B0aW9uc0xpc3QiLCJTQ09wdGlvbkl0ZW0iLCJkYXJrIiwiX3JlZjQiLCIkaGFzU2VsZWN0aW9uIiwiX3JlZjUiLCIkZGltbWVkIiwiU0NUYXNrTGluayIsImEiLCJTQ1Byb2plY3RMaW5rIiwiU0NQcm9qZWN0TGlua0ljb24iLCJzcGFuIiwiU0NNZXNzYWdlSXRlbVdyYXBwZXIiLCJfcmVmNiIsIiRpc0Fzc2lzdGFudCIsIlNDTWVzc2FnZUl0ZW1Jbm5lciIsIlNDQXR0YWNobWVudHNSb3ciLCJfcmVmNyIsIlNDQXBwcm92YWxBY3Rpb25zQ29sdW1uIiwiU0NDQUlNZXNzYWdlV3JhcHBlciIsIl9yZWY4IiwiaXNDdXJyZW50VXNlciIsIl9yZWY5IiwiaXNGcm9udGVuZENhbmNlbGxlZCIsIl9yZWYwIiwiX3JlZjEiLCJmYWRlSW5VcCIsIlNjcm9sbFRvQm90dG9tQnV0dG9uIiwiYnV0dG9uIiwiU0NTY3JvbGxJY29uU3dhcCIsIl9yZWYxMCIsIiR2aXNpYmxlIiwiX3JlZjExIiwid3JpdGluZ0RvdCIsIlNDV3JpdGluZ0RvdHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbmltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFRBU0tfTElOS19JQ09OX0NTU19VUkwgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza0xpbmtJY29uJ1xuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IE1lc3NhZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTZweDtcbmBcblxuLyoqIENvbnRlbmVkb3IgZXh0ZXJpb3IgZGVsIMOhcmVhIGRlIG1lbnNhamVzLiBDdWFuZG8gZXhwYW5kZWQsIG5vIGhhY2Ugc2Nyb2xsOyBlbCBzY3JvbGwgbG8gdGllbmUgU0NNZXNzYWdlc1Njcm9sbC4gKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzT3V0ZXIgPSBzdHlsZWQuZGl2PHsgJHNjcm9sbE9uUGFyZW50PzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAwO1xuICAkeyh7ICRzY3JvbGxPblBhcmVudCB9KSA9PiAoJHNjcm9sbE9uUGFyZW50ID8gJycgOiAnb3ZlcmZsb3c6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsnKX1cbmBcblxuLyoqIEN1YW5kbyBleHBhbmRlZCwgZXN0ZSBjb250ZW5lZG9yIGhhY2Ugc2Nyb2xsIHBhcmEgcXVlIGVsIGJvdMOzbiBcImlyIGFsIGZpbmFsXCIgcXVlZGUgZmlqbyBlbiBlbCDDoXJlYSBkZWwgY2hhdCAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZXNTY3JvbGwgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuYFxuXG4vKiogQ29udGVuZWRvciBpbnRlcmlvciBkZSBtZW5zYWplcyAobWF4V2lkdGggODY0cHgpLiBDdWFuZG8gZXhwYW5kZWQsIG92ZXJmbG93IHZpc2libGUgcGFyYSBxdWUgc2Nyb2xsIGxvIHRlbmdhIFNDTWVzc2FnZXNTY3JvbGwgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzSW5uZXIgPSBzdHlsZWQuZGl2PHsgJHNjcm9sbE9uUGFyZW50PzogYm9vbGVhbiB9PmBcbiAgZmxleC1ncm93OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDI0cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuNXMgZWFzZS1vdXQ7XG4gICR7KHsgJHNjcm9sbE9uUGFyZW50IH0pID0+XG4gICAgJHNjcm9sbE9uUGFyZW50ID8gJ292ZXJmbG93OiB2aXNpYmxlOycgOiAnb3ZlcmZsb3cteTogYXV0bzsgb3ZlcnNjcm9sbC1iZWhhdmlvci15OiBjb250YWluOyd9XG5cbiAgLyogQ29sY2jDs24gZGUgc2Nyb2xsIGFsIGZpbmFsIHBhcmEgcXVlIGVsIMO6bHRpbW8gbWVuc2FqZSBubyBxdWVkZSBwZWdhZG8gYWxcbiAgICAgaW5wdXQuIFZhIGNvbW8gZmxleCBpdGVtIChubyBwYWRkaW5nKSBwb3JxdWUgY3VhbmRvIGVzdGUgY29udGVuZWRvciBlcyBlbFxuICAgICBzY3JvbGxlciBlbCBwYWRkaW5nLWJvdHRvbSBubyBzZSByZXNwZXRhIGFsIGZpbmFsIGRlbCBzY3JvbGwuXG4gICAgIEVsIG1hcmdpbiBuZWdhdGl2byBjYW5jZWxhIGVsIGdhcCBkZWwgbGlzdGFkby4gKi9cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW4tdG9wOiAtMjRweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NUdXJuU3BhY2VyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogLTI0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuYFxuXG4vKiogRGlmdW1pbmFkbyBlbiBsb3MgYm9yZGVzIGRlbCDDoXJlYSBzY3JvbGxlYWJsZTogaW5kaWNhIHF1ZSBoYXkgY29udGVuaWRvIGZ1ZXJhIGRlIHZpc3RhLiAqL1xuY29uc3QgbWVzc2FnZXNFZGdlR3JhZGllbnQgPSBjc3M8eyAkc2hvdzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA0OHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NjRweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvKiBEZWJham8gZGVsIFNjcm9sbFRvQm90dG9tQnV0dG9uICh6LWluZGV4IDEwKS4gKi9cbiAgei1pbmRleDogNTtcbiAgb3BhY2l0eTogJHsoeyAkc2hvdyB9KSA9PiAoJHNob3cgPyAxIDogMCl9O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VzR3JhZGllbnRUb3AgPSBzdHlsZWQuZGl2PHsgJHNob3c6IGJvb2xlYW4gfT5gXG4gICR7bWVzc2FnZXNFZGdlR3JhZGllbnR9XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIGJvdHRvbSxcbiAgICAjZmZmZmZmIDAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDcwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCVcbiAgKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZXNHcmFkaWVudEJvdHRvbSA9IHN0eWxlZC5kaXY8eyAkc2hvdzogYm9vbGVhbiB9PmBcbiAgJHttZXNzYWdlc0VkZ2VHcmFkaWVudH1cbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gdG9wLFxuICAgICNmZmZmZmYgMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDMwJSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgNzAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxuICApO1xuYFxuXG4vKiogQ29sdW1uYSBwYXJhIGxvYWRpbmcvbG9hZGluZyBtZXNzYWdlcyAqL1xuZXhwb3J0IGNvbnN0IFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogU0NNZXNzYWdlc0lubmVyIHVzYSBnYXAgMzZweCBlbnRyZSBtZW5zYWplczsgZWwgaW5kaWNhZG9yIGRlYmUgcXVlZGFyIGEgMTJweCBkZWwgY29udGVuaWRvIGFudGVyaW9yICovXG4gIG1hcmdpbi10b3A6IC0yNHB4O1xuYFxuXG4vKiogTGlzdGEgZGUgb3BjaW9uZXMgKE1lc3NhZ2VPcHRpb25zKSAqL1xuZXhwb3J0IGNvbnN0IFNDT3B0aW9uc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09wdGlvbkl0ZW0gPSBzdHlsZWQuZGl2PHsgJGhhc1NlbGVjdGlvbj86IGJvb2xlYW47ICRkaW1tZWQ/OiBib29sZWFuIH0+YFxuICBjb2xvcjogJHtHTE9CQUxfQ09MT1JTLmRhcmt9O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBjdXJzb3I6ICR7KHsgJGhhc1NlbGVjdGlvbiB9KSA9PiAoJGhhc1NlbGVjdGlvbiA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgb3BhY2l0eTogJHsoeyAkZGltbWVkIH0pID0+ICgkZGltbWVkID8gMC41IDogMSl9O1xuYFxuXG4vKiogRW5sYWNlIGRlIHRhcmVhICh0YXNrIGxpbmspICovXG5leHBvcnQgY29uc3QgU0NUYXNrTGluayA9IHN0eWxlZC5hYFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzMzN2FiNyAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gXG5cbi8qKiBFbmxhY2UgZGUgcHJveWVjdG8gKHByb2plY3QgbGluaykgKi9cbmV4cG9ydCBjb25zdCBTQ1Byb2plY3RMaW5rID0gc3R5bGVkLmFgXG4gIGN1cnNvcjogcG9pbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDUHJvamVjdExpbmtJY29uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNHB4O1xuYFxuXG4vKiogV3JhcHBlciBkZSB1biBtZW5zYWplIChwb3NpY2nDs24sIGZsZXgsIGdhcCkgKi9cbmV4cG9ydCBjb25zdCBTQ01lc3NhZ2VJdGVtV3JhcHBlciA9IHN0eWxlZC5kaXY8eyAkaXNBc3Npc3RhbnQ/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAkeyh7ICRpc0Fzc2lzdGFudCB9KSA9PiAkaXNBc3Npc3RhbnQgJiYgJ2p1c3RpZnktY29udGVudDogc3RhcnQ7J31cbmBcblxuLyoqIENvbnRlbmVkb3IgaW50ZXJpb3IgZGVsIG1lbnNhamUgKGF0dGFjaG1lbnRzICsgYXBwcm92YWwgKyBjb250ZW50KSAqL1xuZXhwb3J0IGNvbnN0IFNDTWVzc2FnZUl0ZW1Jbm5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuLyoqIEZpbGEgZGUgYXR0YWNobWVudHMgKGZsZXggZW5kIHBhcmEgdXN1YXJpbywgZmxleCBzdGFydCBwYXJhIGFzc2lzdGFudCkgKi9cbmV4cG9ydCBjb25zdCBTQ0F0dGFjaG1lbnRzUm93ID0gc3R5bGVkLmRpdjx7ICRpc0Fzc2lzdGFudD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyAkaXNBc3Npc3RhbnQgfSkgPT4gKCRpc0Fzc2lzdGFudCA/ICdmbGV4LXN0YXJ0JyA6ICdmbGV4LWVuZCcpfTtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gXG5cbi8qKiBDb2x1bW5hIGRlIGFjY2lvbmVzIGRlIGFwcHJvdmFsICovXG5leHBvcnQgY29uc3QgU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG5gXG5cbi8qKiBXcmFwcGVyIGRlbCBjb250ZW5pZG8gZGVsIG1lbnNhamUuIGNvbnRhaW4gbGltaXRhIHJlcGFpbnQgZHVyYW50ZSBzdHJlYW1pbmcgYWwgw6FyZWEgZGVsIHRleHRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDQ0FJTWVzc2FnZVdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgaXNDdXJyZW50VXNlcjogYm9vbGVhbjsgaXNGcm9udGVuZENhbmNlbGxlZD86IGJvb2xlYW4gfT5gXG4gIGNvbnRhaW46IGxheW91dCBzdHlsZTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PiAoaXNDdXJyZW50VXNlciA/ICcxMnB4JyA6ICcwcHgnKX07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0N1cnJlbnRVc2VyLCBpc0Zyb250ZW5kQ2FuY2VsbGVkIH0pID0+IHtcbiAgICBpZiAoaXNGcm9udGVuZENhbmNlbGxlZCkgcmV0dXJuICd0cmFuc3BhcmVudCdcbiAgICBpZiAoaXNDdXJyZW50VXNlcikgcmV0dXJuIEJMVUVfSUFfQ09MT1JTWzUwXVxuICAgIHJldHVybiAndHJhbnNwYXJlbnQnXG4gIH19O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gICR7KHsgaXNDdXJyZW50VXNlciB9KSA9PlxuICAgIGlzQ3VycmVudFVzZXIgJiZcbiAgICBjc3NgXG4gICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgYH1cblxuICAmLmhhcy10YXNrLWxpbmtzIGFbZGF0YS1jb3ItbGluaz0ndGFzayddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHggIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjYjNiM2IzICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAjYmVkNWViICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAke1RBU0tfTElOS19JQ09OX0NTU19VUkx9O1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmLmhhcy1wcm9qZWN0LWxpbmtzIGFbZGF0YS1jb3ItbGluaz0ncHJvamVjdCddIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xuICAgIGdhcDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAjYjNiM2IzICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxcHggIWltcG9ydGFudDtcbiAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAjYmVkNWViICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAkeyh7IGlzQ3VycmVudFVzZXIgfSkgPT5cbiAgICBpc0N1cnJlbnRVc2VyICYmXG4gICAgY3NzYFxuICAgICAgJi5oYXMtdGFzay1saW5rcyBhW2RhdGEtY29yLWxpbms9J3Rhc2snXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAmLmhhcy10YXNrLWxpbmtzIGFbZGF0YS1jb3ItbGluaz0ndGFzayddOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRvcDogY2FsYygoMWxoIC0gMjBweCkgLyAyKTtcbiAgICAgIH1cblxuICAgICAgJi5oYXMtcHJvamVjdC1saW5rcyBhW2RhdGEtY29yLWxpbms9J3Byb2plY3QnXSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmNvbnN0IGZhZGVJblVwID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTY3JvbGxUb0JvdHRvbUJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGFzcGVjdC1yYXRpbzogMS8xO1xuICBib3JkZXItcmFkaXVzOiAyMS41cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxMDtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJblVwfSAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgfVxuYFxuXG4vKiBMb3MgZG9zIGljb25vcyBzZSBzdXBlcnBvbmVuIHBhcmEgcG9kZXIgY3J1emFybG9zOyBlbCBib3TDs24geWEgZXMgYHBvc2l0aW9uOiBhYnNvbHV0ZWAuICovXG5leHBvcnQgY29uc3QgU0NTY3JvbGxJY29uU3dhcCA9IHN0eWxlZC5zcGFuPHsgJHZpc2libGU6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAkeyh7ICR2aXNpYmxlIH0pID0+ICgkdmlzaWJsZSA/IDEgOiAwKX07XG4gIHRyYW5zZm9ybTogc2NhbGUoJHsoeyAkdmlzaWJsZSB9KSA9PiAoJHZpc2libGUgPyAxIDogMC43Mil9KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE4MG1zIGVhc2Utb3V0LFxuICAgIHRyYW5zZm9ybSAxODBtcyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5gXG5cbmNvbnN0IHdyaXRpbmdEb3QgPSBrZXlmcmFtZXNgXG4gIDAlLCA2MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAwLjM1O1xuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDV3JpdGluZ0RvdHMgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogM3B4O1xuXG4gIHNwYW4ge1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICMyMDIwMjA7XG4gICAgYW5pbWF0aW9uOiAke3dyaXRpbmdEb3R9IDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cblxuICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwLjE2cztcbiAgfVxuXG4gIHNwYW46bnRoLWNoaWxkKDMpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IDAuMzJzO1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsU0FBU0MsY0FBYyxFQUFFQyxhQUFhLFFBQVEsd0JBQXdCO0FBQ3RFLFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUV4RSxJQUFNQyxNQUFNLEdBQUdKLFNBQVMsb0NBT3ZCO0FBRUQsT0FBTyxJQUFNSyxjQUFjLEdBQUdQLE1BQU0sQ0FBQ1EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV2Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsZUFBZSxHQUFHWixNQUFNLENBQUNRLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0RkFNckMsVUFBQUUsSUFBQTtFQUFBLElBQUdDLGVBQWUsR0FBQUQsSUFBQSxDQUFmQyxlQUFlO0VBQUEsT0FBUUEsZUFBZSxHQUFHLEVBQUUsR0FBRyxpREFBaUQ7QUFBQSxDQUFDLENBQ3RHOztBQUVEO0FBQ0Es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
|