@promptbook/components 0.112.0-31 → 0.112.0-32
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/esm/index.es.js +788 -319
- package/esm/index.es.js.map +1 -1
- package/esm/src/_packages/components.index.d.ts +6 -0
- package/esm/src/_packages/types.index.d.ts +6 -0
- package/esm/src/book-2.0/agent-source/AgentReferenceResolver.d.ts +11 -0
- package/esm/src/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +8 -0
- package/esm/src/book-2.0/agent-source/TeammateProfileResolver.d.ts +33 -0
- package/esm/src/book-2.0/agent-source/createTeamToolName.d.ts +7 -7
- package/esm/src/book-components/Chat/Chat/ChatActionsBar.d.ts +5 -0
- package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +17 -1
- package/esm/src/book-components/Chat/Chat/ChatMessageItem.test.d.ts +1 -1
- package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +14 -0
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +290 -0
- package/esm/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +16 -0
- package/esm/src/book-components/Chat/Chat/renderAdvancedToolCallDetails.d.ts +4 -0
- package/esm/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +9 -0
- package/esm/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +2 -1
- package/esm/src/book-components/Chat/MarkdownContent/MarkdownContent.test.d.ts +2 -0
- package/esm/src/book-components/Chat/hooks/useChatCompleteNotification.d.ts +18 -0
- package/esm/src/book-components/Chat/hooks/useChatCompleteNotification.test.d.ts +2 -0
- package/esm/src/book-components/Chat/types/ChatMessage.d.ts +77 -1
- package/esm/src/book-components/Chat/utils/formatToolCallDateTime.d.ts +37 -0
- package/esm/src/book-components/Chat/utils/formatToolCallLocalTime.d.ts +11 -0
- package/esm/src/book-components/Chat/utils/formatToolCallTranslationTemplate.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +5 -1
- package/esm/src/book-components/Chat/utils/getToolCallChipletInfo.d.ts +26 -1
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +26 -3
- package/esm/src/utils/toolCalls/mergeToolCalls.d.ts +1 -1
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +790 -322
- package/umd/index.umd.js.map +1 -1
- package/umd/src/_packages/components.index.d.ts +6 -0
- package/umd/src/_packages/types.index.d.ts +6 -0
- package/umd/src/book-2.0/agent-source/AgentReferenceResolver.d.ts +11 -0
- package/umd/src/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +8 -0
- package/umd/src/book-2.0/agent-source/TeammateProfileResolver.d.ts +33 -0
- package/umd/src/book-2.0/agent-source/createTeamToolName.d.ts +7 -7
- package/umd/src/book-components/Chat/Chat/ChatActionsBar.d.ts +5 -0
- package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +17 -1
- package/umd/src/book-components/Chat/Chat/ChatMessageItem.test.d.ts +1 -1
- package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +14 -0
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +290 -0
- package/umd/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +16 -0
- package/umd/src/book-components/Chat/Chat/renderAdvancedToolCallDetails.d.ts +4 -0
- package/umd/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +9 -0
- package/umd/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +2 -1
- package/umd/src/book-components/Chat/MarkdownContent/MarkdownContent.test.d.ts +2 -0
- package/umd/src/book-components/Chat/hooks/useChatCompleteNotification.d.ts +18 -0
- package/umd/src/book-components/Chat/hooks/useChatCompleteNotification.test.d.ts +2 -0
- package/umd/src/book-components/Chat/types/ChatMessage.d.ts +77 -1
- package/umd/src/book-components/Chat/utils/formatToolCallDateTime.d.ts +37 -0
- package/umd/src/book-components/Chat/utils/formatToolCallLocalTime.d.ts +11 -0
- package/umd/src/book-components/Chat/utils/formatToolCallTranslationTemplate.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +5 -1
- package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.d.ts +26 -1
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +26 -3
- package/umd/src/utils/toolCalls/mergeToolCalls.d.ts +1 -1
- package/umd/src/version.d.ts +1 -1
package/esm/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { useMemo, useId, useState, useRef, useEffect, createContext, useContext, useCallback, forwardRef
|
|
2
|
+
import { useMemo, useId, useState, memo, useRef, useEffect, createContext, useContext, useCallback, forwardRef } from 'react';
|
|
3
3
|
import { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
4
4
|
import { SHA256 } from 'crypto-js';
|
|
5
5
|
import hexEncoder from 'crypto-js/enc-hex';
|
|
@@ -15,6 +15,7 @@ import { createRoot } from 'react-dom/client';
|
|
|
15
15
|
import { Converter } from 'showdown';
|
|
16
16
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
17
17
|
import { jsPDF } from 'jspdf';
|
|
18
|
+
import 'moment/locale/cs';
|
|
18
19
|
import { Maximize2, X, Pause, Play, Volume2Icon, VolumeXIcon, VibrateIcon, VibrateOffIcon } from 'lucide-react';
|
|
19
20
|
import { forTime } from 'waitasecond';
|
|
20
21
|
import sha256 from 'crypto-js/sha256';
|
|
@@ -39,7 +40,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
39
40
|
* @generated
|
|
40
41
|
* @see https://github.com/webgptorg/promptbook
|
|
41
42
|
*/
|
|
42
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-
|
|
43
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-32';
|
|
43
44
|
/**
|
|
44
45
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
45
46
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -10578,10 +10579,6 @@ class StyleCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10578
10579
|
* Prefix used for TEAM tool names.
|
|
10579
10580
|
*/
|
|
10580
10581
|
const TEAM_TOOL_PREFIX$1 = 'team_chat_';
|
|
10581
|
-
/**
|
|
10582
|
-
* Length of URL hash suffix appended to TEAM tool names.
|
|
10583
|
-
*/
|
|
10584
|
-
const TEAM_TOOL_HASH_LENGTH = 10;
|
|
10585
10582
|
/**
|
|
10586
10583
|
* Fallback normalized name when teammate label is empty.
|
|
10587
10584
|
*/
|
|
@@ -10598,20 +10595,19 @@ function normalizeTeammateToolNamePart(teammateLabel) {
|
|
|
10598
10595
|
return normalized || TEAM_TOOL_FALLBACK_NAME;
|
|
10599
10596
|
}
|
|
10600
10597
|
/**
|
|
10601
|
-
* Builds a deterministic TEAM tool name from teammate
|
|
10598
|
+
* Builds a deterministic TEAM tool name from the teammate label.
|
|
10602
10599
|
*
|
|
10603
|
-
* The
|
|
10604
|
-
*
|
|
10600
|
+
* The tool name is derived solely from the human-readable label so that it
|
|
10601
|
+
* remains stable and predictable regardless of internal technical identifiers.
|
|
10605
10602
|
*
|
|
10606
|
-
* @param
|
|
10607
|
-
* @param teammateLabel - Human-readable teammate label.
|
|
10608
|
-
* @returns
|
|
10603
|
+
* @param _teammateUrl - Canonical teammate URL (kept for API compatibility, not used).
|
|
10604
|
+
* @param teammateLabel - Human-readable teammate label used as the basis for the name.
|
|
10605
|
+
* @returns TEAM tool name derived from the label.
|
|
10609
10606
|
* @private internal utility of TEAM commitments and chat UI mapping
|
|
10610
10607
|
*/
|
|
10611
|
-
function createTeamToolName(
|
|
10608
|
+
function createTeamToolName(_teammateUrl, teammateLabel) {
|
|
10612
10609
|
const normalizedLabel = normalizeTeammateToolNamePart(teammateLabel);
|
|
10613
|
-
|
|
10614
|
-
return `${TEAM_TOOL_PREFIX$1}${normalizedLabel}_${hash}`;
|
|
10610
|
+
return `${TEAM_TOOL_PREFIX$1}${normalizedLabel}`;
|
|
10615
10611
|
}
|
|
10616
10612
|
|
|
10617
10613
|
const urlRegex = /https?:\/\/[^\s]+/gi;
|
|
@@ -10816,7 +10812,7 @@ class TeamCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10816
10812
|
`);
|
|
10817
10813
|
}
|
|
10818
10814
|
applyToAgentModelRequirements(requirements, content) {
|
|
10819
|
-
var _a, _b;
|
|
10815
|
+
var _a, _b, _c;
|
|
10820
10816
|
const trimmedContent = content.trim();
|
|
10821
10817
|
if (!trimmedContent) {
|
|
10822
10818
|
return requirements;
|
|
@@ -10828,14 +10824,18 @@ class TeamCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10828
10824
|
}
|
|
10829
10825
|
const agentName = ((_a = requirements._metadata) === null || _a === void 0 ? void 0 : _a.agentName) || 'Agent';
|
|
10830
10826
|
const existingTeammates = ((_b = requirements._metadata) === null || _b === void 0 ? void 0 : _b.teammates) || [];
|
|
10827
|
+
const preResolvedProfiles = (((_c = requirements._metadata) === null || _c === void 0 ? void 0 : _c.preResolvedTeammateProfiles) || {});
|
|
10831
10828
|
const resolvedTeammates = resolveTeamTeammateLabels(trimmedContent, teammates);
|
|
10832
10829
|
const teamEntries = resolvedTeammates.map((teammate) => {
|
|
10830
|
+
const profile = preResolvedProfiles[teammate.url];
|
|
10831
|
+
const resolvedLabel = (profile === null || profile === void 0 ? void 0 : profile.agentName) || teammate.label;
|
|
10833
10832
|
const existingTeammate = existingTeammates.find((entry) => entry.url === teammate.url);
|
|
10834
10833
|
return {
|
|
10835
10834
|
toolName: ((existingTeammate === null || existingTeammate === void 0 ? void 0 : existingTeammate.toolName) ||
|
|
10836
|
-
createTeamToolName(teammate.url,
|
|
10837
|
-
teammate,
|
|
10835
|
+
createTeamToolName(teammate.url, resolvedLabel)),
|
|
10836
|
+
teammate: { ...teammate, label: resolvedLabel },
|
|
10838
10837
|
agentName,
|
|
10838
|
+
description: (profile === null || profile === void 0 ? void 0 : profile.personaDescription) || null,
|
|
10839
10839
|
};
|
|
10840
10840
|
});
|
|
10841
10841
|
for (const entry of teamEntries) {
|
|
@@ -10847,9 +10847,12 @@ class TeamCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10847
10847
|
if (updatedTools.some((tool) => tool.name === entry.toolName)) {
|
|
10848
10848
|
continue;
|
|
10849
10849
|
}
|
|
10850
|
+
const toolDescription = entry.description
|
|
10851
|
+
? `Consult teammate ${entry.teammate.label}\n${entry.description}`
|
|
10852
|
+
: `Consult teammate ${entry.teammate.label}`;
|
|
10850
10853
|
updatedTools.push({
|
|
10851
10854
|
name: entry.toolName,
|
|
10852
|
-
description:
|
|
10855
|
+
description: toolDescription,
|
|
10853
10856
|
parameters: {
|
|
10854
10857
|
type: 'object',
|
|
10855
10858
|
properties: {
|
|
@@ -10878,8 +10881,7 @@ class TeamCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
10878
10881
|
toolName: entry.toolName,
|
|
10879
10882
|
});
|
|
10880
10883
|
}
|
|
10881
|
-
const
|
|
10882
|
-
const teamSystemMessage = this.createSystemMessageSection('Teammates:', buildTeamSystemMessageBody(teamOverviewText, teamEntries));
|
|
10884
|
+
const teamSystemMessage = this.createSystemMessageSection('Teammates:', buildTeamSystemMessageBody(teamEntries));
|
|
10883
10885
|
return this.appendToSystemMessage({
|
|
10884
10886
|
...requirements,
|
|
10885
10887
|
tools: updatedTools,
|
|
@@ -10916,25 +10918,24 @@ function resolveTeamTeammateLabels(teamContent, teammates) {
|
|
|
10916
10918
|
};
|
|
10917
10919
|
});
|
|
10918
10920
|
}
|
|
10919
|
-
/**
|
|
10920
|
-
* Rewrites TEAM commitment content into a URL-free teammate overview text.
|
|
10921
|
-
*/
|
|
10922
|
-
function createTeamOverviewText(teamContent, teamEntries) {
|
|
10923
|
-
let overviewText = teamContent;
|
|
10924
|
-
for (const entry of teamEntries) {
|
|
10925
|
-
overviewText = overviewText.split(entry.teammate.url).join(entry.teammate.label);
|
|
10926
|
-
}
|
|
10927
|
-
return overviewText.trim();
|
|
10928
|
-
}
|
|
10929
10921
|
/**
|
|
10930
10922
|
* Builds the textual TEAM section body for the final system message.
|
|
10923
|
+
*
|
|
10924
|
+
* Each teammate is listed with its tool name and, when available, a one-line description.
|
|
10925
|
+
* Uses `spaceTrim` to ensure consistent whitespace and indentation.
|
|
10931
10926
|
*/
|
|
10932
|
-
function buildTeamSystemMessageBody(
|
|
10933
|
-
const
|
|
10934
|
-
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
|
|
10927
|
+
function buildTeamSystemMessageBody(teamEntries) {
|
|
10928
|
+
const lines = teamEntries.map((entry, index) => {
|
|
10929
|
+
const toolLine = `${index + 1}) ${entry.teammate.label} tool \`${entry.toolName}\``;
|
|
10930
|
+
if (!entry.description) {
|
|
10931
|
+
return toolLine;
|
|
10932
|
+
}
|
|
10933
|
+
return spaceTrim$1(`
|
|
10934
|
+
${toolLine}
|
|
10935
|
+
${entry.description}
|
|
10936
|
+
`);
|
|
10937
|
+
});
|
|
10938
|
+
return lines.join('\n');
|
|
10938
10939
|
}
|
|
10939
10940
|
/**
|
|
10940
10941
|
* Registers tool function and title for a teammate tool.
|
|
@@ -18322,7 +18323,7 @@ function parseCitationMarkersFromContent(content) {
|
|
|
18322
18323
|
return markers;
|
|
18323
18324
|
}
|
|
18324
18325
|
|
|
18325
|
-
var css_248z$b = ".MarkdownContent-module_MarkdownContent__2JuyX{--md-text-color:var(--chat-md-text-color,inherit);--md-muted-color:var(--chat-md-muted-color,currentColor);--md-link-color:var(--chat-md-link-color,#2563eb);--md-heading-color:var(--chat-heading-text-color,var(--md-text-color));--md-heading-font-family:var(\n --chat-md-heading-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-body-font-family:var(\n --chat-md-body-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-code-font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace;--md-inline-code-bg:var(--chat-md-inline-code-bg,rgba(15,23,42,.08));--md-inline-code-border:var(--chat-md-inline-code-border,rgba(15,23,42,.12));--md-inline-code-color:var(--chat-md-inline-code-color,var(--md-text-color));--md-blockquote-bg:var(--chat-md-blockquote-bg,rgba(248,250,252,.92));--md-blockquote-border:var(--chat-md-blockquote-border,rgba(59,130,246,.35));--md-table-bg:var(--chat-md-table-bg,rgba(248,250,252,.92));--md-table-row-alt-bg:var(--chat-md-table-row-alt-bg,rgba(241,245,249,.9));--md-table-head-bg:var(--chat-md-table-head-bg,rgba(226,232,240,.95));--md-table-border:var(--chat-md-table-border,rgba(148,163,184,.36));--md-citation-bg:var(--chat-md-citation-bg,rgba(59,130,246,.14));--md-citation-color:var(--chat-md-citation-color,#1d4ed8);color:var(--md-text-color);font-family:var(--md-body-font-family);font-size:inherit;letter-spacing:.002em;line-height:1.65}.MarkdownContent-module_MarkdownContent__2JuyX>:first-child{margin-top:0!important}.MarkdownContent-module_MarkdownContent__2JuyX>:last-child{margin-bottom:0!important}.MarkdownContent-module_MarkdownContent__2JuyX :is(h1,h2,h3,h4,h5,h6){text-wrap:balance;color:var(--md-heading-color);font-family:var(--md-heading-font-family);font-weight:600;letter-spacing:.01em;line-height:1.24;margin:1.4em 0 .55em;position:relative}.MarkdownContent-module_MarkdownContent__2JuyX h1{font-size:1.52rem}.MarkdownContent-module_MarkdownContent__2JuyX h2{font-size:1.4rem}.MarkdownContent-module_MarkdownContent__2JuyX h3{font-size:1.26rem}.MarkdownContent-module_MarkdownContent__2JuyX h4{font-size:1.14rem}.MarkdownContent-module_MarkdownContent__2JuyX h5{font-size:1.04rem}.MarkdownContent-module_MarkdownContent__2JuyX h6{font-size:.98rem}.MarkdownContent-module_MarkdownContent__2JuyX p{text-wrap:pretty;margin:0 0 .9em}.MarkdownContent-module_MarkdownContent__2JuyX p:empty{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(ul,ol){display:grid;gap:.35em;margin:.65em 0 1em;padding-inline-start:1.35rem}.MarkdownContent-module_MarkdownContent__2JuyX ul{list-style:disc}.MarkdownContent-module_MarkdownContent__2JuyX ol{list-style:decimal}.MarkdownContent-module_MarkdownContent__2JuyX li{line-height:1.58}.MarkdownContent-module_MarkdownContent__2JuyX li>:is(ul,ol){margin-bottom:0;margin-top:.45em}.MarkdownContent-module_MarkdownContent__2JuyX a{color:var(--md-link-color);text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:1.4px;text-underline-offset:.16em;transition:opacity .2s ease,text-decoration-thickness .2s ease}.MarkdownContent-module_MarkdownContent__2JuyX a:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a:hover{opacity:.92;text-decoration-thickness:2px}.MarkdownContent-module_MarkdownContent__2JuyX img{border-radius:14px;display:block;height:auto;margin:.95em 0;max-width:100%}.MarkdownContent-module_MarkdownContent__2JuyX blockquote,.MarkdownContent-module_MarkdownContent__2JuyX hr,.MarkdownContent-module_MarkdownContent__2JuyX pre,.MarkdownContent-module_MarkdownContent__2JuyX table{margin:.95em 0}.MarkdownContent-module_MarkdownContent__2JuyX pre{background:transparent;border:none;border-radius:12px;box-shadow:none;display:block;overflow:visible;padding:0}.MarkdownContent-module_MarkdownContent__2JuyX blockquote{background:var(--md-blockquote-bg);border:none;border-left:3px solid var(--md-blockquote-border);border-radius:12px;box-shadow:none;color:var(--md-muted-color);display:block;padding:.72em .96em}.MarkdownContent-module_MarkdownContent__2JuyX blockquote>:last-child{margin-bottom:0}.MarkdownContent-module_MarkdownContent__2JuyX code{background:var(--md-inline-code-bg);border:1px solid var(--md-inline-code-border);border-radius:8px;color:var(--md-inline-code-color);font-family:var(--md-code-font-family);font-size:.88em;line-height:1.45;margin:0;padding:.14em .42em;word-break:break-word}.MarkdownContent-module_MarkdownContent__2JuyX pre code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg{background:#181c23;border:1px solid rgba(148,163,184,.35);border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.28);color:#f8fafc;font-family:var(--md-code-font-family);font-size:14px;line-height:1.6;overflow-x:auto}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX table{background:var(--md-table-bg);border:1px solid var(--md-table-border);border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 8px rgba(15,23,42,.1);color:inherit;font-size:.93em;overflow:hidden;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX td,.MarkdownContent-module_MarkdownContent__2JuyX th{background:none;border-bottom:1px solid var(--md-table-border);color:inherit;padding:.58em .72em;text-align:left;vertical-align:top}.MarkdownContent-module_MarkdownContent__2JuyX th{background:var(--md-table-head-bg);font-weight:600}.MarkdownContent-module_MarkdownContent__2JuyX tr:last-child td{border-bottom:none}.MarkdownContent-module_MarkdownContent__2JuyX tr:nth-child(2n) td{background:var(--md-table-row-alt-bg)}.MarkdownContent-module_MarkdownContent__2JuyX hr{border:none;border-top:1px solid var(--md-table-border);opacity:.8}.MarkdownContent-module_MarkdownContent__2JuyX strong{font-weight:650}.MarkdownContent-module_MarkdownContent__2JuyX em{font-style:italic}.MarkdownContent-module_citationRef__fKqaT,.MarkdownContent-module_citation__11SMw{align-items:center;background:var(--md-citation-bg);border-radius:999px;color:var(--md-citation-color);display:inline-flex;font-size:.74em;font-weight:700;justify-content:center;line-height:1.45;margin:0 .1em;min-width:1.4em;padding:0 .35em;vertical-align:super}.MarkdownContent-module_MarkdownContent__2JuyX sup[data-citation-footnote]{color:currentColor;display:inline;font-size:.72em;font-weight:700;line-height:1;margin:0 .7em 0 .08em;vertical-align:super}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUNJLGlEQUFtRCxDQUNuRCx3REFBMEQsQ0FDMUQsaURBQW1ELENBQ25ELHNFQUF3RSxDQUN4RTs7S0FHQyxDQUNEOztLQUdDLENBQ0QsbUdBQTBHLENBQzFHLG9FQUEwRSxDQUMxRSw0RUFBa0YsQ0FDbEYsNEVBQThFLENBQzlFLHFFQUEyRSxDQUMzRSw0RUFBa0YsQ0FDbEYsMkRBQWlFLENBQ2pFLDBFQUFnRixDQUNoRixxRUFBMkUsQ0FDM0UsbUVBQXlFLENBQ3pFLGdFQUFzRSxDQUN0RSx5REFBMkQsQ0FFM0QsMEJBQTJCLENBQzNCLHNDQUF1QyxDQUN2QyxpQkFBa0IsQ0FFbEIscUJBQXVCLENBRHZCLGdCQUVKLENBRUEsNERBQ0ksc0JBQ0osQ0FFQSwyREFDSSx5QkFDSixDQUVBLHNFQVFJLGlCQUFrQixDQUxsQiw2QkFBOEIsQ0FDOUIseUNBQTBDLENBQzFDLGVBQWdCLENBRWhCLG9CQUFzQixDQUR0QixnQkFBaUIsQ0FKakIsb0JBQXNCLENBRHRCLGlCQVFKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLGtEQUNJLGlCQUNKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxpQkFDSixDQUVBLGtEQUNJLGdCQUNKLENBRUEsaURBRUksZ0JBQWlCLENBRGpCLGVBRUosQ0FFQSx1REFDSSxZQUNKLENBRUEsMERBR0ksWUFBYSxDQUNiLFNBQVcsQ0FIWCxrQkFBb0IsQ0FDcEIsNEJBR0osQ0FFQSxrREFDSSxlQUNKLENBRUEsa0RBQ0ksa0JBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLDZEQUVJLGVBQWdCLENBRGhCLGdCQUVKLENBRUEsaURBQ0ksMEJBQTJCLENBSTNCLGtDQUFtQyxDQUhuQyw4QkFBK0IsQ0FDL0IsK0JBQWdDLENBQ2hDLDJCQUE2QixDQUU3Qiw4REFDSixDQUVBLHNIQUVJLFdBQWEsQ0FDYiw2QkFDSixDQUVBLG1EQUlJLGtCQUFtQixDQUhuQixhQUFjLENBRWQsV0FBWSxDQUVaLGNBQWdCLENBSGhCLGNBSUosQ0FFQSxvTkFJSSxjQUNKLENBRUEsbURBS0ksc0JBQXVCLENBSHZCLFdBQVksQ0FDWixrQkFBbUIsQ0FDbkIsZUFBZ0IsQ0FIaEIsYUFBYyxDQU1kLGdCQUFpQixDQURqQixTQUVKLENBRUEsMERBTUksa0NBQW1DLENBSm5DLFdBQVksQ0FDWixpREFBa0QsQ0FDbEQsa0JBQW1CLENBQ25CLGVBQWdCLENBRWhCLDJCQUE0QixDQU41QixhQUFjLENBT2QsbUJBQ0osQ0FFQSxzRUFDSSxlQUNKLENBRUEsb0RBS0ksbUNBQW9DLENBRnBDLDZDQUE4QyxDQUM5QyxpQkFBa0IsQ0FLbEIsaUNBQWtDLENBSGxDLHNDQUF1QyxDQUN2QyxlQUFpQixDQUNqQixnQkFBaUIsQ0FQakIsUUFBUyxDQUNULG1CQUFzQixDQVF0QixxQkFDSixDQUVBLHdEQUNJLHlCQUEyQixDQUszQixxQkFBdUIsQ0FDdkIseUJBQTJCLENBTDNCLHVCQUF5QixDQVN6QixhQUFjLENBUmQsNkJBQStCLENBQy9CLDJCQUE2QixDQU03QixlQUFnQixDQUxoQixtQkFBcUIsQ0FHckIsZUFBZ0IsQ0FDaEIsaUJBR0osQ0FFQSw4RkFDSSxrQkFBbUIsQ0FLbkIsc0NBQTJDLENBQzNDLGtCQUFtQixDQUNuQixzQ0FBMkMsQ0FOM0MsYUFBYyxDQU9kLHNDQUF1QyxDQU52QyxjQUFlLENBQ2YsZUFBZ0IsQ0FDaEIsZUFLSixDQUVBLG1HQUNJLHlCQUEyQixDQUszQixxQkFBdUIsQ0FDdkIseUJBQTJCLENBTDNCLHVCQUF5QixDQVN6QixhQUFjLENBUmQsNkJBQStCLENBQy9CLDJCQUE2QixDQU03QixlQUFnQixDQUxoQixtQkFBcUIsQ0FHckIsZUFBZ0IsQ0FDaEIsaUJBR0osQ0FFQSxxREFPSSw2QkFBOEIsQ0FIOUIsdUNBQXdDLENBRnhDLHdCQUF5QixDQUd6QixrQkFBbUIsQ0FGbkIsZ0JBQWlCLENBS2pCLHNDQUEyQyxDQUUzQyxhQUFjLENBRGQsZUFBaUIsQ0FIakIsZUFBZ0IsQ0FMaEIsVUFVSixDQUVBLG9HQU9JLGVBQWdCLENBSmhCLDhDQUErQyxDQUcvQyxhQUFjLENBSmQsbUJBQXNCLENBRXRCLGVBQWdCLENBQ2hCLGtCQUdKLENBRUEsa0RBQ0ksa0NBQW1DLENBQ25DLGVBQ0osQ0FFQSxnRUFDSSxrQkFDSixDQUVBLG1FQUNJLHFDQUNKLENBRUEsa0RBQ0ksV0FBWSxDQUNaLDJDQUE0QyxDQUM1QyxVQUNKLENBRUEsc0RBQ0ksZUFDSixDQUVBLGtEQUNJLGlCQUNKLENBa0JBLG1GQUVJLGtCQUFtQixDQVduQixnQ0FBaUMsQ0FOakMsbUJBQW9CLENBS3BCLDhCQUErQixDQVgvQixtQkFBb0IsQ0FPcEIsZUFBaUIsQ0FDakIsZUFBZ0IsQ0FOaEIsc0JBQXVCLENBT3ZCLGdCQUFpQixDQUxqQixhQUFlLENBRGYsZUFBZ0IsQ0FFaEIsZUFBaUIsQ0FLakIsb0JBR0osQ0FFQSwyRUFPSSxrQkFBbUIsQ0FObkIsY0FBZSxDQUVmLGVBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLGFBQWMsQ0FIZCxxQkFBd0IsQ0FJeEIsb0JBRUoiLCJmaWxlIjoiTWFya2Rvd25Db250ZW50Lm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuTWFya2Rvd25Db250ZW50IHtcbiAgICAtLW1kLXRleHQtY29sb3I6IHZhcigtLWNoYXQtbWQtdGV4dC1jb2xvciwgaW5oZXJpdCk7XG4gICAgLS1tZC1tdXRlZC1jb2xvcjogdmFyKC0tY2hhdC1tZC1tdXRlZC1jb2xvciwgY3VycmVudENvbG9yKTtcbiAgICAtLW1kLWxpbmstY29sb3I6IHZhcigtLWNoYXQtbWQtbGluay1jb2xvciwgIzI1NjNlYik7XG4gICAgLS1tZC1oZWFkaW5nLWNvbG9yOiB2YXIoLS1jaGF0LWhlYWRpbmctdGV4dC1jb2xvciwgdmFyKC0tbWQtdGV4dC1jb2xvcikpO1xuICAgIC0tbWQtaGVhZGluZy1mb250LWZhbWlseTogdmFyKFxuICAgICAgICAtLWNoYXQtbWQtaGVhZGluZy1mb250LWZhbWlseSxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tbWQtYm9keS1mb250LWZhbWlseTogdmFyKFxuICAgICAgICAtLWNoYXQtbWQtYm9keS1mb250LWZhbWlseSxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tbWQtY29kZS1mb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgLS1tZC1pbmxpbmUtY29kZS1iZzogdmFyKC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZywgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KSk7XG4gICAgLS1tZC1pbmxpbmUtY29kZS1ib3JkZXI6IHZhcigtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyLCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpKTtcbiAgICAtLW1kLWlubGluZS1jb2RlLWNvbG9yOiB2YXIoLS1jaGF0LW1kLWlubGluZS1jb2RlLWNvbG9yLCB2YXIoLS1tZC10ZXh0LWNvbG9yKSk7XG4gICAgLS1tZC1ibG9ja3F1b3RlLWJnOiB2YXIoLS1jaGF0LW1kLWJsb2NrcXVvdGUtYmcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45MikpO1xuICAgIC0tbWQtYmxvY2txdW90ZS1ib3JkZXI6IHZhcigtLWNoYXQtbWQtYmxvY2txdW90ZS1ib3JkZXIsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjM1KSk7XG4gICAgLS1tZC10YWJsZS1iZzogdmFyKC0tY2hhdC1tZC10YWJsZS1iZywgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkyKSk7XG4gICAgLS1tZC10YWJsZS1yb3ctYWx0LWJnOiB2YXIoLS1jaGF0LW1kLXRhYmxlLXJvdy1hbHQtYmcsIHJnYmEoMjQxLCAyNDUsIDI0OSwgMC45KSk7XG4gICAgLS1tZC10YWJsZS1oZWFkLWJnOiB2YXIoLS1jaGF0LW1kLXRhYmxlLWhlYWQtYmcsIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45NSkpO1xuICAgIC0tbWQtdGFibGUtYm9yZGVyOiB2YXIoLS1jaGF0LW1kLXRhYmxlLWJvcmRlciwgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM2KSk7XG4gICAgLS1tZC1jaXRhdGlvbi1iZzogdmFyKC0tY2hhdC1tZC1jaXRhdGlvbi1iZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTQpKTtcbiAgICAtLW1kLWNpdGF0aW9uLWNvbG9yOiB2YXIoLS1jaGF0LW1kLWNpdGF0aW9uLWNvbG9yLCAjMWQ0ZWQ4KTtcblxuICAgIGNvbG9yOiB2YXIoLS1tZC10ZXh0LWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtYm9keS1mb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4uTWFya2Rvd25Db250ZW50IDppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMS40ZW0gMCAwLjU1ZW07XG4gICAgY29sb3I6IHZhcigtLW1kLWhlYWRpbmctY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1oZWFkaW5nLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI0O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGgxIHtcbiAgICBmb250LXNpemU6IDEuNTJyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGgzIHtcbiAgICBmb250LXNpemU6IDEuMjZyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4xNHJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoNSB7XG4gICAgZm9udC1zaXplOiAxLjA0cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGg2IHtcbiAgICBmb250LXNpemU6IDAuOThyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcCB7XG4gICAgbWFyZ2luOiAwIDAgMC45ZW07XG4gICAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcDplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6aXModWwsIG9sKSB7XG4gICAgbWFyZ2luOiAwLjY1ZW0gMCAxZW07XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDEuMzVyZW07XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAuMzVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbn1cblxuLk1hcmtkb3duQ29udGVudCBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgbGkgPiA6aXModWwsIG9sKSB7XG4gICAgbWFyZ2luLXRvcDogMC40NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYSB7XG4gICAgY29sb3I6IHZhcigtLW1kLWxpbmstY29sb3IpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMS40cHg7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjE2ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3MgMC4ycyBlYXNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGE6aG92ZXIsXG4uTWFya2Rvd25Db250ZW50IGE6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgbWFyZ2luOiAwLjk1ZW0gMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwcmUsXG4uTWFya2Rvd25Db250ZW50IGJsb2NrcXVvdGUsXG4uTWFya2Rvd25Db250ZW50IHRhYmxlLFxuLk1hcmtkb3duQ29udGVudCBociB7XG4gICAgbWFyZ2luOiAwLjk1ZW0gMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBibG9ja3F1b3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1tZC1ibG9ja3F1b3RlLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLWJsb2NrcXVvdGUtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1tdXRlZC1jb2xvcik7XG4gICAgcGFkZGluZzogMC43MmVtIDAuOTZlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgY29kZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuMTRlbSAwLjQyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWQtaW5saW5lLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtaW5saW5lLWNvZGUtYmcpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1jb2RlLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IDAuODhlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjb2xvcjogdmFyKC0tbWQtaW5saW5lLWNvZGUtY29sb3IpO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcHJlIGNvZGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uTWFya2Rvd25Db250ZW50IC5jaGF0LWNvZGUtYmxvY2sge1xuICAgIGJhY2tncm91bmQ6ICMxODFjMjM7XG4gICAgY29sb3I6ICNmOGZhZmM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDIsIDYsIDIzLCAwLjI4KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtY29kZS1mb250LWZhbWlseSk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgLmNoYXQtY29kZS1ibG9jayBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLk1hcmtkb3duQ29udGVudCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC10YWJsZS1iZyk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xKTtcbiAgICBmb250LXNpemU6IDAuOTNlbTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0aCxcbi5NYXJrZG93bkNvbnRlbnQgdGQge1xuICAgIHBhZGRpbmc6IDAuNThlbSAwLjcyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1kLXRhYmxlLWJvcmRlcik7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLXRhYmxlLWhlYWQtYmcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLXRhYmxlLXJvdy1hbHQtYmcpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGhyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1kLXRhYmxlLWJvcmRlcik7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uTWFya2Rvd25Db250ZW50IHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDY1MDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBlbSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uY2l0YXRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAxLjRlbTtcbiAgICBtYXJnaW46IDAgMC4xZW07XG4gICAgcGFkZGluZzogMCAwLjM1ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAwLjc0ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgY29sb3I6IHZhcigtLW1kLWNpdGF0aW9uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC1jaXRhdGlvbi1iZyk7XG59XG5cbi5jaXRhdGlvblJlZiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDEuNGVtO1xuICAgIG1hcmdpbjogMCAwLjFlbTtcbiAgICBwYWRkaW5nOiAwIDAuMzVlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXNpemU6IDAuNzRlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgICBjb2xvcjogdmFyKC0tbWQtY2l0YXRpb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLWNpdGF0aW9uLWJnKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBzdXBbZGF0YS1jaXRhdGlvbi1mb290bm90ZV0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDAgMC43ZW0gMCAwLjA4ZW07XG4gICAgZm9udC1zaXplOiAwLjcyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbiJdfQ== */";
|
|
18326
|
+
var css_248z$b = ".MarkdownContent-module_MarkdownContent__2JuyX{--md-text-color:var(--chat-md-text-color,inherit);--md-muted-color:var(--chat-md-muted-color,currentColor);--md-link-color:var(--chat-md-link-color,#2563eb);--md-heading-color:var(--chat-heading-text-color,var(--md-text-color));--md-heading-font-family:var(\n --chat-md-heading-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-body-font-family:var(\n --chat-md-body-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,sans-serif)\n );--md-code-font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace;--md-inline-code-bg:var(--chat-md-inline-code-bg,rgba(15,23,42,.08));--md-inline-code-border:var(--chat-md-inline-code-border,rgba(15,23,42,.12));--md-inline-code-color:var(--chat-md-inline-code-color,var(--md-text-color));--md-blockquote-bg:var(--chat-md-blockquote-bg,rgba(248,250,252,.92));--md-blockquote-border:var(--chat-md-blockquote-border,rgba(59,130,246,.35));--md-table-bg:var(--chat-md-table-bg,rgba(248,250,252,.92));--md-table-row-alt-bg:var(--chat-md-table-row-alt-bg,rgba(241,245,249,.9));--md-table-head-bg:var(--chat-md-table-head-bg,rgba(226,232,240,.95));--md-table-border:var(--chat-md-table-border,rgba(148,163,184,.36));--md-citation-bg:var(--chat-md-citation-bg,rgba(59,130,246,.14));--md-citation-color:var(--chat-md-citation-color,#1d4ed8);color:var(--md-text-color);font-family:var(--md-body-font-family);font-size:inherit;letter-spacing:.002em;line-height:1.65}.MarkdownContent-module_MarkdownContent__2JuyX>:first-child{margin-top:0!important}.MarkdownContent-module_MarkdownContent__2JuyX>:last-child{margin-bottom:0!important}.MarkdownContent-module_MarkdownContent__2JuyX :is(h1,h2,h3,h4,h5,h6){text-wrap:balance;color:var(--md-heading-color);font-family:var(--md-heading-font-family);font-weight:600;letter-spacing:.01em;line-height:1.24;margin:1.4em 0 .55em;position:relative}.MarkdownContent-module_MarkdownContent__2JuyX h1{font-size:1.52rem}.MarkdownContent-module_MarkdownContent__2JuyX h2{font-size:1.4rem}.MarkdownContent-module_MarkdownContent__2JuyX h3{font-size:1.26rem}.MarkdownContent-module_MarkdownContent__2JuyX h4{font-size:1.14rem}.MarkdownContent-module_MarkdownContent__2JuyX h5{font-size:1.04rem}.MarkdownContent-module_MarkdownContent__2JuyX h6{font-size:.98rem}.MarkdownContent-module_MarkdownContent__2JuyX p{text-wrap:pretty;margin:0 0 .9em}.MarkdownContent-module_MarkdownContent__2JuyX p:empty{display:none}.MarkdownContent-module_MarkdownContent__2JuyX :is(ul,ol){display:grid;gap:.35em;margin:.65em 0 1em;padding-inline-start:1.35rem}.MarkdownContent-module_MarkdownContent__2JuyX ul{list-style:disc}.MarkdownContent-module_MarkdownContent__2JuyX ol{list-style:decimal}.MarkdownContent-module_MarkdownContent__2JuyX li{line-height:1.58}.MarkdownContent-module_MarkdownContent__2JuyX li>:is(ul,ol){margin-bottom:0;margin-top:.45em}.MarkdownContent-module_MarkdownContent__2JuyX a{color:var(--md-link-color);text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:1.4px;text-underline-offset:.16em;transition:opacity .2s ease,text-decoration-thickness .2s ease}.MarkdownContent-module_MarkdownContent__2JuyX a:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX a:hover{opacity:.92;text-decoration-thickness:2px}.MarkdownContent-module_MarkdownContent__2JuyX img{border-radius:14px;display:block;height:auto;margin:.95em 0;max-width:100%}.MarkdownContent-module_MarkdownContent__2JuyX blockquote,.MarkdownContent-module_MarkdownContent__2JuyX hr,.MarkdownContent-module_MarkdownContent__2JuyX pre,.MarkdownContent-module_MarkdownContent__2JuyX table{margin:.95em 0}.MarkdownContent-module_MarkdownContent__2JuyX pre{background:transparent;border:none;border-radius:12px;box-shadow:none;display:block;overflow:visible;padding:0}.MarkdownContent-module_MarkdownContent__2JuyX blockquote{background:var(--md-blockquote-bg);border:none;border-left:3px solid var(--md-blockquote-border);border-radius:12px;box-shadow:none;color:var(--md-muted-color);display:block;padding:.72em .96em}.MarkdownContent-module_MarkdownContent__2JuyX blockquote>:last-child{margin-bottom:0}.MarkdownContent-module_MarkdownContent__2JuyX code{background:var(--md-inline-code-bg);border:1px solid var(--md-inline-code-border);border-radius:8px;color:var(--md-inline-code-color);font-family:var(--md-code-font-family);font-size:.88em;line-height:1.45;margin:0;padding:.14em .42em;word-break:break-word}.MarkdownContent-module_MarkdownContent__2JuyX pre code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg{background:#181c23;border:1px solid rgba(148,163,184,.35);border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.28);color:#f8fafc;font-family:var(--md-code-font-family);font-size:14px;line-height:1.6;overflow-x:auto}.MarkdownContent-module_MarkdownContent__2JuyX .MarkdownContent-module_chat-code-block__ZffFg code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:normal}.MarkdownContent-module_MarkdownContent__2JuyX table{background:var(--md-table-bg);border:1px solid var(--md-table-border);border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 8px rgba(15,23,42,.1);color:inherit;font-size:.93em;overflow:hidden;width:100%}.MarkdownContent-module_MarkdownContent__2JuyX td,.MarkdownContent-module_MarkdownContent__2JuyX th{background:none;border-bottom:1px solid var(--md-table-border);color:inherit;padding:.58em .72em;text-align:left;vertical-align:top}.MarkdownContent-module_MarkdownContent__2JuyX th{background:var(--md-table-head-bg);font-weight:600}.MarkdownContent-module_MarkdownContent__2JuyX tr:last-child td{border-bottom:none}.MarkdownContent-module_MarkdownContent__2JuyX tr:nth-child(2n) td{background:var(--md-table-row-alt-bg)}.MarkdownContent-module_MarkdownContent__2JuyX hr{border:none;border-top:1px solid var(--md-table-border);opacity:.8}.MarkdownContent-module_MarkdownContent__2JuyX details{background:color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.3) 18%);border:1px solid var(--md-table-border);border-radius:16px;box-shadow:0 8px 22px rgba(15,23,42,.08);margin:.95em 0;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.MarkdownContent-module_MarkdownContent__2JuyX details:focus-within,.MarkdownContent-module_MarkdownContent__2JuyX details:hover{border-color:color-mix(in srgb,var(--md-link-color) 24%,var(--md-table-border) 76%);box-shadow:0 12px 28px rgba(15,23,42,.12)}.MarkdownContent-module_MarkdownContent__2JuyX details>summary{align-items:center;background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 88%,hsla(0,0%,100%,.85) 12%),color-mix(in srgb,var(--md-table-bg) 82%,hsla(0,0%,100%,.7) 18%));color:var(--md-link-color);cursor:pointer;display:flex;font-weight:600;gap:.72rem;list-style:none;padding:.9em 1.05em;transition:background .18s ease,color .18s ease;user-select:none}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:before{border-bottom:2px solid;border-right:2px solid;content:\"\";flex:0 0 auto;height:.62rem;margin-top:-.04rem;opacity:.82;transform:rotate(-45deg);transition:transform .18s ease,opacity .18s ease;width:.62rem}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:focus-visible,.MarkdownContent-module_MarkdownContent__2JuyX details>summary:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--md-table-head-bg) 76%,hsla(0,0%,100%,.95) 24%),color-mix(in srgb,var(--md-table-bg) 74%,hsla(0,0%,100%,.82) 26%))}.MarkdownContent-module_MarkdownContent__2JuyX details>summary:focus-visible{outline:2px solid color-mix(in srgb,var(--md-link-color) 52%,transparent);outline-offset:-2px}.MarkdownContent-module_MarkdownContent__2JuyX details>summary::-webkit-details-marker{display:none}.MarkdownContent-module_MarkdownContent__2JuyX details[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--md-table-border) 88%,transparent)}.MarkdownContent-module_MarkdownContent__2JuyX details[open]>summary:before{opacity:1;transform:rotate(45deg)}.MarkdownContent-module_MarkdownContent__2JuyX details>:not(summary){margin-left:1.05em;margin-right:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX details>summary+*{margin-top:.95em}.MarkdownContent-module_MarkdownContent__2JuyX details>:last-child{margin-bottom:1.05em}.MarkdownContent-module_MarkdownContent__2JuyX strong{font-weight:650}.MarkdownContent-module_MarkdownContent__2JuyX em{font-style:italic}.MarkdownContent-module_citationRef__fKqaT,.MarkdownContent-module_citation__11SMw{align-items:center;background:var(--md-citation-bg);border-radius:999px;color:var(--md-citation-color);display:inline-flex;font-size:.74em;font-weight:700;justify-content:center;line-height:1.45;margin:0 .1em;min-width:1.4em;padding:0 .35em;vertical-align:super}.MarkdownContent-module_MarkdownContent__2JuyX sup[data-citation-footnote]{color:currentColor;display:inline;font-size:.72em;font-weight:700;line-height:1;margin:0 .7em 0 .08em;vertical-align:super}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hcmtkb3duQ29udGVudC5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUNJLGlEQUFtRCxDQUNuRCx3REFBMEQsQ0FDMUQsaURBQW1ELENBQ25ELHNFQUF3RSxDQUN4RTs7S0FHQyxDQUNEOztLQUdDLENBQ0QsbUdBQTBHLENBQzFHLG9FQUEwRSxDQUMxRSw0RUFBa0YsQ0FDbEYsNEVBQThFLENBQzlFLHFFQUEyRSxDQUMzRSw0RUFBa0YsQ0FDbEYsMkRBQWlFLENBQ2pFLDBFQUFnRixDQUNoRixxRUFBMkUsQ0FDM0UsbUVBQXlFLENBQ3pFLGdFQUFzRSxDQUN0RSx5REFBMkQsQ0FFM0QsMEJBQTJCLENBQzNCLHNDQUF1QyxDQUN2QyxpQkFBa0IsQ0FFbEIscUJBQXVCLENBRHZCLGdCQUVKLENBRUEsNERBQ0ksc0JBQ0osQ0FFQSwyREFDSSx5QkFDSixDQUVBLHNFQVFJLGlCQUFrQixDQUxsQiw2QkFBOEIsQ0FDOUIseUNBQTBDLENBQzFDLGVBQWdCLENBRWhCLG9CQUFzQixDQUR0QixnQkFBaUIsQ0FKakIsb0JBQXNCLENBRHRCLGlCQVFKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLGtEQUNJLGlCQUNKLENBRUEsa0RBQ0ksaUJBQ0osQ0FFQSxrREFDSSxpQkFDSixDQUVBLGtEQUNJLGdCQUNKLENBRUEsaURBRUksZ0JBQWlCLENBRGpCLGVBRUosQ0FFQSx1REFDSSxZQUNKLENBRUEsMERBR0ksWUFBYSxDQUNiLFNBQVcsQ0FIWCxrQkFBb0IsQ0FDcEIsNEJBR0osQ0FFQSxrREFDSSxlQUNKLENBRUEsa0RBQ0ksa0JBQ0osQ0FFQSxrREFDSSxnQkFDSixDQUVBLDZEQUVJLGVBQWdCLENBRGhCLGdCQUVKLENBRUEsaURBQ0ksMEJBQTJCLENBSTNCLGtDQUFtQyxDQUhuQyw4QkFBK0IsQ0FDL0IsK0JBQWdDLENBQ2hDLDJCQUE2QixDQUU3Qiw4REFDSixDQUVBLHNIQUVJLFdBQWEsQ0FDYiw2QkFDSixDQUVBLG1EQUlJLGtCQUFtQixDQUhuQixhQUFjLENBRWQsV0FBWSxDQUVaLGNBQWdCLENBSGhCLGNBSUosQ0FFQSxvTkFJSSxjQUNKLENBRUEsbURBS0ksc0JBQXVCLENBSHZCLFdBQVksQ0FDWixrQkFBbUIsQ0FDbkIsZUFBZ0IsQ0FIaEIsYUFBYyxDQU1kLGdCQUFpQixDQURqQixTQUVKLENBRUEsMERBTUksa0NBQW1DLENBSm5DLFdBQVksQ0FDWixpREFBa0QsQ0FDbEQsa0JBQW1CLENBQ25CLGVBQWdCLENBRWhCLDJCQUE0QixDQU41QixhQUFjLENBT2QsbUJBQ0osQ0FFQSxzRUFDSSxlQUNKLENBRUEsb0RBS0ksbUNBQW9DLENBRnBDLDZDQUE4QyxDQUM5QyxpQkFBa0IsQ0FLbEIsaUNBQWtDLENBSGxDLHNDQUF1QyxDQUN2QyxlQUFpQixDQUNqQixnQkFBaUIsQ0FQakIsUUFBUyxDQUNULG1CQUFzQixDQVF0QixxQkFDSixDQUVBLHdEQUNJLHlCQUEyQixDQUszQixxQkFBdUIsQ0FDdkIseUJBQTJCLENBTDNCLHVCQUF5QixDQVN6QixhQUFjLENBUmQsNkJBQStCLENBQy9CLDJCQUE2QixDQU03QixlQUFnQixDQUxoQixtQkFBcUIsQ0FHckIsZUFBZ0IsQ0FDaEIsaUJBR0osQ0FFQSw4RkFDSSxrQkFBbUIsQ0FLbkIsc0NBQTJDLENBQzNDLGtCQUFtQixDQUNuQixzQ0FBMkMsQ0FOM0MsYUFBYyxDQU9kLHNDQUF1QyxDQU52QyxjQUFlLENBQ2YsZUFBZ0IsQ0FDaEIsZUFLSixDQUVBLG1HQUNJLHlCQUEyQixDQUszQixxQkFBdUIsQ0FDdkIseUJBQTJCLENBTDNCLHVCQUF5QixDQVN6QixhQUFjLENBUmQsNkJBQStCLENBQy9CLDJCQUE2QixDQU03QixlQUFnQixDQUxoQixtQkFBcUIsQ0FHckIsZUFBZ0IsQ0FDaEIsaUJBR0osQ0FFQSxxREFPSSw2QkFBOEIsQ0FIOUIsdUNBQXdDLENBRnhDLHdCQUF5QixDQUd6QixrQkFBbUIsQ0FGbkIsZ0JBQWlCLENBS2pCLHNDQUEyQyxDQUUzQyxhQUFjLENBRGQsZUFBaUIsQ0FIakIsZUFBZ0IsQ0FMaEIsVUFVSixDQUVBLG9HQU9JLGVBQWdCLENBSmhCLDhDQUErQyxDQUcvQyxhQUFjLENBSmQsbUJBQXNCLENBRXRCLGVBQWdCLENBQ2hCLGtCQUdKLENBRUEsa0RBQ0ksa0NBQW1DLENBQ25DLGVBQ0osQ0FFQSxnRUFDSSxrQkFDSixDQUVBLG1FQUNJLHFDQUNKLENBRUEsa0RBQ0ksV0FBWSxDQUNaLDJDQUE0QyxDQUM1QyxVQUNKLENBRUEsdURBSUksMkVBQW9GLENBRnBGLHVDQUF3QyxDQUN4QyxrQkFBbUIsQ0FFbkIsd0NBQTZDLENBSjdDLGNBQWdCLENBS2hCLGVBQWdCLENBQ2hCLDBFQUNKLENBRUEsaUlBRUksbUZBQXNGLENBQ3RGLHlDQUNKLENBRUEsK0RBRUksa0JBQW1CLENBUW5CLDBLQUlDLENBTkQsMEJBQTJCLENBSDNCLGNBQWUsQ0FKZixZQUFhLENBS2IsZUFBZ0IsQ0FIaEIsVUFBWSxDQU1aLGVBQWdCLENBTGhCLG1CQUFxQixDQVdyQiwrQ0FBbUQsQ0FSbkQsZ0JBU0osQ0FFQSxzRUFPSSx1QkFBcUMsQ0FEckMsc0JBQW9DLENBTHBDLFVBQVcsQ0FHWCxhQUFjLENBRGQsYUFBZSxDQUVmLGtCQUFvQixDQUlwQixXQUFhLENBRGIsd0JBQXlCLENBRXpCLGdEQUFvRCxDQVJwRCxZQVNKLENBRUEsa0pBRUksMktBS0osQ0FFQSw2RUFDSSx5RUFBNEUsQ0FDNUUsbUJBQ0osQ0FFQSx1RkFDSSxZQUNKLENBRUEscUVBQ0ksaUZBQ0osQ0FFQSw0RUFFSSxTQUFVLENBRFYsdUJBRUosQ0FFQSxxRUFDSSxrQkFBbUIsQ0FDbkIsbUJBQ0osQ0FFQSxpRUFDSSxnQkFDSixDQUVBLG1FQUNJLG9CQUNKLENBRUEsc0RBQ0ksZUFDSixDQUVBLGtEQUNJLGlCQUNKLENBa0JBLG1GQUVJLGtCQUFtQixDQVduQixnQ0FBaUMsQ0FOakMsbUJBQW9CLENBS3BCLDhCQUErQixDQVgvQixtQkFBb0IsQ0FPcEIsZUFBaUIsQ0FDakIsZUFBZ0IsQ0FOaEIsc0JBQXVCLENBT3ZCLGdCQUFpQixDQUxqQixhQUFlLENBRGYsZUFBZ0IsQ0FFaEIsZUFBaUIsQ0FLakIsb0JBR0osQ0FFQSwyRUFPSSxrQkFBbUIsQ0FObkIsY0FBZSxDQUVmLGVBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLGFBQWMsQ0FIZCxxQkFBd0IsQ0FJeEIsb0JBRUoiLCJmaWxlIjoiTWFya2Rvd25Db250ZW50Lm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuTWFya2Rvd25Db250ZW50IHtcbiAgICAtLW1kLXRleHQtY29sb3I6IHZhcigtLWNoYXQtbWQtdGV4dC1jb2xvciwgaW5oZXJpdCk7XG4gICAgLS1tZC1tdXRlZC1jb2xvcjogdmFyKC0tY2hhdC1tZC1tdXRlZC1jb2xvciwgY3VycmVudENvbG9yKTtcbiAgICAtLW1kLWxpbmstY29sb3I6IHZhcigtLWNoYXQtbWQtbGluay1jb2xvciwgIzI1NjNlYik7XG4gICAgLS1tZC1oZWFkaW5nLWNvbG9yOiB2YXIoLS1jaGF0LWhlYWRpbmctdGV4dC1jb2xvciwgdmFyKC0tbWQtdGV4dC1jb2xvcikpO1xuICAgIC0tbWQtaGVhZGluZy1mb250LWZhbWlseTogdmFyKFxuICAgICAgICAtLWNoYXQtbWQtaGVhZGluZy1mb250LWZhbWlseSxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tbWQtYm9keS1mb250LWZhbWlseTogdmFyKFxuICAgICAgICAtLWNoYXQtbWQtYm9keS1mb250LWZhbWlseSxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tbWQtY29kZS1mb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7XG4gICAgLS1tZC1pbmxpbmUtY29kZS1iZzogdmFyKC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZywgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KSk7XG4gICAgLS1tZC1pbmxpbmUtY29kZS1ib3JkZXI6IHZhcigtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyLCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpKTtcbiAgICAtLW1kLWlubGluZS1jb2RlLWNvbG9yOiB2YXIoLS1jaGF0LW1kLWlubGluZS1jb2RlLWNvbG9yLCB2YXIoLS1tZC10ZXh0LWNvbG9yKSk7XG4gICAgLS1tZC1ibG9ja3F1b3RlLWJnOiB2YXIoLS1jaGF0LW1kLWJsb2NrcXVvdGUtYmcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45MikpO1xuICAgIC0tbWQtYmxvY2txdW90ZS1ib3JkZXI6IHZhcigtLWNoYXQtbWQtYmxvY2txdW90ZS1ib3JkZXIsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjM1KSk7XG4gICAgLS1tZC10YWJsZS1iZzogdmFyKC0tY2hhdC1tZC10YWJsZS1iZywgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkyKSk7XG4gICAgLS1tZC10YWJsZS1yb3ctYWx0LWJnOiB2YXIoLS1jaGF0LW1kLXRhYmxlLXJvdy1hbHQtYmcsIHJnYmEoMjQxLCAyNDUsIDI0OSwgMC45KSk7XG4gICAgLS1tZC10YWJsZS1oZWFkLWJnOiB2YXIoLS1jaGF0LW1kLXRhYmxlLWhlYWQtYmcsIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45NSkpO1xuICAgIC0tbWQtdGFibGUtYm9yZGVyOiB2YXIoLS1jaGF0LW1kLXRhYmxlLWJvcmRlciwgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM2KSk7XG4gICAgLS1tZC1jaXRhdGlvbi1iZzogdmFyKC0tY2hhdC1tZC1jaXRhdGlvbi1iZywgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMTQpKTtcbiAgICAtLW1kLWNpdGF0aW9uLWNvbG9yOiB2YXIoLS1jaGF0LW1kLWNpdGF0aW9uLWNvbG9yLCAjMWQ0ZWQ4KTtcblxuICAgIGNvbG9yOiB2YXIoLS1tZC10ZXh0LWNvbG9yKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtYm9keS1mb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4uTWFya2Rvd25Db250ZW50IDppcyhoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMS40ZW0gMCAwLjU1ZW07XG4gICAgY29sb3I6IHZhcigtLW1kLWhlYWRpbmctY29sb3IpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1oZWFkaW5nLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI0O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGgxIHtcbiAgICBmb250LXNpemU6IDEuNTJyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGgzIHtcbiAgICBmb250LXNpemU6IDEuMjZyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4xNHJlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBoNSB7XG4gICAgZm9udC1zaXplOiAxLjA0cmVtO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGg2IHtcbiAgICBmb250LXNpemU6IDAuOThyZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcCB7XG4gICAgbWFyZ2luOiAwIDAgMC45ZW07XG4gICAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcDplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCA6aXModWwsIG9sKSB7XG4gICAgbWFyZ2luOiAwLjY1ZW0gMCAxZW07XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDEuMzVyZW07XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAuMzVlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbn1cblxuLk1hcmtkb3duQ29udGVudCBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgbGkgPiA6aXModWwsIG9sKSB7XG4gICAgbWFyZ2luLXRvcDogMC40NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgYSB7XG4gICAgY29sb3I6IHZhcigtLW1kLWxpbmstY29sb3IpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMS40cHg7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjE2ZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3MgMC4ycyBlYXNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGE6aG92ZXIsXG4uTWFya2Rvd25Db250ZW50IGE6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMC45MjtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgbWFyZ2luOiAwLjk1ZW0gMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwcmUsXG4uTWFya2Rvd25Db250ZW50IGJsb2NrcXVvdGUsXG4uTWFya2Rvd25Db250ZW50IHRhYmxlLFxuLk1hcmtkb3duQ29udGVudCBociB7XG4gICAgbWFyZ2luOiAwLjk1ZW0gMDtcbn1cblxuLk1hcmtkb3duQ29udGVudCBwcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBibG9ja3F1b3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1tZC1ibG9ja3F1b3RlLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLWJsb2NrcXVvdGUtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1tdXRlZC1jb2xvcik7XG4gICAgcGFkZGluZzogMC43MmVtIDAuOTZlbTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgY29kZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuMTRlbSAwLjQyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWQtaW5saW5lLWNvZGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtaW5saW5lLWNvZGUtYmcpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZC1jb2RlLWZvbnQtZmFtaWx5KTtcbiAgICBmb250LXNpemU6IDAuODhlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjb2xvcjogdmFyKC0tbWQtaW5saW5lLWNvZGUtY29sb3IpO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgcHJlIGNvZGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uTWFya2Rvd25Db250ZW50IC5jaGF0LWNvZGUtYmxvY2sge1xuICAgIGJhY2tncm91bmQ6ICMxODFjMjM7XG4gICAgY29sb3I6ICNmOGZhZmM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDIsIDYsIDIzLCAwLjI4KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tbWQtY29kZS1mb250LWZhbWlseSk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgLmNoYXQtY29kZS1ibG9jayBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLk1hcmtkb3duQ29udGVudCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZC10YWJsZS1iZyk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xKTtcbiAgICBmb250LXNpemU6IDAuOTNlbTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0aCxcbi5NYXJrZG93bkNvbnRlbnQgdGQge1xuICAgIHBhZGRpbmc6IDAuNThlbSAwLjcyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1kLXRhYmxlLWJvcmRlcik7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLXRhYmxlLWhlYWQtYmcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLXRhYmxlLXJvdy1hbHQtYmcpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGhyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1kLXRhYmxlLWJvcmRlcik7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMge1xuICAgIG1hcmdpbjogMC45NWVtIDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWQtdGFibGUtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC10YWJsZS1iZykgODIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgMTglKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xOHMgZWFzZSwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtbGluay1jb2xvcikgMjQlLCB2YXIoLS1tZC10YWJsZS1ib3JkZXIpIDc2JSk7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC43MnJlbTtcbiAgICBwYWRkaW5nOiAwLjllbSAxLjA1ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLW1kLWxpbmstY29sb3IpO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZC10YWJsZS1oZWFkLWJnKSA4OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSkgMTIlKSxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJnKSA4MiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAxOCUpXG4gICAgKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2U7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDAuNjJyZW07XG4gICAgaGVpZ2h0OiAwLjYycmVtO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi10b3A6IC0wLjA0cmVtO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgb3BhY2l0eTogMC44MjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgZWFzZSwgb3BhY2l0eSAwLjE4cyBlYXNlO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMgPiBzdW1tYXJ5OmhvdmVyLFxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gc3VtbWFyeTpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDE4MGRlZyxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWhlYWQtYmcpIDc2JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAyNCUpLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWQtdGFibGUtYmcpIDc0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSAyNiUpXG4gICAgKTtcbn1cblxuLk1hcmtkb3duQ29udGVudCBkZXRhaWxzID4gc3VtbWFyeTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLWxpbmstY29sb3IpIDUyJSwgdHJhbnNwYXJlbnQpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHMgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGRldGFpbHNbb3Blbl0gPiBzdW1tYXJ5IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1kLXRhYmxlLWJvcmRlcikgODglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnk6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IDpub3Qoc3VtbWFyeSkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjA1ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjA1ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IHN1bW1hcnkgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAwLjk1ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgZGV0YWlscyA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjA1ZW07XG59XG5cbi5NYXJrZG93bkNvbnRlbnQgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNjUwO1xufVxuXG4uTWFya2Rvd25Db250ZW50IGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaXRhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDEuNGVtO1xuICAgIG1hcmdpbjogMCAwLjFlbTtcbiAgICBwYWRkaW5nOiAwIDAuMzVlbTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXNpemU6IDAuNzRlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgICBjb2xvcjogdmFyKC0tbWQtY2l0YXRpb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1kLWNpdGF0aW9uLWJnKTtcbn1cblxuLmNpdGF0aW9uUmVmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMS40ZW07XG4gICAgbWFyZ2luOiAwIDAuMWVtO1xuICAgIHBhZGRpbmc6IDAgMC4zNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMC43NGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgIGNvbG9yOiB2YXIoLS1tZC1jaXRhdGlvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWQtY2l0YXRpb24tYmcpO1xufVxuXG4uTWFya2Rvd25Db250ZW50IHN1cFtkYXRhLWNpdGF0aW9uLWZvb3Rub3RlXSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMCAwLjdlbSAwIDAuMDhlbTtcbiAgICBmb250LXNpemU6IDAuNzJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuIl19 */";
|
|
18326
18327
|
var styles$b = {"MarkdownContent":"MarkdownContent-module_MarkdownContent__2JuyX","chat-code-block":"MarkdownContent-module_chat-code-block__ZffFg","citation":"MarkdownContent-module_citation__11SMw","citationRef":"MarkdownContent-module_citationRef__fKqaT"};
|
|
18327
18328
|
styleInject(css_248z$b);
|
|
18328
18329
|
|
|
@@ -18447,6 +18448,42 @@ const CODE_FENCE_REGEX = /(`{3,}|~{3,})(?:[^\n\r]*)\r?\n[\s\S]*?\r?\n\1[^\n\r]*/
|
|
|
18447
18448
|
const INLINE_CODE_REGEX = /(`+)([\s\S]*?)(\1)/g;
|
|
18448
18449
|
const CODE_PLACEHOLDER_PREFIX = '@@PROMPTBOOK_CODE_PLACEHOLDER__';
|
|
18449
18450
|
const CODE_PLACEHOLDER_REGEX = new RegExp(`${CODE_PLACEHOLDER_PREFIX}(\\d+)__`, 'g');
|
|
18451
|
+
const DETAILS_BLOCK_REGEX = /<details[\s\S]*?<\/details\s*>/gi;
|
|
18452
|
+
const DETAILS_PLACEHOLDER_PREFIX = '@@PROMPTBOOK_DETAILS_PLACEHOLDER__';
|
|
18453
|
+
const DETAILS_PLACEHOLDER_REGEX = new RegExp(`${DETAILS_PLACEHOLDER_PREFIX}(\\d+)__`, 'g');
|
|
18454
|
+
/** Matches a Showdown-wrapped placeholder such as `<p>@@PROMPTBOOK_DETAILS_PLACEHOLDER__0__</p>` */
|
|
18455
|
+
const DETAILS_PLACEHOLDER_WRAPPED_REGEX = new RegExp(`<p>\\s*(${DETAILS_PLACEHOLDER_PREFIX}\\d+__)\\s*<\\/p>`, 'g');
|
|
18456
|
+
/**
|
|
18457
|
+
* Selector used by the delegated summary click handler.
|
|
18458
|
+
*
|
|
18459
|
+
* @private utility of `MarkdownContent` component
|
|
18460
|
+
*/
|
|
18461
|
+
const DETAILS_SUMMARY_SELECTOR = 'summary';
|
|
18462
|
+
/**
|
|
18463
|
+
* Renders the body of one raw `<details>` block as markdown while keeping the
|
|
18464
|
+
* outer `<details>` and optional `<summary>` markup untouched.
|
|
18465
|
+
*
|
|
18466
|
+
* @param detailsBlock - Raw `<details>...</details>` HTML captured from markdown.
|
|
18467
|
+
* @returns `<details>` HTML whose body has been converted from markdown to HTML.
|
|
18468
|
+
*
|
|
18469
|
+
* @private utility of `MarkdownContent` component
|
|
18470
|
+
*/
|
|
18471
|
+
function renderDetailsBlock(detailsBlock) {
|
|
18472
|
+
var _a, _b;
|
|
18473
|
+
const openTagMatch = detailsBlock.match(/^<details\b[^>]*>/i);
|
|
18474
|
+
const closeTagMatch = detailsBlock.match(/<\/details\s*>$/i);
|
|
18475
|
+
if (!openTagMatch || !closeTagMatch) {
|
|
18476
|
+
return detailsBlock;
|
|
18477
|
+
}
|
|
18478
|
+
const openTag = openTagMatch[0];
|
|
18479
|
+
const closeTag = closeTagMatch[0];
|
|
18480
|
+
const innerContent = detailsBlock.slice(openTag.length, detailsBlock.length - closeTag.length);
|
|
18481
|
+
const summaryMatch = innerContent.match(/^(\s*<summary\b[^>]*>[\s\S]*?<\/summary\s*>)([\s\S]*)$/i);
|
|
18482
|
+
const summaryHtml = (_a = summaryMatch === null || summaryMatch === void 0 ? void 0 : summaryMatch[1]) !== null && _a !== void 0 ? _a : '';
|
|
18483
|
+
const bodyMarkdown = ((_b = summaryMatch === null || summaryMatch === void 0 ? void 0 : summaryMatch[2]) !== null && _b !== void 0 ? _b : innerContent);
|
|
18484
|
+
const renderedBody = renderMarkdown(bodyMarkdown);
|
|
18485
|
+
return `${openTag}${summaryHtml}${renderedBody}${closeTag}`;
|
|
18486
|
+
}
|
|
18450
18487
|
/**
|
|
18451
18488
|
* Masks inline and fenced code segments so math rendering never touches them.
|
|
18452
18489
|
*
|
|
@@ -18476,6 +18513,37 @@ function maskMarkdownCodeSegments(markdown) {
|
|
|
18476
18513
|
},
|
|
18477
18514
|
};
|
|
18478
18515
|
}
|
|
18516
|
+
/**
|
|
18517
|
+
* Masks `<details>…</details>` blocks in the markdown source so that Showdown never
|
|
18518
|
+
* processes their content (which would break them with `simpleLineBreaks: true`).
|
|
18519
|
+
*
|
|
18520
|
+
* The original blocks are replaced with placeholders before Showdown runs, then restored
|
|
18521
|
+
* afterwards with their non-summary body converted through the normal markdown pipeline.
|
|
18522
|
+
* Any surrounding `<p>` wrapper that Showdown may have injected around a placeholder is
|
|
18523
|
+
* stripped so the `<details>` element remains a proper block-level element.
|
|
18524
|
+
*
|
|
18525
|
+
* @param markdown - Markdown text that may contain raw HTML `<details>` blocks.
|
|
18526
|
+
* @returns Masked markdown and a restore helper that returns `string_html`.
|
|
18527
|
+
*
|
|
18528
|
+
* @private utility of `MarkdownContent` component
|
|
18529
|
+
*/
|
|
18530
|
+
function maskDetailsBlocks(markdown) {
|
|
18531
|
+
const blocks = [];
|
|
18532
|
+
DETAILS_BLOCK_REGEX.lastIndex = 0;
|
|
18533
|
+
const masked = markdown.replace(DETAILS_BLOCK_REGEX, (match) => {
|
|
18534
|
+
const placeholder = `${DETAILS_PLACEHOLDER_PREFIX}${blocks.length}__`;
|
|
18535
|
+
blocks.push(renderDetailsBlock(match));
|
|
18536
|
+
return placeholder;
|
|
18537
|
+
});
|
|
18538
|
+
return {
|
|
18539
|
+
masked,
|
|
18540
|
+
restore(value) {
|
|
18541
|
+
return value
|
|
18542
|
+
.replace(DETAILS_PLACEHOLDER_WRAPPED_REGEX, '$1')
|
|
18543
|
+
.replace(DETAILS_PLACEHOLDER_REGEX, (_match, index) => { var _a; return (_a = blocks[Number(index)]) !== null && _a !== void 0 ? _a : ''; });
|
|
18544
|
+
},
|
|
18545
|
+
};
|
|
18546
|
+
}
|
|
18479
18547
|
function replaceMathDelimiter(md, delimiter) {
|
|
18480
18548
|
return md.replace(delimiter.regex, (...args) => {
|
|
18481
18549
|
var _a, _b, _c;
|
|
@@ -18528,7 +18596,8 @@ function renderMarkdown(markdown) {
|
|
|
18528
18596
|
}
|
|
18529
18597
|
try {
|
|
18530
18598
|
const normalizedMarkdown = normalizeMarkdownSublists(markdown);
|
|
18531
|
-
const
|
|
18599
|
+
const { masked: maskedMarkdown, restore: restoreDetails } = maskDetailsBlocks(normalizedMarkdown);
|
|
18600
|
+
const processedMarkdown = renderMathInMarkdown(maskedMarkdown);
|
|
18532
18601
|
const html = chatMarkdownConverter.makeHtml(processedMarkdown);
|
|
18533
18602
|
if (typeof window !== 'undefined') {
|
|
18534
18603
|
if (html.match(/class="katex/)) {
|
|
@@ -18542,7 +18611,8 @@ function renderMarkdown(markdown) {
|
|
|
18542
18611
|
}
|
|
18543
18612
|
}
|
|
18544
18613
|
}
|
|
18545
|
-
const
|
|
18614
|
+
const restoredHtml = restoreDetails(html);
|
|
18615
|
+
const sanitizedHtml = restoredHtml
|
|
18546
18616
|
.replace(/<\s*(script|style|iframe|object|embed)[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi, '')
|
|
18547
18617
|
.replace(/\s+on\w+="[^"]*"/gi, '')
|
|
18548
18618
|
.replace(/\s+javascript:/gi, '')
|
|
@@ -18564,24 +18634,116 @@ function renderMarkdown(markdown) {
|
|
|
18564
18634
|
});
|
|
18565
18635
|
}
|
|
18566
18636
|
}
|
|
18637
|
+
/**
|
|
18638
|
+
* Returns a stable key for a `<details>` element based on its `<summary>` text.
|
|
18639
|
+
* Used to identify and restore open state across re-renders.
|
|
18640
|
+
*
|
|
18641
|
+
* @private utility of `MarkdownContent` component
|
|
18642
|
+
*/
|
|
18643
|
+
function getDetailsKey(details) {
|
|
18644
|
+
var _a, _b;
|
|
18645
|
+
const summary = details.querySelector('summary');
|
|
18646
|
+
return (_b = (_a = summary === null || summary === void 0 ? void 0 : summary.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
|
|
18647
|
+
}
|
|
18648
|
+
/**
|
|
18649
|
+
* Synchronizes the stored open-state registry with the current state of one `<details>` element.
|
|
18650
|
+
*
|
|
18651
|
+
* @param details - The `<details>` element whose open state should be tracked.
|
|
18652
|
+
* @param openDetailsKeys - Mutable registry of currently open details keys.
|
|
18653
|
+
* @private utility of `MarkdownContent` component
|
|
18654
|
+
*/
|
|
18655
|
+
function syncTrackedDetailsOpenState(details, openDetailsKeys) {
|
|
18656
|
+
const key = getDetailsKey(details);
|
|
18657
|
+
if (details.open) {
|
|
18658
|
+
openDetailsKeys.add(key);
|
|
18659
|
+
}
|
|
18660
|
+
else {
|
|
18661
|
+
openDetailsKeys.delete(key);
|
|
18662
|
+
}
|
|
18663
|
+
}
|
|
18664
|
+
/**
|
|
18665
|
+
* Resolves the `<details>` element that owns the clicked `<summary>`, if any.
|
|
18666
|
+
*
|
|
18667
|
+
* @param target - Event target received from the delegated click listener.
|
|
18668
|
+
* @param container - Markdown container that owns the rendered HTML.
|
|
18669
|
+
* @returns Matching `<details>` element or `null` when the click happened elsewhere.
|
|
18670
|
+
* @private utility of `MarkdownContent` component
|
|
18671
|
+
*/
|
|
18672
|
+
function resolveClickedDetailsElement(target, container) {
|
|
18673
|
+
const targetElement = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;
|
|
18674
|
+
if (!(targetElement instanceof Element)) {
|
|
18675
|
+
return null;
|
|
18676
|
+
}
|
|
18677
|
+
const summary = targetElement.closest(DETAILS_SUMMARY_SELECTOR);
|
|
18678
|
+
if (!(summary instanceof HTMLElement) || !container.contains(summary)) {
|
|
18679
|
+
return null;
|
|
18680
|
+
}
|
|
18681
|
+
const details = summary.closest('details');
|
|
18682
|
+
return details instanceof HTMLDetailsElement ? details : null;
|
|
18683
|
+
}
|
|
18567
18684
|
/**
|
|
18568
18685
|
* Renders markdown content with support for code highlighting, math, and tables.
|
|
18569
18686
|
*
|
|
18570
18687
|
* @public exported from `@promptbook/components`
|
|
18571
18688
|
*/
|
|
18572
|
-
function MarkdownContent(props) {
|
|
18689
|
+
const MarkdownContent = memo(function MarkdownContent(props) {
|
|
18573
18690
|
const { content, className, onCreateAgent } = props;
|
|
18574
18691
|
const htmlContent = useMemo(() => renderMarkdown(content), [content]);
|
|
18575
18692
|
const containerRef = useRef(null);
|
|
18576
18693
|
const rootsRef = useRef([]);
|
|
18694
|
+
/** Tracks which `<details>` elements (by summary key) are currently open */
|
|
18695
|
+
const openDetailsKeysRef = useRef(new Set());
|
|
18696
|
+
const onCreateAgentRef = useRef(onCreateAgent);
|
|
18697
|
+
onCreateAgentRef.current = onCreateAgent;
|
|
18577
18698
|
useEffect(() => {
|
|
18578
18699
|
// Cleanup previous roots
|
|
18579
18700
|
rootsRef.current.forEach((root) => root.unmount());
|
|
18580
18701
|
rootsRef.current = [];
|
|
18581
|
-
|
|
18702
|
+
const containerElement = containerRef.current;
|
|
18703
|
+
if (!containerElement) {
|
|
18582
18704
|
return;
|
|
18583
18705
|
}
|
|
18584
|
-
|
|
18706
|
+
// Restore previously open <details> elements that may have been closed by a
|
|
18707
|
+
// streaming innerHTML update (dangerouslySetInnerHTML resets the DOM on every
|
|
18708
|
+
// content change, which collapses any open <details> back to closed).
|
|
18709
|
+
const detailsElements = containerElement.querySelectorAll('details');
|
|
18710
|
+
detailsElements.forEach((details) => {
|
|
18711
|
+
if (openDetailsKeysRef.current.has(getDetailsKey(details))) {
|
|
18712
|
+
details.open = true;
|
|
18713
|
+
}
|
|
18714
|
+
});
|
|
18715
|
+
// Keep openDetailsKeysRef in sync when the user toggles a <details> element.
|
|
18716
|
+
const handleToggle = (event) => {
|
|
18717
|
+
const details = event.target;
|
|
18718
|
+
if (!(details instanceof HTMLDetailsElement) || !containerElement.contains(details)) {
|
|
18719
|
+
return;
|
|
18720
|
+
}
|
|
18721
|
+
syncTrackedDetailsOpenState(details, openDetailsKeysRef.current);
|
|
18722
|
+
};
|
|
18723
|
+
const pendingToggleFallbackTimeoutIds = new Set();
|
|
18724
|
+
// Let the browser perform the native `<details>` toggle, but stop the click from bubbling
|
|
18725
|
+
// into surrounding chat-level handlers. When the environment does not implement native
|
|
18726
|
+
// `<summary>` toggling (for example JSDOM tests), a short fallback keeps behavior covered.
|
|
18727
|
+
const handleSummaryClick = (event) => {
|
|
18728
|
+
const details = resolveClickedDetailsElement(event.target, containerElement);
|
|
18729
|
+
if (!details) {
|
|
18730
|
+
return;
|
|
18731
|
+
}
|
|
18732
|
+
event.stopPropagation();
|
|
18733
|
+
const previousOpenState = details.open;
|
|
18734
|
+
const fallbackTimeoutId = window.setTimeout(() => {
|
|
18735
|
+
pendingToggleFallbackTimeoutIds.delete(fallbackTimeoutId);
|
|
18736
|
+
if (!details.isConnected || details.open !== previousOpenState) {
|
|
18737
|
+
return;
|
|
18738
|
+
}
|
|
18739
|
+
details.open = !previousOpenState;
|
|
18740
|
+
syncTrackedDetailsOpenState(details, openDetailsKeysRef.current);
|
|
18741
|
+
}, 0);
|
|
18742
|
+
pendingToggleFallbackTimeoutIds.add(fallbackTimeoutId);
|
|
18743
|
+
};
|
|
18744
|
+
containerElement.addEventListener('toggle', handleToggle, true);
|
|
18745
|
+
containerElement.addEventListener('click', handleSummaryClick);
|
|
18746
|
+
const preElements = containerElement.querySelectorAll('pre');
|
|
18585
18747
|
preElements.forEach((pre) => {
|
|
18586
18748
|
// Check if it is a code block (has code element)
|
|
18587
18749
|
const codeElement = pre.querySelector('code');
|
|
@@ -18605,18 +18767,22 @@ function MarkdownContent(props) {
|
|
|
18605
18767
|
pre.appendChild(mountPoint);
|
|
18606
18768
|
// Render CodeBlock
|
|
18607
18769
|
const root = createRoot(mountPoint);
|
|
18608
|
-
root.render(jsx(CodeBlock, { code: code, language: language, onCreateAgent:
|
|
18770
|
+
root.render(jsx(CodeBlock, { code: code, language: language, onCreateAgent: onCreateAgentRef.current }));
|
|
18609
18771
|
rootsRef.current.push(root);
|
|
18610
18772
|
});
|
|
18611
18773
|
return () => {
|
|
18774
|
+
containerElement.removeEventListener('toggle', handleToggle, true);
|
|
18775
|
+
containerElement.removeEventListener('click', handleSummaryClick);
|
|
18776
|
+
pendingToggleFallbackTimeoutIds.forEach((timeoutId) => window.clearTimeout(timeoutId));
|
|
18777
|
+
pendingToggleFallbackTimeoutIds.clear();
|
|
18612
18778
|
rootsRef.current.forEach((root) => root.unmount());
|
|
18613
18779
|
rootsRef.current = [];
|
|
18614
18780
|
};
|
|
18615
|
-
}, [htmlContent
|
|
18781
|
+
}, [htmlContent]);
|
|
18616
18782
|
return (jsx("div", { ref: containerRef, className: classNames(styles$b.MarkdownContent, className), dangerouslySetInnerHTML: {
|
|
18617
18783
|
__html: htmlContent,
|
|
18618
18784
|
} }));
|
|
18619
|
-
}
|
|
18785
|
+
});
|
|
18620
18786
|
|
|
18621
18787
|
/**
|
|
18622
18788
|
* Core Promptbook server configuration
|
|
@@ -21670,6 +21836,49 @@ function useChatAutoScroll(config = {}) {
|
|
|
21670
21836
|
};
|
|
21671
21837
|
}
|
|
21672
21838
|
|
|
21839
|
+
/**
|
|
21840
|
+
* Plays the "message received" sound + vibration exactly once when the last
|
|
21841
|
+
* assistant message transitions to a completed / finalized state.
|
|
21842
|
+
*
|
|
21843
|
+
* Notifications are suppressed for:
|
|
21844
|
+
* - Every streaming chunk / intermediate content update
|
|
21845
|
+
* - `message_typing` lifecycle events before the message is finalized
|
|
21846
|
+
* - Re-renders of an already-notified completed message (idempotent)
|
|
21847
|
+
* - User-originated messages
|
|
21848
|
+
*
|
|
21849
|
+
* @param messages - Current list of chat messages
|
|
21850
|
+
* @param soundSystem - Optional sound system instance; no-op when absent
|
|
21851
|
+
*
|
|
21852
|
+
* @private internal hook of `<Chat/>`
|
|
21853
|
+
*/
|
|
21854
|
+
function useChatCompleteNotification(messages, soundSystem) {
|
|
21855
|
+
/**
|
|
21856
|
+
* Tracks the stable key of the last message for which the completion
|
|
21857
|
+
* notification was already fired, preventing double-firing on re-renders.
|
|
21858
|
+
*/
|
|
21859
|
+
const notifiedMessageKeyRef = useRef(null);
|
|
21860
|
+
useEffect(() => {
|
|
21861
|
+
var _a;
|
|
21862
|
+
if (!soundSystem || messages.length === 0) {
|
|
21863
|
+
return;
|
|
21864
|
+
}
|
|
21865
|
+
const lastMessage = messages[messages.length - 1];
|
|
21866
|
+
// Only notify for completed assistant messages
|
|
21867
|
+
if (!lastMessage || lastMessage.sender === 'USER' || !lastMessage.isComplete) {
|
|
21868
|
+
return;
|
|
21869
|
+
}
|
|
21870
|
+
// Derive a stable per-message key; fall back to positional index when
|
|
21871
|
+
// the message has no id so we never coalesce distinct messages.
|
|
21872
|
+
const messageKey = (_a = lastMessage.id) !== null && _a !== void 0 ? _a : `index-${messages.length - 1}`;
|
|
21873
|
+
// Guard: fire only once per unique completed message
|
|
21874
|
+
if (notifiedMessageKeyRef.current === messageKey) {
|
|
21875
|
+
return;
|
|
21876
|
+
}
|
|
21877
|
+
notifiedMessageKeyRef.current = messageKey;
|
|
21878
|
+
/* not await */ soundSystem.play('message_receive');
|
|
21879
|
+
}, [messages, soundSystem]);
|
|
21880
|
+
}
|
|
21881
|
+
|
|
21673
21882
|
const DEFAULT_FEEDBACK_SUCCESS_MESSAGE = 'Thank you for your feedback!';
|
|
21674
21883
|
const DEFAULT_REPORT_ISSUE_SUCCESS_MESSAGE = 'Issue report submitted. Thank you!';
|
|
21675
21884
|
const DEFAULT_FEEDBACK_ERROR_MESSAGE = 'Failed to save feedback. Please try again.';
|
|
@@ -22773,13 +22982,16 @@ const mdSaveFormatDefinition = {
|
|
|
22773
22982
|
/**
|
|
22774
22983
|
* Builds display-ready timestamp and duration labels for a chat message.
|
|
22775
22984
|
*
|
|
22985
|
+
* @param message - Message with optional timestamp metadata.
|
|
22986
|
+
* @param locale - Optional moment locale used for formatting.
|
|
22987
|
+
*
|
|
22776
22988
|
* @private utility of `<Chat/>` component
|
|
22777
22989
|
*/
|
|
22778
|
-
function getChatMessageTimingDisplay(message) {
|
|
22990
|
+
function getChatMessageTimingDisplay(message, locale) {
|
|
22779
22991
|
if (!message.createdAt) {
|
|
22780
22992
|
return null;
|
|
22781
22993
|
}
|
|
22782
|
-
const timestamp = moment(message.createdAt);
|
|
22994
|
+
const timestamp = moment(message.createdAt).locale(locale || moment.locale());
|
|
22783
22995
|
if (!timestamp.isValid()) {
|
|
22784
22996
|
return null;
|
|
22785
22997
|
}
|
|
@@ -22788,7 +23000,7 @@ function getChatMessageTimingDisplay(message) {
|
|
|
22788
23000
|
: formatGenerationDurationLabel(message.generationDurationMs);
|
|
22789
23001
|
return {
|
|
22790
23002
|
timeLabel: timestamp.format('LT'),
|
|
22791
|
-
fullLabel: timestamp.format('
|
|
23003
|
+
fullLabel: timestamp.format('L LTS'),
|
|
22792
23004
|
durationLabel,
|
|
22793
23005
|
};
|
|
22794
23006
|
}
|
|
@@ -23002,8 +23214,8 @@ function getChatSaveFormatDefinitions(formatNames) {
|
|
|
23002
23214
|
return CHAT_SAVE_FORMATS.filter((saveFormatDefinition) => formatNames.includes(saveFormatDefinition.formatName));
|
|
23003
23215
|
}
|
|
23004
23216
|
|
|
23005
|
-
var css_248z$5 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:170px;--chat-message-avatar-gap:14px;--chat-message-avatar-size:42px;--chat-message-max-width:min(72%,680px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-bubble-radius:24px;--chat-bubble-shadow:0 12px 34px rgba(15,23,42,.16);--chat-bubble-shadow-hover:0 18px 42px rgba(15,23,42,.2);--chat-bubble-border-color:hsla(0,0%,100%,.34);--chat-bubble-font-size:15px;--chat-bubble-line-height:1.62;--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);display:flex;flex-direction:column;font-family:var(--chat-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)),\"OpenMojiColor\",\"OpenMojiBlack\";height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:💬;height:100%;min-height:0;min-width:0;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:28px 24px 18px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:7px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.55)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:24px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:rgba(71,85,105,.85);display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;line-height:1.4;margin:6px 8px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:rgba(148,163,184,.16);border-radius:999px;color:#475569;display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:rgba(71,85,105,.82);font-size:11.5px;font-weight:600;letter-spacing:.07em;margin:0 0 7px;text-transform:uppercase}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_citationFootnotes__LAWdh,.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,49%,.28);border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_citationFootnotes__LAWdh{align-items:flex-start;flex-direction:column}.Chat-module_citationFootnoteItem__JXTAX{align-items:center;display:inline-flex;gap:8px;min-height:32px}.Chat-module_citationFootnoteNumber__CMmm9{color:color-mix(in srgb,var(--message-text-color,#0f172a) 78%,transparent);font-size:.84rem;font-weight:700;line-height:1;min-width:1.25rem}.Chat-module_toolCallChip__koN18{align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.78) 26%);border:1px solid hsla(0,0%,49%,.3);border:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);border-radius:999px;box-shadow:0 2px 8px rgba(15,23,42,.12);color:inherit;cursor:pointer;display:flex;font-family:OpenMojiColor,OpenMojiBlack,Arial,Helvetica,sans-serif;font-size:.8rem;font-weight:600;gap:8px;padding:5px 11px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.86) 36%);box-shadow:0 4px 12px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:10px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:not(.Chat-module_isMe__nBtaV) .Chat-module_messageText__XgNyQ{border-bottom-left-radius:10px}.Chat-module_ratingStar__rRfqC{color:var(--star-inactive-color,#ccc);cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_ratingStar__rRfqC.Chat-module_active__lbYL-{color:gold}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-md-heading-font-family:var(\n --font-barlow-condensed,\"Barlow Condensed\",var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n );--chat-md-body-font-family:inherit;--chat-md-text-color:var(--message-text-color,#0f172a);--chat-md-link-color:#2563eb;--chat-md-muted-color:var(--message-text-color,#0f172a);--chat-md-inline-code-bg:rgba(15,23,42,.16);--chat-md-inline-code-border:rgba(15,23,42,.2);--chat-md-inline-code-color:var(--message-text-color,#0f172a);--chat-md-blockquote-bg:hsla(0,0%,100%,.2);--chat-md-blockquote-border:rgba(56,189,248,.52);--chat-md-table-bg:hsla(0,0%,100%,.22);--chat-md-table-row-alt-bg:hsla(0,0%,100%,.12);--chat-md-table-head-bg:hsla(0,0%,100%,.3);--chat-md-table-border:hsla(0,0%,100%,.36);--chat-md-citation-bg:hsla(0,0%,100%,.25);--chat-md-citation-color:var(--message-text-color,#0f172a);backdrop-filter:blur(14px);background-color:var(--message-bg-color);border:1px solid var(--chat-bubble-border-color);border-radius:var(--chat-bubble-radius);box-shadow:var(--chat-bubble-shadow),inset 0 1px 0 hsla(0,0%,100%,.16);color:var(--message-text-color);font-family:inherit;font-size:var(--chat-bubble-font-size);hyphens:auto;letter-spacing:.0025em;line-height:var(--chat-bubble-line-height);margin-bottom:6px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);overflow-wrap:anywhere;padding:16px 20px;position:relative;text-align:left;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-bubble-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 72%,hsla(0,0%,100%,.46) 28%);--chat-md-link-color:color-mix(in srgb,var(--message-text-color,#0f172a) 72%,#7dd3fc 28%);--chat-md-muted-color:color-mix(in srgb,var(--message-text-color,#0f172a) 84%,transparent);--chat-md-inline-code-bg:color-mix(in srgb,var(--message-bg-color,#fff) 65%,rgba(15,23,42,.2) 35%);--chat-md-inline-code-border:color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);--chat-md-blockquote-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.86) 22%);--chat-md-blockquote-border:color-mix(in srgb,var(--message-text-color,#0f172a) 34%,#7dd3fc 66%);--chat-md-table-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.9) 22%);--chat-md-table-row-alt-bg:color-mix(in srgb,var(--message-bg-color,#fff) 70%,hsla(0,0%,100%,.82) 30%);--chat-md-table-head-bg:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.94) 36%);--chat-md-table-border:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);--chat-md-citation-bg:color-mix(in srgb,var(--message-bg-color,#fff) 55%,hsla(0,0%,100%,.94) 45%);background:linear-gradient(158deg,color-mix(in srgb,var(--message-bg-color,#fff) 86%,hsla(0,0%,100%,.3) 14%),color-mix(in srgb,var(--message-bg-color,#fff) 95%,rgba(2,6,23,.08) 5%))}}.Chat-module_copyButtonContainer__Rij0U{opacity:0;pointer-events:none;position:absolute;right:12px;top:10px;transform:translateY(-2px);transition:opacity .18s ease,transform .18s ease;z-index:3}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:7px;pointer-events:auto}.Chat-module_copyButton__DcxT5{backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.46);box-shadow:0 2px 8px rgba(15,23,42,.16);display:flex;opacity:1;padding:4px 7px;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_copyButton__DcxT5,.Chat-module_playButton__ZigYL{align-items:center;background:hsla(0,0%,100%,.28);border-radius:10px;cursor:pointer;position:relative}.Chat-module_playButton__ZigYL{border:1px solid hsla(0,0%,100%,.48);color:#111;display:inline-flex;height:34px;justify-content:center;padding:0;transition:all .15s ease;width:34px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid rgba(0,0,0,.3);border-radius:50%;border-top-color:#111;height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:hsla(0,0%,100%,.36);border-color:hsla(0,0%,100%,.7)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{border:1px solid hsla(0,0%,100%,.76);box-shadow:0 5px 14px rgba(15,23,42,.22);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:var(--chat-bubble-shadow-hover),inset 0 1px 0 hsla(0,0%,100%,.16);transform:translateY(-1.5px)}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.28);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 12%,transparent);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.8) 26%);border:1px solid hsla(0,0%,49%,.3);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 16%,transparent);border-radius:999px;color:inherit;display:flex;font-size:12.5px;gap:6px;max-width:200px;padding:7px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 62%,hsla(0,0%,100%,.9) 38%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 24%,transparent);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.36);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.2);background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border:1px solid hsla(0,0%,49%,.9);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);border-radius:999px;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;letter-spacing:.01em;padding:8px 15px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:hsla(0,0%,100%,.3);background:color-mix(in srgb,var(--message-bg-color,#fff) 66%,hsla(0,0%,100%,.9) 34%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 26%,#7dd3fc 74%);box-shadow:0 5px 14px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_feedbackIssueButton__9NrrF{align-items:center;background:transparent;border:0;color:gold;cursor:pointer;display:inline-flex;font-size:16px;justify-content:center;line-height:1;padding:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(20px);background:linear-gradient(180deg,rgba(248,250,252,0),rgba(248,250,252,.9) 44%,rgba(248,250,252,.96));border-top:1px solid rgba(148,163,184,.14);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:20px 24px calc(20px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{background:linear-gradient(180deg,hsla(0,0%,100%,.02),hsla(0,0%,100%,.86) 60%,hsla(0,0%,100%,.95))}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:linear-gradient(180deg,rgba(56,189,248,.04),rgba(14,165,233,.13))}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:hsla(0,0%,49%,.15);border-color:hsla(0,0%,49%,.3)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:#000;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:#6b7280;font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:linear-gradient(150deg,hsla(0,0%,100%,.98),rgba(248,250,252,.94));border:1px solid rgba(148,163,184,.3);border-radius:26px;box-shadow:0 14px 34px rgba(15,23,42,.12),inset 0 1px 0 hsla(0,0%,100%,.9);display:flex;gap:10px;min-width:0;padding:9px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color,#0ea5e9);border-color:color-mix(in srgb,var(--brand-color,#0ea5e9) 58%,rgba(15,23,42,.2) 42%);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px rgba(14,165,233,.16);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px color-mix(in srgb,var(--brand-color,#0ea5e9) 16%,transparent);transform:translateY(-1px)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:#8b9bb1;opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:hsla(0,0%,100%,.95);border:1px solid rgba(15,23,42,.15);border-radius:999px;bottom:86px;box-shadow:0 12px 28px rgba(15,23,42,.18);color:#0f172a;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:#64748b;border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_dictationPanel__kzbyG{background:hsla(0,0%,100%,.9);border:1px solid rgba(148,163,184,.35);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:#0f172a;display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:#475569;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#334155;cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:rgba(239,246,255,.9);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:#0c4a6e;cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:#334155;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:#334155;display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:#475569;font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:#0f172a;flex:1;font-family:inherit;font-size:var(--chat-input-font-size);font-weight:500;height:var(--chat-input-textarea-height);letter-spacing:.002em;line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:#8ba0b8;opacity:.9}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(8px);opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_toolCallClockPanel__h4xZd{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.Chat-module_toolCallClockLabels__KJGxe{text-align:center}.Chat-module_toolCallClockPrimary__StLQ8{color:#0f172a;font-size:2em;font-weight:700}.Chat-module_toolCallClockSecondary__O4WaT{color:#475467}.Chat-module_toolCallClockMeta__aObb7{color:#667085;font-size:.9em;margin-top:5px}.Chat-module_timeoutToolSummary__kPPvu{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.Chat-module_timeoutToolPrimarySentence__pQfLn{color:#0f172a;font-size:15px;font-weight:600;line-height:1.5;margin:0}.Chat-module_timeoutToolSecondarySentence__iH5Uc{color:#475467;font-size:13px;line-height:1.5;margin:6px 0 0}.Chat-module_timeoutToolActionRow__occir{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_timeoutToolActionButton__8yz0R{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:border-color .2s ease,background-color .2s ease}.Chat-module_timeoutToolActionButton__8yz0R:hover{background:#f1f5f9;border-color:#94a3b8}.Chat-module_timeoutToolActionButton__8yz0R:disabled{cursor:default;opacity:.45}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA,.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(18px)!important;background:linear-gradient(140deg,#0f8ef5,#0b6fd0 56%,#0d5fbb)!important;border:1px solid hsla(0,0%,100%,.24)!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(14,116,219,.28),inset 0 1px 0 hsla(0,0%,100%,.2)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-family:inherit!important;font-size:12.5px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;letter-spacing:.02em!important;line-height:1.2!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:11px 16px!important;position:relative!important;touch-action:manipulation!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before,.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.26) 48%,transparent);content:\"\";height:100%;left:-110%;position:absolute;top:0;transition:left .45s ease;width:75%}.Chat-module_chatButton__d9VgA:hover:before,.Chat-module_useTemplateButton__xcJNR:hover:before{left:140%}.Chat-module_chatButton__d9VgA:hover:not(:disabled),.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(140deg,#1a9aff,#0d7de8 56%,#1168c9)!important;box-shadow:0 14px 30px rgba(14,116,219,.34),inset 0 1px 0 hsla(0,0%,100%,.2)!important;transform:translateY(-1.5px)}.Chat-module_chatButton__d9VgA:active,.Chat-module_useTemplateButton__xcJNR:active{transform:translateY(0) scale(.985);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus,.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 10px 24px rgba(14,116,219,.32),0 0 0 3px rgba(56,189,248,.28),inset 0 1px 0 hsla(0,0%,100%,.22)!important;outline:none}.Chat-module_chatButton__d9VgA svg,.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.24));flex-shrink:0;height:16px;opacity:1;transition:transform .2s ease,filter .2s ease;width:16px}.Chat-module_chatButton__d9VgA:hover svg,.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));transform:scale(1.08) translateX(1px)}.Chat-module_chatButtonText__RkGB-{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-,.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 12px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 12px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 8px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}.Chat-module_progressPanel__9M8h9{background:linear-gradient(180deg,rgba(239,246,255,.94),rgba(219,234,254,.86));border:1px solid rgba(59,130,246,.24);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;margin-top:10px;padding:12px 13px}.Chat-module_progressPanelTitle__rBdoY{color:#0f172a;font-size:12px;font-weight:700;line-height:1.3}.Chat-module_progressPanelTitle__rBdoY p{margin:0}.Chat-module_progressPanelSection__F3xUF{display:flex;flex-direction:column;gap:4px}.Chat-module_progressPanelSectionLabel__aTPgr{color:#1d4ed8;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_progressPanelSectionBody__Z7zX0{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelSectionBody__Z7zX0 p{margin:0}.Chat-module_progressPanelList__PHFeP{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.Chat-module_progressPanelListItem__7v9jN{align-items:flex-start;display:grid;gap:8px;grid-template-columns:auto auto 1fr}.Chat-module_progressPanelListBullet__Tzvi7{color:#2563eb;font-size:14px;line-height:1.2;margin-top:2px}.Chat-module_progressPanelItemSpinner__oJ6Az{animation:Chat-module_progressPanelSpinner__pzxP2 .75s linear infinite;border:2px solid rgba(37,99,235,.26);border-radius:9999px;border-top-color:#2563eb;height:11px;margin-top:3px;width:11px}.Chat-module_progressPanelItemCompleted__7bJhG{align-items:center;background:rgba(34,197,94,.16);border-radius:9999px;color:#15803d;display:inline-flex;font-size:9px;font-weight:700;height:11px;justify-content:center;line-height:1;margin-top:2px;width:11px}.Chat-module_progressPanelItemText__tZPIs{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelItemText__tZPIs p{margin:0}@keyframes Chat-module_progressPanelSpinner__pzxP2{to{transform:rotate(1turn)}}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,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Q0FHSixDQUVBLDRDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZUFBZ0IsQ0FDaEIsY0FDSixDQUVBLDZDQU1JLHNFQUFxRCxDQURyRCxvQ0FBeUIsQ0FGekIsb0JBQXFCLENBRXJCLHdCQUF5QixDQUh6QixXQUFZLENBS1osY0FBZSxDQU5mLFVBT0osQ0FFQSwrQ0FFSSxrQkFBbUIsQ0FNbkIsOEJBQW1DLENBRG5DLG9CQUFxQixDQUVyQixhQUFjLENBUmQsbUJBQW9CLENBU3BCLGFBQWMsQ0FFZCxlQUFnQixDQVBoQixXQUFZLENBRlosc0JBQXVCLENBUXZCLGFBQWMsQ0FMZCxjQUFlLENBRmYsVUFTSixDQUVBLDBDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZ0JBQ0osQ0FFQSw0Q0FDSSxRQUNKLENBRUEsbURBQ0ksR0FDSSx1QkFDSixDQUNKLENBRUEsaURBQ0ksR0FDSSx1QkFDSixDQUNKIiwiZmlsZSI6IkNoYXQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlCbGFjayc7XG4gICAgc3JjOlxuICAgICAgICB1cmwoJy9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyAvKiA8LSBUT0RPOiBb8J+QseKAjfCfmoBdIER5bmFtaWNhbGx5IGxvYWQgZnJvbSAvc2VydmVycy50cyAqL1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlDb2xvcic7XG4gICAgc3JjOlxuICAgICAgICB1cmwoJy9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbi5jb3BpZWRUb0NsaXBib2FyZE1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMycHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4uQ2hhdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBmb250LWZhbWlseTogdmFyKC0tY2hhdC1mb250LWZhbWlseSwgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZikpLFxuICAgICAgICAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJztcblxuICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogMTcwcHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcDogMTRweDtcbiAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogNDJweDtcbiAgICAtLWNoYXQtbWVzc2FnZS1tYXgtd2lkdGg6IG1pbihcbiAgICAgICAgNzIlLFxuICAgICAgICA2ODBweCxcbiAgICAgICAgY2FsYygxMDAlIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKSlcbiAgICApO1xuICAgIC0tY2hhdC1idWJibGUtcmFkaXVzOiAyNHB4O1xuICAgIC0tY2hhdC1idWJibGUtc2hhZG93OiAwIDEycHggMzRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIC0tY2hhdC1idWJibGUtc2hhZG93LWhvdmVyOiAwIDE4cHggNDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMik7XG4gICAgLS1jaGF0LWJ1YmJsZS1ib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgLS1jaGF0LWJ1YmJsZS1mb250LXNpemU6IDE1cHg7XG4gICAgLS1jaGF0LWJ1YmJsZS1saW5lLWhlaWdodDogMS42MjtcbiAgICAtLWNoYXQtaW5wdXQtdmlzaWJsZS1saW5lczogMztcbiAgICAtLWNoYXQtaW5wdXQtZm9udC1zaXplOiAxNXB4O1xuICAgIC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodDogMS41O1xuICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEwcHg7XG4gICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteDogMTJweDtcbiAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemU6IDQwcHg7XG4gICAgLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodDogY2FsYyhcbiAgICAgICAgdmFyKC0tY2hhdC1pbnB1dC12aXNpYmxlLWxpbmVzKSAqIHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKSAqIHZhcigtLWNoYXQtaW5wdXQtbGluZS1oZWlnaHQpICtcbiAgICAgICAgICAgICgyICogdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXkpKVxuICAgICk7XG59XG5cbi5jaGF0TWFpbkZsb3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAn8J+fpicgbWluLWNvbnRlbnRcbiAgICAgICAgJ/CfkqwnIDFmclxuICAgICAgICAn8J+TnScgbWluLWNvbnRlbnRcbiAgICAgICAgLyAxZnI7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDM2LCAwLjA2KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLlRhc2tzSW5Qcm9ncmVzcyB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG4gICAgbWFyZ2luOiA4cHggMTZweDtcbn1cblxuLmFjdGlvbnMge1xuICAgIGdyaWQtYXJlYTog8J+SrDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAgIHotaW5kZXg6IDQwO1xuICAgIGFsaWduLXNlbGY6IHNlbGYtc3RhcnQ7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDE2cHggMjBweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLmFjdGlvbnMucG9ydGFsIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5hY3Rpb25zLmxlZnQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1zdGFydDtcbn1cblxuLmFjdGlvbnMucmlnaHQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG59XG5cbi5hY3Rpb25zRmFkZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbn1cblxuLmFjdGlvbnNTY3JvbGxpbmcge1xuICAgIG9wYWNpdHk6IDAuMTU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIExhcmdlIHRhYmxldCBhbmQgc21hbGwgZGVza3RvcCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLmFjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDE0cHggMThweCAwO1xuICAgICAgICBnYXA6IDdweDtcbiAgICB9XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRDaGlsZHJlbiB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG59XG5cbi8qIENoYXQgbWVzc2FnZXMgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDI4cHggMjRweCAxOHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4uaGFzQWN0aW9uc0FuZEZpcnN0TWVzc2FnZUlzTG9uZyB7XG4gICAgcGFkZGluZy10b3A6IDgwcHg7XG59XG5cbi8qIEN1c3RvbSBzY3JvbGxiYXIgc3R5bGluZyAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDdweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjU1KTtcbn1cblxuLyogSW5kaXZpZHVhbCBjaGF0IG1lc3NhZ2UgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VTbGlkZUluIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlU3RhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLWNoYXQtbWVzc2FnZS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZVN0YWNrIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlU3RhY2sgPiAqIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5tZXNzYWdlV2l0aE1hcCB7XG4gICAgLyogbWFya2VyIGNsYXNzIGFwcGxpZWQgdG8gbWFwIG1lc3NhZ2VzIHNvIHRoZXkgY2FuIHN0cmV0Y2ggd2lkZXIuICovXG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLm1lc3NhZ2VXaXRoTWFwIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAgLm1lc3NhZ2VTdGFjayB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IG1pbihcbiAgICAgICAgOTB2dyxcbiAgICAgICAgOTIwcHgsXG4gICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgKTtcbiAgICBtYXgtd2lkdGg6IG1pbihcbiAgICAgICAgOTB2dyxcbiAgICAgICAgOTIwcHgsXG4gICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAgLm1lc3NhZ2VTdGFjayB7XG4gICAgICAgIHdpZHRoOiBtaW4oOTJ2dywgNjQwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbig5MnZ3LCA2NDBweCk7XG4gICAgfVxufVxuXG4ubWVzc2FnZU1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiA2cHggOHB4IDA7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuODUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VNZXRhIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1lc3NhZ2VMaWZlY3ljbGVCYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNik7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5tZXNzYWdlVGltZXN0YW1wIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG4ubWVzc2FnZUR1cmF0aW9uIHtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubWVzc2FnZUxpZmVjeWNsZUVycm9yIHtcbiAgICBtYXJnaW46IDRweCA2cHggMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNiOTFjMWM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbi5wYXJ0aWNpcGFudExhYmVsIHtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogcmdiYSg3MSwgODUsIDEwNSwgMC44Mik7XG4gICAgbWFyZ2luOiAwIDAgN3B4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5wYXJ0aWNpcGFudExhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdlU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4uaXNOb3RDb21wbGV0ZU1lc3NhZ2Uge1xuICAgIC8qL1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgI2ZmMDAwMCAhaW1wb3J0YW50O1xuICAgIC8qKi9cblxuICAgIG9wYWNpdHk6IDAuNztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5Ob25Db21wbGV0ZU1lc3NhZ2VGaWxsZXIge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogRW5oYW5jZWQgbG9hZGluZyBzdGF0ZXMgZm9yIG1lc3NhZ2VzICovXG4uaXNOb3RDb21wbGV0ZU1lc3NhZ2UgLm1lc3NhZ2VUZXh0OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogOHB4O1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IGxvYWRpbmdQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udG9vbENhbGxDaGlwcyxcbi5zb3VyY2VDaXRhdGlvbnMsXG4uY2l0YXRpb25Gb290bm90ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjI4KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5jaXRhdGlvbkZvb3Rub3RlcyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmNpdGF0aW9uRm9vdG5vdGVJdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7XG59XG5cbi5jaXRhdGlvbkZvb3Rub3RlTnVtYmVyIHtcbiAgICBtaW4td2lkdGg6IDEuMjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg0cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDc4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4udG9vbENhbGxDaGlwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiA1cHggMTFweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3NCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCkgMjYlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMjAlLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUNvbG9yJywgJ09wZW5Nb2ppQmxhY2snLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xufVxuXG4udG9vbENhbGxDaGlwOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikgMzYlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpO1xufVxuXG4udG9vbENhbGxDaGlwT25nb2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC44KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4xKTtcbn1cblxuLnRvb2xDYWxsQ2hpcFN0YXR1cyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRlYW1Ub29sQ2FsbCxcbi50cmFuc2l0aXZlVG9vbENhbGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1BZ2VudENoaXAsXG4udHJhbnNpdGl2ZUFnZW50Q2hpcCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi50b29sQ2FsbExhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4udG9vbENhbGxXaXRoRXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDksIDExNSwgMjIsIDAuMTIpO1xufVxuXG4udG9vbENhbGxPcmlnaW4ge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50b29sQ2FsbERldGFpbHMgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4udG9vbENhbGxEYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLnRvb2xDYWxsQ2hpcFNwaW5uZXIge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB0b29sQ2FsbFNwaW5uZXIgMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdG9vbENhbGxTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxvYWRpbmdQdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC44KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMS4yKTtcbiAgICB9XG59XG5cbi8qIFR5cGluZyBpbmRpY2F0b3IgZm9yIEFJIG1lc3NhZ2VzICovXG4udHlwaW5nSW5kaWNhdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGFuaW1hdGlvbjogbWVzc2FnZVNsaWRlSW4gMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi50eXBpbmdJbmRpY2F0b3IgLmF2YXRhciB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbjogMCAxMnB4IDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLyogW+OKl++4j11cbi50eXBpbmdJbmRpY2F0b3IgLmF2YXRhciBpbWcge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWY2ZmI7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xufVxuKi9cblxuLnR5cGluZ0J1YmJsZSB7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWluLWhlaWdodDogMjRweDtcbn1cblxuLnR5cGluZ0RvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnR5cGluZ0RvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzZiNzI4MCAwJSwgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjYpIDEwMCUpO1xuICAgIGFuaW1hdGlvbjogdHlwaW5nQm91bmNlIDEuNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMSkge1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTAuMzJzO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgyKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNnM7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDMpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG5Aa2V5ZnJhbWVzIHR5cGluZ0JvdW5jZSB7XG4gICAgMCUsXG4gICAgODAlLFxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgICA0MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWSgtOHB4KTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlVGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlOm5vdCguaXNNZSkgLm1lc3NhZ2VUZXh0IHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xufVxuXG4ucmF0aW5nU3RhciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuICAgIGNvbG9yOiB2YXIoLS1zdGFyLWluYWN0aXZlLWNvbG9yLCAjY2NjKTtcbn1cblxuLnJhdGluZ1N0YXIuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZDcwMDtcbn1cblxuLyogU2VuZGVyIEF2YXRhciAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogW+OKl++4j11cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hdmF0YXItYmctY29sb3IsICNlZWY2ZmIpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZzpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4qL1xuXG4vKiBNZXNzYWdlIHRleHQgYnViYmxlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lc3NhZ2UtYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhdC1idWJibGUtcmFkaXVzKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiBtaW4odmFyKC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aCksIDEwMCUpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYXQtYnViYmxlLWJvcmRlci1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tY2hhdC1idWJibGUtc2hhZG93KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jaGF0LWJ1YmJsZS1saW5lLWhlaWdodCk7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgaHlwaGVuczogYXV0bztcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBib3gtc2hhZG93IDAuMnMgZWFzZSxcbiAgICAgICAgdHJhbnNmb3JtIDAuMnMgZWFzZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtYnViYmxlLWZvbnQtc2l6ZSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDAyNWVtO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAtLWNoYXQtbWQtaGVhZGluZy1mb250LWZhbWlseTogdmFyKFxuICAgICAgICAtLWZvbnQtYmFybG93LWNvbmRlbnNlZCxcbiAgICAgICAgJ0JhcmxvdyBDb25kZW5zZWQnLFxuICAgICAgICB2YXIoLS1mb250LXBvcHBpbnMsICdQb3BwaW5zJywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmKVxuICAgICk7XG4gICAgLS1jaGF0LW1kLWJvZHktZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgLS1jaGF0LW1kLXRleHQtY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgLS1jaGF0LW1kLWxpbmstY29sb3I6ICMyNTYzZWI7XG4gICAgLS1jaGF0LW1kLW11dGVkLWNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpO1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZzogcmdiYSgxNSwgMjMsIDQyLCAwLjE2KTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyOiByZ2JhKDE1LCAyMywgNDIsIDAuMik7XG4gICAgLS1jaGF0LW1kLWlubGluZS1jb2RlLWNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpO1xuICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgLS1jaGF0LW1kLWJsb2NrcXVvdGUtYm9yZGVyOiByZ2JhKDU2LCAxODksIDI0OCwgMC41Mik7XG4gICAgLS1jaGF0LW1kLXRhYmxlLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgLS1jaGF0LW1kLXRhYmxlLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM2KTtcbiAgICAtLWNoYXQtbWQtY2l0YXRpb24tYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgLS1jaGF0LW1kLWNpdGF0aW9uLWNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpO1xufVxuXG5Ac3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYgNTAlKSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE1OGRlZyxcbiAgICAgICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA4NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAxNCUpLFxuICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDk1JSwgcmdiYSgyLCA2LCAyMywgMC4wOCkgNSUpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzIlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KSAyOCVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLWxpbmstY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDcyJSwgIzdkZDNmYyAyOCUpO1xuICAgICAgICAtLWNoYXQtbWQtbXV0ZWQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDg0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NSUsXG4gICAgICAgICAgICByZ2JhKDE1LCAyMywgNDIsIDAuMikgMzUlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1iZzogY29sb3ItbWl4KFxuICAgICAgICAgICAgaW4gc3JnYixcbiAgICAgICAgICAgIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikgMjIlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMzQlLCAjN2RkM2ZjIDY2JSk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDIyJSk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzAlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSAzMCVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLXRhYmxlLWhlYWQtYmc6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NCUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpIDM2JVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNTUlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSA0NSVcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8qIENvcHkgYnV0dG9uIHN0eWxlcyAqL1xuLmNvcHlCdXR0b25Db250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgei1pbmRleDogMztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2UsIHRyYW5zZm9ybSAwLjE4cyBlYXNlO1xufVxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0OmhvdmVyIC5jb3B5QnV0dG9uQ29udGFpbmVyLFxuLmNvcHlCdXR0b25Db250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLm1lc3NhZ2VDb250cm9sR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLmNvcHlCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cywgYm94LXNoYWRvdyAwLjE1cywgYm9yZGVyIDAuMTVzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLnBsYXlCdXR0b24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40OCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICBjb2xvcjogIzExMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnBsYXlCdXR0b25JY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5wbGF5QnV0dG9uU3Bpbm5lciB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzExMTtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VQbGF5U3Bpbm5lciAwLjlzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnBsYXlCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5cbi5wbGF5QnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdlUGxheVNwaW5uZXIge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uY29waWVkVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDExMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogNnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC45OGVtO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICBvcGFjaXR5OiAwLjk3O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBhbmltYXRpb246IGNvcGllZFRvb2x0aXBGYWRlSW4gMC4ycztcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmNvcGllZFRvb2x0aXBMZWZ0IHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jb3BpZWRUb29sdGlwUmlnaHQge1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBSZW1vdmVkIHJpZ2h0LWFsaWduZWQgb3ZlcnJpZGUgdG8ga2VlcCB0b29sdGlwIHBvc2l0aW9uIHN0YWJsZSAqL1xuXG5Aa2V5ZnJhbWVzIGNvcGllZFRvb2x0aXBGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTc7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmNvcHlCdXR0b246aG92ZXIsXG4uY29weUJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjIyKTtcbn1cblxuLmNvcHlCdXR0b24gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTWFya2Rvd24gcHJpbWl0aXZlcyBhcmUgaW50ZW50aW9uYWxseSBjZW50cmFsaXplZCBpbiBgTWFya2Rvd25Db250ZW50Lm1vZHVsZS5jc3NgLiAqL1xuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQ6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtYnViYmxlLXNoYWRvdy1ob3ZlciksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXB4KTtcbn1cblxuLyogQXR0YWNobWVudHMgc3R5bGVzICovXG4uYXR0YWNobWVudHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yOCk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTIlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5hdHRhY2htZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogN3B4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCkgMjYlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4uYXR0YWNobWVudDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgMzglKTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDI0JSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmF0dGFjaG1lbnRJY29uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uYXR0YWNobWVudE5hbWUge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogTWVzc2FnZSBidXR0b25zIGNvbnRhaW5lciAqL1xuLm1lc3NhZ2VCdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDlweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMzYpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vKiBJbmRpdmlkdWFsIG1lc3NhZ2UgYnV0dG9uICovXG4ubWVzc2FnZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDIyJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjkpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTglLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IHByb2dyZXNzO1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDY2JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDM0JSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyNiUsICM3ZGQzZmMgNzQlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTQpO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpob3ZlcjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDIyJSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxOCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2VCdXR0b246YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2U7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOTIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzMSwgNDEsIDU1LCAwLjk1KTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmFjdGlvbk1lc3NhZ2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1NSwgMC45OCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE3LCAyNCwgMzksIDAuOTgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjMyKTtcbn1cblxuLmFjdGlvbk1lc3NhZ2VCdXR0b246aG92ZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTUsIDY1LCA4MSwgMC45Mik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTUpO1xufVxuXG4vKiBSZW1vdmUgZGVmYXVsdCBtYXJrZG93biBzdHlsZXMgZnJvbSBidXR0b24gY29udGVudCAqL1xuLm1lc3NhZ2VCdXR0b24gcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5tZXNzYWdlQnV0dG9uIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1lc3NhZ2VCdXR0b24gZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogUmF0aW5nIHN5c3RlbSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLThweDtcbiAgICByaWdodDogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAycHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2U6aG92ZXIgLnJhdGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nIHNwYW4ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZzpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5mZWVkYmFja0lzc3VlQnV0dG9uIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmQ3MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qIENoYXQgaW5wdXQgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBncmlkLWFyZWE6IPCfk507XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDIwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE0KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDApIDAlLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOSkgNDQlLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpIDEwMCUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbn1cblxuLkNoYXQuZnVsbFBhZ2VWaXN1YWwgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDYwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAxMDAlKTtcbn1cblxuLyogRmlsZSB1cGxvYWQgZHJhZy1hbmQtZHJvcCBzdHlsZXMgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dC5kcmFnT3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMDQpIDAlLCByZ2JhKDE0LCAxNjUsIDIzMywgMC4xMykgMTAwJSk7XG59XG5cbi8qIEZpbGUgcHJldmlldyBjb250YWluZXIgKi9cbi5maWxlUHJldmlld0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4vKiBJbmRpdmlkdWFsIGZpbGUgcHJldmlldyAqL1xuLmZpbGVQcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uZmlsZVByZXZpZXc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xNSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG59XG5cbi5maWxlSWNvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLmZpbGVJbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmlsZU5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uZmlsZVNpemUge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjEpO1xuICAgIGNvbG9yOiAjZmY0NDQ0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLyogSW5wdXQgY29udGFpbmVyIGZvciB0ZXh0YXJlYSBhbmQgYnV0dG9ucyAqL1xuLmlucHV0Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpIDAlLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTQpIDEwMCUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zKTtcbiAgICBib3JkZXItcmFkaXVzOiAyNnB4O1xuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMTRweCAzNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMiksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmlucHV0Q29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxOHB4IDQycHggcmdiYSgxNSwgMjMsIDQyLCAwLjE2KSxcbiAgICAgICAgMCAwIDAgNHB4IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjE2KTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSkgNTglLCByZ2JhKDE1LCAyMywgNDIsIDAuMikgNDIlKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDE4cHggNDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpLFxuICAgICAgICAwIDAgMCA0cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5pbnB1dENvbnRhaW5lciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOGI5YmIxO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qIEF0dGFjaG1lbnQgYnV0dG9uICovXG4uYXR0YWNobWVudEJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYXR0YWNobWVudEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKiBWb2ljZSBCdXR0b24gKi9cbi52b2ljZUJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udm9pY2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi52b2ljZUJ1dHRvbkFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uOiB2b2ljZVJlY29yZGluZ1B1bHNlIDEuNXMgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbiAgICBib3R0b206IDg2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDAlIC0gNDhweCkpO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHotaW5kZXg6IDI1O1xuICAgIGFuaW1hdGlvbjogc3BlZWNoU3RhdHVzQnViYmxlSW4gMC4ycyBlYXNlLW91dDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogIzY0NzQ4YjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI0MiwgMjQyLCAwLjk3KTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVJlY29yZGluZyAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUHJvY2Vzc2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxMTYsIDE0NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzYsIDI1NCwgMjU1LCAwLjk3KTtcbiAgICBjb2xvcjogIzE1NWU3NTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3NpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZUVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45OCk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZGMyNjI2O1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLmRpY3RhdGlvblBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5kaWN0YXRpb25QYW5lbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblBhbmVsVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLmRpY3RhdGlvblBhbmVsVG9nZ2xlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkludGVyaW1UcmFuc2NyaXB0IHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkpO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICMwYzRhNmU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkVycm9yUGFuZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjIwLCAzOCwgMzgsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45NSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5OTFiMWI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5kaWN0YXRpb25FcnJvckFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uRXJyb3JBY3Rpb25zIGJ1dHRvbixcbi5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyBidXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25QYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvbkxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uVGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDY4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25BY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4IDEycHg7XG59XG5cbi5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbn1cblxuLmRpY3RhdGlvbkZhbGxiYWNrTm90ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuQGtleWZyYW1lcyBzcGVlY2hTdGF0dXNCdWJibGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlRG90UHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlUmVjb3JkaW5nUHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMC40KTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAwLCAwLCAwKTtcbiAgICB9XG59XG5cbi8qIFVwbG9hZCBwcm9ncmVzcyBpbmRpY2F0b3IgKi9cbi51cGxvYWRQcm9ncmVzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzAwODRmZjtcbn1cblxuLnVwbG9hZFByb2dyZXNzQmFyIHtcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51cGxvYWRQcm9ncmVzc0ZpbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDg0ZmYsIHJnYmEoMCwgMTMyLCAyNTUsIDAuOCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IHVwbG9hZFByb2dyZXNzIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdXBsb2FkUHJvZ3Jlc3Mge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG59XG5cbi8qIERyYWcgb3ZlcmxheSAqL1xuLmRyYWdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMCwgMTMyLCAyNTUsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kcmFnT3ZlcmxheUNvbnRlbnQgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXQgaW5wdXQgZmllbGQgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkgdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcmVzaXplOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgLyogRm9jdXMgaXMgaGFuZGxlZCBieSAuaW5wdXRDb250YWluZXIgKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOGJhMGI4O1xuICAgIG9wYWNpdHk6IDAuOTtcbn1cblxuLyogQ2hhdCBzZW5kIGJ1dHRvbiAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddIHtcbiAgICB3aWR0aDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWluLXdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjI1KTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ106aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjM1KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uIGltZyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLyogU2Nyb2xsIHRvIGJvdHRvbSBidXR0b24gKi9cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIHtcbiAgICAvKi9cbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJlZDtcbiAgICAvKiovXG5cbiAgICB6LWluZGV4OiAyMDtcbiAgICBncmlkLWFyZWE6IPCfk507XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIC5zY3JvbGxUb0JvdHRvbVdyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xNTAlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFuaW1hdGlvbjogc2Nyb2xsQnV0dG9uU2xpZGVJbiAwLjNzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIC5zY3JvbGxUb0JvdHRvbSB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAgMCAwIC8gMC41KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuQGtleWZyYW1lcyBzY3JvbGxCdXR0b25TbGlkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMjBweCkgc2NhbGUoMC44KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLnNjcm9sbFRvQm90dG9tQmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgcmlnaHQ6IC04cHg7XG4gICAgbWluLXdpZHRoOiAzMnB4O1xuICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2dyb3VuZDogIzI1NjNlYjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuNCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogUmF0aW5nIG1vZGFsICovXG4ucmF0aW5nTW9kYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBhbmltYXRpb246IG1vZGFsRmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbW9kYWxGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMHB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICB9XG59XG5cbi5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICBhbmltYXRpb246IG1vZGFsU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcblxuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmLCAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJztcbiAgICAvKiA8LSBUT0RPOiBb8J+noF1b8J+OsV0gQmV0dGVyLCBkZWZpbmUgb3RoZXIgZm9udHMgKi9cbn1cblxuQGtleWZyYW1lcyBtb2RhbFNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLnJhdGluZ01vZGFsQ29udGVudCBoMyB7XG4gICAgbWFyZ2luOiAwIDAgMjRweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zdGFycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uc3RhcnMgc3BhbiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5zdGFycyBzcGFuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxNSwgMCwgMC4xKTtcbn1cblxuLnJhdGluZ01vZGFsU3RhciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xufVxuXG4udG9vbENhbGxNb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50b29sQ2FsbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWVmMmZmIDAlLCAjZjVmM2ZmIDQwJSwgI2ZlZmNjOSAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRvb2xDYWxsSWNvbiB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xufVxuXG4udG9vbENhbGxIZWFkZXJNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi50b29sQ2FsbE1vZGFsTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udG9vbENhbGxUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxTdWJ0aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2Nztcbn1cblxuLnRvb2xDYWxsR3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbn1cblxuLnRvb2xDYWxsUGFuZWwge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRvb2xDYWxsUGFuZWxUaXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjI1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnRvb2xDYWxsTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4udG9vbENhbGxJdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi50b29sQ2FsbEl0ZW1MYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjI1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnRvb2xDYWxsSXRlbVZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4udG9vbENhbGxTdW1tYXJ5TWV0YSB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeU1ldGFCYWRnZSB7XG4gICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3OSwgNzAsIDIyOSwgMC4xNSk7XG4gICAgY29sb3I6ICMzMTJlODE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi50b29sQ2FsbEVtcHR5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nQ2FyZCB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNjYmQ1ZTE7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOGZiZmYgMCUsICNmOGZhZmMgMTAwJSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdCYWRnZSB7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTIpO1xuICAgIGNvbG9yOiAjMDM2OWExO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ01lc3NhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvbkxpbmUge1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSwgcmdiYSgyNDEsIDI0NSwgMjQ5LCAxKSwgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICBhbmltYXRpb246IHRvb2xDYWxsUGVuZGluZ1NrZWxldG9uUHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uU2hvcnQge1xuICAgIHdpZHRoOiA2OCU7XG59XG5cbkBrZXlmcmFtZXMgdG9vbENhbGxQZW5kaW5nU2tlbGV0b25QdWxzZSB7XG4gICAgZnJvbSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDAlIDUwJTtcbiAgICB9XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjkpO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdzpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3cgc3Ryb25nIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsSXNzdWVzIHtcbiAgICBwYWRkaW5nOiAwIDMycHggMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsSXNzdWVCYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cblxuLnRvb2xDYWxsSXNzdWVFcnJvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xMik7XG4gICAgY29sb3I6ICNiOTFjMWM7XG59XG5cbi50b29sQ2FsbElzc3VlV2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzQsIDE3OSwgOCwgMC4xNik7XG4gICAgY29sb3I6ICNhMTYyMDc7XG59XG5cbi50b29sQ2FsbE1vZGVGb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDMycHggMjRweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50b29sQ2FsbE1vZGVCdXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi50b29sQ2FsbE1vZGVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTRhM2I4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnRvb2xDYWxsQ2xvY2tQYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi50b29sQ2FsbENsb2NrTGFiZWxzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50b29sQ2FsbENsb2NrUHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsQ2xvY2tTZWNvbmRhcnkge1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4udG9vbENhbGxDbG9ja01ldGEge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgY29sb3I6ICM2NjcwODU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4udGltZW91dFRvb2xTdW1tYXJ5IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4udGltZW91dFRvb2xQcmltYXJ5U2VudGVuY2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udGltZW91dFRvb2xTZWNvbmRhcnlTZW50ZW5jZSB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25Sb3cge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50aW1lb3V0VG9vbEFjdGlvbkJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIGJvcmRlci1jb2xvcjogIzk0YTNiODtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC40NTtcbn1cblxuLm1lbW9yeU1vZGFsSGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyOHB4IDMycHggMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmRmZGZkIDAlLCAjZjZmOWZmIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4ubWVtb3J5TW9kYWxJY29uIHtcbiAgICB3aWR0aDogNTJweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjM2NmYxLCAjYTg1NWY3KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4ubWVtb3J5TW9kYWxIZWFkZXJUZXh0IHtcbiAgICBmbGV4OiAxO1xufVxuXG4ubWVtb3J5TW9kYWxUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ubWVtb3J5TW9kYWxTdWJ0aXRsZSB7XG4gICAgbWFyZ2luOiA0cHggMCAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1lbW9yeU1vZGFsU3RhdHVzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZW1vcnlTdGF0dXNEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZW1vcnlNb2RhbENvbnRlbnQge1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAzMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cblxuLm1lbW9yeU1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbW9yeU1ldGFSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4ubWVtb3J5TWV0YUxhYmVsIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1lbW9yeU1ldGFWYWx1ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLm1lbW9yeVN0b3JlU2VjdGlvbixcbi5tZW1vcnlSZXRyaWV2ZVNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5tZW1vcnlDYXJkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAxOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5tZW1vcnlDYXJkQ29udGVudCB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5tZW1vcnlDYXJkTWV0YSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1lbW9yeVNjb3BlQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjEyKTtcbn1cblxuLm1lbW9yeUxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5tZW1vcnlFbXB0eVN0YXRlIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWYzYzc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZkZTY4YTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGNvbG9yOiAjOTI0MDBlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tZW1vcnlMaXN0Rm9vdGVyIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWVtb3J5U3RhdHVzU3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMTYpO1xuICAgIGNvbG9yOiAjMDQ3ODU3O1xufVxuXG4ubWVtb3J5U3RhdHVzV2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzQsIDE3OSwgOCwgMC4xNik7XG4gICAgY29sb3I6ICNhMTYyMDc7XG59XG5cbi5tZW1vcnlTdGF0dXNFcnJvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7XG4gICAgY29sb3I6ICNiOTFjMWM7XG59XG5cbi5tZW1vcnlTdGF0dXNOZXV0cmFsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSk7XG4gICAgY29sb3I6ICMxZDRlZDg7XG59XG5cbi5zZWFyY2hNb2RhbEhlYWRlciB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDcycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmZGZkO1xufVxuXG4uc2VsZkxlYXJuaW5nTW9kYWxIZWFkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGZhZmMgMCUsICNmZWY5YzMgNDUlLCAjZWNmY2NiIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFyR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXIge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjE4KTtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhckluaXRpYWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uc2VsZkxlYXJuaW5nVGVhY2hlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZkZTY4YSAwJSwgIzg2ZWZhYyAxMDAlKTtcbn1cblxuLnNlbGZMZWFybmluZ0hlYWRlclRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2VsZkxlYXJuaW5nVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnNlbGZMZWFybmluZ01ldGFSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YUNoaXAge1xuICAgIGJhY2tncm91bmQ6ICNlMmU4ZjA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zZWxmTGVhcm5pbmdDb21taXRtZW50cyB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuLnNlbGZMZWFybmluZ0NvbW1pdG1lbnRzTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlbGZMZWFybmluZ0Jvb2tFZGl0b3Ige1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nRW1wdHkge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICByaWdodDogMTZweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLm1vZGFsQ2xvc2VCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICM5NGEzYjg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLnRlYW1Nb2RhbEhlYWRlciB7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRlYW1IZWFkZXJQYXJ0aWNpcGFudHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGVhbUhlYWRlclByb2ZpbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnRlYW1IZWFkZXJQcm9maWxlTGluazpob3ZlciB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50ZWFtSGVhZGVyQXZhdGFyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRlYW1IZWFkZXJOYW1lIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRlYW1IZWFkZXJEaXZpZGVyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnNlYXJjaE1vZGFsSWNvbiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5zZWFyY2hNb2RhbFF1ZXJ5IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMyMDIxMjQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWFyY2hNb2RhbENvbnRlbnQge1xuICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnRlYW1DaGF0Q29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi50ZWFtVG9vbENhbGxTZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4udGVhbVRvb2xDYWxsR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1Ub29sQ2FsbEhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLnRlYW1Ub29sQ2FsbENoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNDbGVhciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzQ2xlYXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG59XG5cbi5zZWFyY2hSZXN1bHRzTGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2VhcmNoUmVzdWx0c1JhdyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4uc2VhcmNoUmVzdWx0SXRlbSB7XG4gICAgbWF4LXdpZHRoOiA2NTBweDtcbn1cblxuLnNlYXJjaFJlc3VsdFVybCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMjAyMTI0O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5zZWFyY2hSZXN1bHRVcmwgYSB7XG4gICAgY29sb3I6ICMyMDIxMjQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2VhcmNoUmVzdWx0VGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCA0cHggMCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSBhIHtcbiAgICBjb2xvcjogIzFhMGRhYjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnNlYXJjaFJlc3VsdFNuaXBwZXQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41ODtcbiAgICBjb2xvcjogIzRkNTE1NjtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5ub1Jlc3VsdHMge1xuICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNzA3NTdhO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRvb2xDYWxsRGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cbi5jaXRhdGlvbkRldGFpbHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG59XG5cbi5jaXRhdGlvblByZXZpZXcge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xufVxuXG4uY2l0YXRpb25JZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjB2aDtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgcCB7XG4gICAgbWFyZ2luOiA4cHggMDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBzdHJvbmcge1xuICAgIGNvbG9yOiAjMzMzO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBhIHtcbiAgICBjb2xvcjogIzAwN2JmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNpdGF0aW9uRXhjZXJwdCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jaXRhdGlvbkV4Y2VycHQgaDQge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICBjb2xvcjogIzMzMztcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLmNpdGF0aW9uSGludCB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLnRvb2xDYWxsRGF0YUNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnRvb2xDYWxsUGF5bG9hZENvbnRhaW5lciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yKSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciAub3ZlcmZsb3ctZ3VhcmQpLFxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yIC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50KSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYyAhaW1wb3J0YW50O1xufVxuXG4udG9vbENhbGxEYXRhIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi50b29sQ2FsbE1vZGFsIC50b29sQ2FsbERhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5yYXRpbmdJbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjA1KTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ucmF0aW5nSW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwODRmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMDgpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5yYXRpbmdJbnB1dFtyZWFkb25seV0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMDEpO1xufVxuXG4ucmF0aW5nQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtaW4td2lkdGg6IDgwcHg7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmZpcnN0LWNoaWxkOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG4gICAgY29sb3I6ICMwYjEyMjA7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA4NGZmIDAlLCAjMDA2NmNjIDEwMCUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwNzFkMSAwJSwgIzAwNTJhMyAxMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZDpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xufVxuXG4uZG93bmxvYWRCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDk5ZmYgMCUsICMwMDc3ZGQgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xufVxuXG4uZG93bmxvYWRCdXR0b24gc3ZnIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIFByaW1hcnkgY2hhdCB0b29sYmFyIGJ1dHRvbnMgKi9cbi5jaGF0QnV0dG9uLFxuLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTFweCAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0MGRlZywgIzBmOGVmNSAwJSwgIzBiNmZkMCA1NiUsICMwZDVmYmIgMTAwJSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMi41cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICB0cmFuc2Zvcm0gMC4ycyBlYXNlLFxuICAgICAgICBib3gtc2hhZG93IDAuMnMgZWFzZSxcbiAgICAgICAgYmFja2dyb3VuZCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDEwcHggMjRweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4yOCksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAxMTBweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b246OmJlZm9yZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMTAlO1xuICAgIHdpZHRoOiA3NSU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpIDQ4JSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjQ1cyBlYXNlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjo6YmVmb3JlLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDE0MCU7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQwZGVnLCAjMWE5YWZmIDAlLCAjMGQ3ZGU4IDU2JSwgIzExNjhjOSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41cHgpO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMTRweCAzMHB4IHJnYmEoMTQsIDExNiwgMjE5LCAwLjM0KSxcbiAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b246YWN0aXZlLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuOTg1KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4uY2hhdEJ1dHRvbjpmb2N1cyxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDEwcHggMjRweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4zMiksXG4gICAgICAgIDAgMCAwIDNweCByZ2JhKDU2LCAxODksIDI0OCwgMC4yOCksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xufVxuXG4uY2hhdEJ1dHRvbiBzdmcsXG4udXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBmaWx0ZXIgMC4ycyBlYXNlO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yNCkpO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciBzdmcsXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpIHRyYW5zbGF0ZVgoMXB4KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjgpKTtcbn1cblxuLmNoYXRCdXR0b25UZXh0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyIC5jaGF0QnV0dG9uVGV4dCxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xufVxuXG4uc2F2ZUJ1dHRvbkNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNhdmVNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG5cbi5zYXZlTWVudUl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMTExO1xufVxuXG4uc2F2ZU1lbnVJdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG4uc2F2ZU1lbnVEaXZpZGVyIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIG1hcmdpbjogNHB4IDA7XG59XG5cbi5jaGF0RmVlZGJhY2tQYW5lbCB7XG4gICAgd2lkdGg6IG1pbigyNjBweCwgMTAwJSk7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVweCk7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMyNTYzZWI7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYyZmY7XG4gICAgY29sb3I6ICM2MzY2ZjE7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSd0cnVlJ10gLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIGJhY2tncm91bmQ6ICNlMGYyZmU7XG4gICAgY29sb3I6ICMwMjg0Yzc7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSdmYWxzZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uY2hhdEZlZWRiYWNrTWV0YSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tMYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5jaGF0RmVlZGJhY2tEZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9yIHtcbiAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckFjdGl2ZSB7XG4gICAgY29sb3I6ICMxNjY1MzQ7XG4gICAgYmFja2dyb3VuZDogI2RjZmNlNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzRkMzk5O1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9ySW5hY3RpdmUge1xuICAgIGNvbG9yOiAjNzEzZjEyO1xuICAgIGJhY2tncm91bmQ6ICNmZWY5YzM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZhY2MxNTtcbn1cblxuLyogUGF1c2UvUmVzdW1lIGJ1dHRvbiB2YXJpYW50IChyZXVzZXMgLmNoYXRCdXR0b24gYmFzZSBzdHlsZXMgZm9yIERSWSkgKi9cbi5wYXVzZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYjM0NyAwJSwgI2ZmOGM0MiAxMDAlKSAhaW1wb3J0YW50OyAvKiBXYXJtIG9yYW5nZSBmb3IgXCJhY3RpdmUvcnVubmluZ1wiICovXG59XG5cbi5wYXVzZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYzA2NyAwJSwgI2ZmOWU1ZiAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2luZyB7XG4gICAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiB3YWl0ICFpbXBvcnRhbnQ7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDsgLyogR3JlZW4gd2hlbiBwYXVzZWQgKHJlYWR5IHRvIHJlc3VtZSkgKi9cbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0ZDM5OSAwJSwgIzA1OTY2OSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAyKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KTtcbn1cblxuLnBhdXNlQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZCBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zdG9wQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZGMyNjI2IDAlLCAjOTkxYjFjIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZWZlZmUgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmODcxNzEgMCUsICNkYzI2MjYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b24gc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uc3RvcEJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgcmdiYSgyNDgsIDExMywgMTEzLCAwLjgpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGJhciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvckJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4xKSAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKSAxMDAlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAxOTcsIDk0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29sb3I6ICMxMGI5ODE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbEljb25QdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBWb2ljZSBjYWxsIHB1bHNlIGFuaW1hdGlvbiAqL1xuLnZvaWNlQ2FsbFB1bHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMTBiOTgxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbFB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdm9pY2VDYWxsSWNvblB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbFB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMS4zKTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgaW4gbWVzc2FnZXMgKi9cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG59XG5cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHN2ZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xufVxuXG4vKiBGZWVkYmFjayBzdGF0dXMgYmFubmVyICovXG4uZmVlZGJhY2tTdGF0dXMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMTRweCAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDMycHggcmdiYSgxNSwgMjMsIDQyLCAwLjM1KTtcbiAgICB6LWluZGV4OiAxMDAwMDsgLyogW0ZpeCB6LWluZGV4XTogRW5zdXJlIGl0J3MgYWJvdmUgdGhlIGhlYWRlciAoei01MCkgYW5kIG90aGVyIFVJIGVsZW1lbnRzICovXG4gICAgYW5pbWF0aW9uOiBmZWVkYmFja1N0YXR1c1NsaWRlSW4gMC4yOHMgZWFzZS1vdXQ7XG4gICAgbWF4LXdpZHRoOiAzNDBweDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mZWVkYmFja1N0YXR1c1N1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSk7XG4gICAgY29sb3I6ICNmOGZhZmM7XG59XG5cbi5mZWVkYmFja1N0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWY0NDQ0IDAlLCAjZGMyNjI2IDEwMCUpO1xuICAgIGNvbG9yOiAjZmVmMmYyO1xufVxuXG5Aa2V5ZnJhbWVzIGZlZWRiYWNrU3RhdHVzU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8qIE1vYmlsZSByZXNwb25zaXZlbmVzcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLkNoYXQge1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDEwMHB4O1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogMzZweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgICAgICA4NSUsXG4gICAgICAgICAgICA1NjBweCxcbiAgICAgICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDEwcHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1mb250LXNpemU6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDE0cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDRweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICB9XG5cbiAgICAvKiBb44qX77iPXVxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgfVxuICAgICovXG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgYm90dG9tOiA3NnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI4cHgpO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxMXB4O1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICB9XG5cbiAgICAuc2Nyb2xsVG9Cb3R0b20ge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHRvcDogY2FsYygxMDAlIC0gMTYwcHgpO1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxDb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLnN0YXJzIHtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLnN0YXJzIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAucmF0aW5nQWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG5cbiAgICAuc2VsZkxlYXJuaW5nTW9kYWxIZWFkZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAuc2VsZkxlYXJuaW5nQXZhdGFyR3JvdXAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01ldGFSb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5DaGF0IHtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogMzJweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgICAgICA5MCUsXG4gICAgICAgICAgICA1MjBweCxcbiAgICAgICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDhweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteTogMTJweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteDogMTZweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplOiA0MHB4O1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMTJweCAwO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIH1cblxuICAgIC8qIFvjipfvuI9dXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICB9XG4gICAgKi9cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyxcbiAgICAuZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE0MHB4KTtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyMHB4O1xuICAgIH1cbn1cblxuLyogUmVkdWNlZCBtb3Rpb24gc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSxcbiAgICAuc2Nyb2xsVG9Cb3R0b20sXG4gICAgLnJhdGluZ01vZGFsLFxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQsXG4gICAgLmZlZWRiYWNrU3RhdHVzIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbixcbiAgICAvKiBb44qX77iPXSAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZywgKi9cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vKiBIaWdoIGNvbnRyYXN0IG1vZGUgc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogM3B4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24ge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxufVxuXG4vKiBFbWFpbCBtb2RhbCBzdHlsZXMgKi9cbi5lbWFpbENvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uZW1haWxNb2RhbEhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmVtYWlsSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uZW1haWxIZWFkZXJMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmVtYWlsTWV0YWRhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uZW1haWxGaWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5lbWFpbEZpZWxkOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbWFpbEZpZWxkIHN0cm9uZyB7XG4gICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5lbWFpbFJlY2lwaWVudHMge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5lbWFpbEJvZHkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5lbWFpbEJvZHkgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZW1haWxCb2R5Q29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHAge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYnJvd3NlclJ1bk1vZGFsSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmYWZjIDAlLCAjZWNmZWZmIDQwJSwgI2VjZmNjYiAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RiZWFmZTtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyU3RhdHVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5icm93c2VyUnVuTWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuV2FybmluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmJiZjI0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmJlYjtcbiAgICBjb2xvcjogIzkyNDAwZTtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZjYTVhNTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gICAgY29sb3I6ICM3ZjFkMWQ7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3RlcHMge1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMgc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjN2YxZDFkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHByZSB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY3ZWQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZDdhYTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4uYnJvd3NlclJ1bkZhbGxiYWNrQ29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG5cbi5icm93c2VyUnVuU3RhdHVzQmFubmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk1KTtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUNhcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUltYWdlLFxuLmJyb3dzZXJSdW5NZWRpYVZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxvZyB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTG9nVGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25MaXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25JdGVtIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblBlbmRpbmcge1xuICAgIG9wYWNpdHk6IDAuODI7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uUnVubmluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkNvbXBsZXRlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjIyKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uRXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGUge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjY2JkNWUxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlUnVubmluZyB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTQpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlQ29tcGxldGUge1xuICAgIGJhY2tncm91bmQ6ICMxMGI5ODE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZUVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25NZXRhIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogNDhweCA0MHB4IDY0cHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE1MGRlZywgcmdiYSgyLCA2LCAyMywgMC45OCksIHJnYmEoMTUsIDIzLCA0MiwgMC45MikpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMzIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNDBweCA4MHB4IHJnYmEoMCwgMCwgMCwgMC4zNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE0NWRlZyxcbiAgICAgICAgICAgIHZhcigtLWFnZW50LWNoYXQtYnJhbmQtY29sb3ItbGlnaHQsICM3ZGQzZmMpLFxuICAgICAgICAgICAgdmFyKC0tYWdlbnQtY2hhdC1icmFuZC1jb2xvciwgIzBlYTVlOSlcbiAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgyLCA2LCAyMywgMC42KSBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGZiZmYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwZjE3MmEgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQ1KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDE1LCAyMywgNDIsIDAuMykgaW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tZXNzYWdlTWV0YSxcbiAgICAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQsXG4gICAgLnNjcm9sbFRvQm90dG9tLFxuICAgIC5mZWVkYmFja1N0YXR1cyxcbiAgICAudm9pY2VDYWxsSW5kaWNhdG9yQmFyLFxuICAgIC52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNvcHlCdXR0b25Db250YWluZXIsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmVtYWlsU3RhdHVzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKipcbiAqIFRPRE86IFvwn4yJXSBEUlkgTWFya2Rvd24gcHJpbWl0aXZlcyBzdHlsaW5nXG4gKi9cbi8qIEltYWdlIHByb21wdCBwcmV2aWV3IHN0eWxlcyAqL1xuLmltYWdlUHJvbXB0IHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uaW1hZ2VQcm9tcHRQcmV2aWV3IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMTE4LCAyNTUsIDAuMDUpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkpO1xufVxuXG4uaW1hZ2VQcm9tcHRJbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1hZ2VQcm9tcHRQbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmltYWdlUHJvbXB0U3Bpbm5lciB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTYzZWI7XG4gICAgYW5pbWF0aW9uOiBpbWFnZVByb21wdFNwaW5uZXIgMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgaW1hZ2VQcm9tcHRTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uaW1hZ2VQcm9tcHRNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5pbWFnZVByb21wdFByb21wdCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMxMTE7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5pbWFnZVByb21wdFN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uaW1hZ2VQcm9tcHRFcnJvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNkYzI2MjY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDM4LCAzOCwgMC4wOCk7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclNwaW5uZXIge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzIyZDNlZTtcbiAgICBhbmltYXRpb246IHJpY2hGZWF0dXJlU3Bpbm5lciAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJDb3B5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMjQpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCksIHJnYmEoMjE5LCAyMzQsIDI1NCwgMC44NikpO1xuICAgIHBhZGRpbmc6IDEycHggMTNweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFRpdGxlIHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsU2VjdGlvbkxhYmVsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxZDRlZDg7XG59XG5cbi5wcm9ncmVzc1BhbmVsU2VjdGlvbkJvZHkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uQm9keSBwIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdEl0ZW0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbExpc3RCdWxsZXQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzI1NjNlYjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtU3Bpbm5lciB7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMjU2M2ViO1xuICAgIGFuaW1hdGlvbjogcHJvZ3Jlc3NQYW5lbFNwaW5uZXIgMC43NXMgbGluZWFyIGluZmluaXRlO1xuICAgIG1hcmdpbi10b3A6IDNweDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtQ29tcGxldGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMXB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMTYpO1xuICAgIGNvbG9yOiAjMTU4MDNkO1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5wcm9ncmVzc1BhbmVsSXRlbVRleHQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtVGV4dCBwIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbkBrZXlmcmFtZXMgcHJvZ3Jlc3NQYW5lbFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcmljaEZlYXR1cmVTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuIl19 */";
|
|
23006
|
-
var styles$5 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","chatMessage":"Chat-module_chatMessage__nmLaZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","messageStack":"Chat-module_messageStack__n0xNL","isMe":"Chat-module_isMe__nBtaV","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","citationFootnotes":"Chat-module_citationFootnotes__LAWdh","citationFootnoteItem":"Chat-module_citationFootnoteItem__JXTAX","citationFootnoteNumber":"Chat-module_citationFootnoteNumber__CMmm9","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","avatar":"Chat-module_avatar__gL6bm","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","active":"Chat-module_active__lbYL-","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","attachmentName":"Chat-module_attachmentName__aMx56","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","feedbackIssueButton":"Chat-module_feedbackIssueButton__9NrrF","chatInput":"Chat-module_chatInput__1Ecan","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlay":"Chat-module_dragOverlay__SEGoS","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","toolCallClockPanel":"Chat-module_toolCallClockPanel__h4xZd","toolCallClockLabels":"Chat-module_toolCallClockLabels__KJGxe","toolCallClockPrimary":"Chat-module_toolCallClockPrimary__StLQ8","toolCallClockSecondary":"Chat-module_toolCallClockSecondary__O4WaT","toolCallClockMeta":"Chat-module_toolCallClockMeta__aObb7","timeoutToolSummary":"Chat-module_timeoutToolSummary__kPPvu","timeoutToolPrimarySentence":"Chat-module_timeoutToolPrimarySentence__pQfLn","timeoutToolSecondarySentence":"Chat-module_timeoutToolSecondarySentence__iH5Uc","timeoutToolActionRow":"Chat-module_timeoutToolActionRow__occir","timeoutToolActionButton":"Chat-module_timeoutToolActionButton__8yz0R","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09","progressPanel":"Chat-module_progressPanel__9M8h9","progressPanelTitle":"Chat-module_progressPanelTitle__rBdoY","progressPanelSection":"Chat-module_progressPanelSection__F3xUF","progressPanelSectionLabel":"Chat-module_progressPanelSectionLabel__aTPgr","progressPanelSectionBody":"Chat-module_progressPanelSectionBody__Z7zX0","progressPanelList":"Chat-module_progressPanelList__PHFeP","progressPanelListItem":"Chat-module_progressPanelListItem__7v9jN","progressPanelListBullet":"Chat-module_progressPanelListBullet__Tzvi7","progressPanelItemSpinner":"Chat-module_progressPanelItemSpinner__oJ6Az","progressPanelSpinner":"Chat-module_progressPanelSpinner__pzxP2","progressPanelItemCompleted":"Chat-module_progressPanelItemCompleted__7bJhG","progressPanelItemText":"Chat-module_progressPanelItemText__tZPIs"};
|
|
23217
|
+
var css_248z$5 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:170px;--chat-message-avatar-gap:14px;--chat-message-avatar-size:42px;--chat-message-max-width:min(72%,680px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-bubble-radius:24px;--chat-bubble-shadow:0 12px 34px rgba(15,23,42,.16);--chat-bubble-shadow-hover:0 18px 42px rgba(15,23,42,.2);--chat-bubble-border-color:hsla(0,0%,100%,.34);--chat-bubble-font-size:15px;--chat-bubble-line-height:1.62;--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);display:flex;flex-direction:column;font-family:var(\n --chat-font-family,var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n ),\"OpenMojiColor\",\"OpenMojiBlack\";height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-max-width:54rem;--chat-article-layout-padding-inline:clamp(16px,4vw,40px)}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:💬;height:100%;min-height:0;min-width:0;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:28px 24px 18px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_articleModeChatMessages__ufofT{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ{margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{justify-content:flex-start}.Chat-module_articleModeChatMessages__ufofT .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:7px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:rgba(148,163,184,.35);border-radius:999px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.55)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:24px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{align-items:stretch;column-gap:0;justify-content:center;margin-bottom:28px;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{align-items:stretch;margin:0 auto;max-width:min(100%,860px);width:min(100%,860px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm.Chat-module_articleModeAgentAvatar__UCKDX{display:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:rgba(71,85,105,.85);display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;line-height:1.4;margin:6px 8px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageMeta__eqCRu{margin-left:0;margin-right:0}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:rgba(148,163,184,.16);border-radius:999px;color:#475569;display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:rgba(71,85,105,.82);font-size:11.5px;font-weight:600;letter-spacing:.07em;margin:0 0 7px;text-transform:uppercase}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{display:none}.Chat-module_citationFootnotes__LAWdh,.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,49%,.28);border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_citationFootnotes__LAWdh{align-items:flex-start;flex-direction:column}.Chat-module_citationFootnoteItem__JXTAX{align-items:center;display:inline-flex;gap:8px;min-height:32px}.Chat-module_citationFootnoteNumber__CMmm9{color:color-mix(in srgb,var(--message-text-color,#0f172a) 78%,transparent);font-size:.84rem;font-weight:700;line-height:1;min-width:1.25rem}.Chat-module_toolCallChip__koN18{align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.78) 26%);border:1px solid hsla(0,0%,49%,.3);border:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);border-radius:999px;box-shadow:0 2px 8px rgba(15,23,42,.12);color:inherit;cursor:pointer;display:flex;font-family:OpenMojiColor,OpenMojiBlack,Arial,Helvetica,sans-serif;font-size:.8rem;font-weight:600;gap:8px;padding:5px 11px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.86) 36%);box-shadow:0 4px 12px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:10px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:not(.Chat-module_isMe__nBtaV) .Chat-module_messageText__XgNyQ{border-bottom-left-radius:10px}.Chat-module_ratingStar__rRfqC{color:var(--star-inactive-color,#ccc);cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_ratingStar__rRfqC.Chat-module_active__lbYL-{color:gold}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-md-heading-font-family:var(\n --font-barlow-condensed,\"Barlow Condensed\",var(--font-poppins,\"Poppins\",system-ui,-apple-system,\"Segoe UI\",sans-serif)\n );--chat-md-body-font-family:inherit;--chat-md-text-color:var(--message-text-color,#0f172a);--chat-md-link-color:#2563eb;--chat-md-muted-color:var(--message-text-color,#0f172a);--chat-md-inline-code-bg:rgba(15,23,42,.16);--chat-md-inline-code-border:rgba(15,23,42,.2);--chat-md-inline-code-color:var(--message-text-color,#0f172a);--chat-md-blockquote-bg:hsla(0,0%,100%,.2);--chat-md-blockquote-border:rgba(56,189,248,.52);--chat-md-table-bg:hsla(0,0%,100%,.22);--chat-md-table-row-alt-bg:hsla(0,0%,100%,.12);--chat-md-table-head-bg:hsla(0,0%,100%,.3);--chat-md-table-border:hsla(0,0%,100%,.36);--chat-md-citation-bg:hsla(0,0%,100%,.25);--chat-md-citation-color:var(--message-text-color,#0f172a);backdrop-filter:blur(14px);background-color:var(--message-bg-color);border:1px solid var(--chat-bubble-border-color);border-radius:var(--chat-bubble-radius);box-shadow:var(--chat-bubble-shadow),inset 0 1px 0 hsla(0,0%,100%,.16);color:var(--message-text-color);font-family:inherit;font-size:var(--chat-bubble-font-size);hyphens:auto;letter-spacing:.0025em;line-height:var(--chat-bubble-line-height);margin-bottom:6px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);overflow-wrap:anywhere;padding:16px 20px;position:relative;text-align:left;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{--chat-md-link-color:#1d4ed8;--chat-md-inline-code-bg:rgba(15,23,42,.08);--chat-md-inline-code-border:rgba(15,23,42,.16);--chat-md-blockquote-bg:rgba(148,163,184,.12);--chat-md-table-bg:rgba(248,250,252,.9);--chat-md-table-row-alt-bg:rgba(226,232,240,.45);--chat-md-table-head-bg:rgba(241,245,249,.92);--chat-md-table-border:rgba(148,163,184,.45);--chat-md-citation-bg:rgba(191,219,254,.24);backdrop-filter:none;background:transparent!important;border:0;border-radius:0;box-shadow:none;font-size:15.5px;line-height:1.75;margin-bottom:8px;min-width:0;padding:2px 0}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-bubble-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 72%,hsla(0,0%,100%,.46) 28%);--chat-md-link-color:color-mix(in srgb,var(--message-text-color,#0f172a) 72%,#7dd3fc 28%);--chat-md-muted-color:color-mix(in srgb,var(--message-text-color,#0f172a) 84%,transparent);--chat-md-inline-code-bg:color-mix(in srgb,var(--message-bg-color,#fff) 65%,rgba(15,23,42,.2) 35%);--chat-md-inline-code-border:color-mix(in srgb,var(--message-text-color,#0f172a) 20%,transparent);--chat-md-blockquote-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.86) 22%);--chat-md-blockquote-border:color-mix(in srgb,var(--message-text-color,#0f172a) 34%,#7dd3fc 66%);--chat-md-table-bg:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.9) 22%);--chat-md-table-row-alt-bg:color-mix(in srgb,var(--message-bg-color,#fff) 70%,hsla(0,0%,100%,.82) 30%);--chat-md-table-head-bg:color-mix(in srgb,var(--message-bg-color,#fff) 64%,hsla(0,0%,100%,.94) 36%);--chat-md-table-border:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);--chat-md-citation-bg:color-mix(in srgb,var(--message-bg-color,#fff) 55%,hsla(0,0%,100%,.94) 45%);background:linear-gradient(158deg,color-mix(in srgb,var(--message-bg-color,#fff) 86%,hsla(0,0%,100%,.3) 14%),color-mix(in srgb,var(--message-bg-color,#fff) 95%,rgba(2,6,23,.08) 5%))}}.Chat-module_copyButtonContainer__Rij0U{opacity:0;pointer-events:none;position:absolute;right:12px;top:10px;transform:translateY(-2px);transition:opacity .18s ease,transform .18s ease;z-index:3}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.Chat-module_articleModeMessageActions__h2qaG{align-items:center;border-top:1px solid color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:flex-start;margin-top:14px;padding-top:12px}.Chat-module_articleModeMessageControls__hncCw{opacity:1;pointer-events:auto;position:static;right:auto;top:auto;transform:none;z-index:auto}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:7px;pointer-events:auto}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL{background:#f8fafc;border-color:rgba(148,163,184,.65);box-shadow:none;color:#0f172a}.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:focus,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_copyButton__DcxT5:hover,.Chat-module_articleModeMessageActions__h2qaG .Chat-module_playButton__ZigYL:hover:not(:disabled){background:#fff;border-color:rgba(100,116,139,.82);box-shadow:0 2px 8px rgba(15,23,42,.12)}.Chat-module_copyButton__DcxT5{backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.46);box-shadow:0 2px 8px rgba(15,23,42,.16);display:flex;opacity:1;padding:4px 7px;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_copyButton__DcxT5,.Chat-module_playButton__ZigYL{align-items:center;background:hsla(0,0%,100%,.28);border-radius:10px;cursor:pointer;position:relative}.Chat-module_playButton__ZigYL{border:1px solid hsla(0,0%,100%,.48);color:#111;display:inline-flex;height:34px;justify-content:center;padding:0;transition:all .15s ease;width:34px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid rgba(0,0,0,.3);border-radius:50%;border-top-color:#111;height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:hsla(0,0%,100%,.36);border-color:hsla(0,0%,100%,.7)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{border:1px solid hsla(0,0%,100%,.76);box-shadow:0 5px 14px rgba(15,23,42,.22);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:var(--chat-bubble-shadow-hover),inset 0 1px 0 hsla(0,0%,100%,.16);transform:translateY(-1.5px)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP:hover{box-shadow:none;transform:none}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.28);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 12%,transparent);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.26);background:color-mix(in srgb,var(--message-bg-color,#fff) 74%,hsla(0,0%,100%,.8) 26%);border:1px solid hsla(0,0%,49%,.3);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 16%,transparent);border-radius:999px;color:inherit;display:flex;font-size:12.5px;gap:6px;max-width:200px;padding:7px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.34);background:color-mix(in srgb,var(--message-bg-color,#fff) 62%,hsla(0,0%,100%,.9) 38%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 24%,transparent);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.36);border-top-color:color-mix(in srgb,var(--message-text-color,#0f172a) 14%,transparent);display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(8px);background:hsla(0,0%,100%,.2);background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border:1px solid hsla(0,0%,49%,.9);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent);border-radius:999px;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:600;letter-spacing:.01em;padding:8px 15px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:hsla(0,0%,100%,.3);background:color-mix(in srgb,var(--message-bg-color,#fff) 66%,hsla(0,0%,100%,.9) 34%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 26%,#7dd3fc 74%);box-shadow:0 5px 14px rgba(15,23,42,.14);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:color-mix(in srgb,var(--message-bg-color,#fff) 78%,hsla(0,0%,100%,.8) 22%);border-color:color-mix(in srgb,var(--message-text-color,#0f172a) 18%,transparent)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm{backdrop-filter:none;background:rgba(248,250,252,.9);border:1px solid rgba(148,163,184,.5);border-radius:999px;bottom:auto;min-width:0;opacity:1;padding:4px 8px;position:static;right:auto;transform:none;z-index:auto}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M.Chat-module_articleModeRating__dwZqm:hover{background:rgba(241,245,249,.94);border-color:rgba(100,116,139,.62);box-shadow:none;padding:4px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_feedbackIssueButton__9NrrF{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font-family:OpenMojiBlack,Noto Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:16px;justify-content:center;line-height:1;padding:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(20px);background:linear-gradient(180deg,rgba(248,250,252,0),rgba(248,250,252,.9) 44%,rgba(248,250,252,.96));border-top:1px solid rgba(148,163,184,.14);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:20px 24px calc(20px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_articleModeChatInput__zBTV4{padding-left:var(--chat-article-layout-padding-inline);padding-right:var(--chat-article-layout-padding-inline)}.Chat-module_articleModeChatInput__zBTV4>:not(.Chat-module_speechStatusBubble__qBBWI):not(.Chat-module_dragOverlay__SEGoS){margin-left:auto;margin-right:auto;max-width:100%;width:min(var(--chat-article-layout-max-width),100%)}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{background:linear-gradient(180deg,hsla(0,0%,100%,.02),hsla(0,0%,100%,.86) 60%,hsla(0,0%,100%,.95))}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:linear-gradient(180deg,rgba(56,189,248,.04),rgba(14,165,233,.13))}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:hsla(0,0%,49%,.15);border-color:hsla(0,0%,49%,.3)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:#000;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:#6b7280;font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:linear-gradient(150deg,hsla(0,0%,100%,.98),rgba(248,250,252,.94));border:1px solid rgba(148,163,184,.3);border-radius:26px;box-shadow:0 14px 34px rgba(15,23,42,.12),inset 0 1px 0 hsla(0,0%,100%,.9);display:flex;gap:10px;min-width:0;padding:9px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color,#0ea5e9);border-color:color-mix(in srgb,var(--brand-color,#0ea5e9) 58%,rgba(15,23,42,.2) 42%);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px rgba(14,165,233,.16);box-shadow:0 18px 42px rgba(15,23,42,.16),0 0 0 4px color-mix(in srgb,var(--brand-color,#0ea5e9) 16%,transparent);transform:translateY(-1px)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:#8b9bb1;opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:hsla(0,0%,100%,.95);border:1px solid rgba(15,23,42,.15);border-radius:999px;bottom:86px;box-shadow:0 12px 28px rgba(15,23,42,.18);color:#0f172a;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:#64748b;border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_dictationPanel__kzbyG{background:hsla(0,0%,100%,.9);border:1px solid rgba(148,163,184,.35);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:#0f172a;display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:#475569;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#334155;cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:rgba(239,246,255,.9);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:#0c4a6e;cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:#334155;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:#334155;display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:#475569;font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:#0f172a;flex:1;font-family:inherit;font-size:var(--chat-input-font-size);font-weight:500;height:var(--chat-input-textarea-height);letter-spacing:.002em;line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:#8ba0b8;opacity:.9}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(8px);opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_toolCallClockPanel__h4xZd{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.Chat-module_toolCallClockLabels__KJGxe{text-align:center}.Chat-module_toolCallClockPrimary__StLQ8{color:#0f172a;font-size:2em;font-weight:700}.Chat-module_toolCallClockSecondary__O4WaT{color:#475467}.Chat-module_toolCallClockMeta__aObb7{color:#667085;font-size:.9em;margin-top:5px}.Chat-module_timeoutToolSummary__kPPvu{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.Chat-module_timeoutToolPrimarySentence__pQfLn{color:#0f172a;font-size:15px;font-weight:600;line-height:1.5;margin:0}.Chat-module_timeoutToolSecondarySentence__iH5Uc{color:#475467;font-size:13px;line-height:1.5;margin:6px 0 0}.Chat-module_timeoutToolActionRow__occir{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_timeoutToolActionButton__8yz0R{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:border-color .2s ease,background-color .2s ease}.Chat-module_timeoutToolActionButton__8yz0R:hover{background:#f1f5f9;border-color:#94a3b8}.Chat-module_timeoutToolActionButton__8yz0R:disabled{cursor:default;opacity:.45}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA,.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(18px)!important;background:linear-gradient(140deg,#0f8ef5,#0b6fd0 56%,#0d5fbb)!important;border:1px solid hsla(0,0%,100%,.24)!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(14,116,219,.28),inset 0 1px 0 hsla(0,0%,100%,.2)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-family:inherit!important;font-size:12.5px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;letter-spacing:.02em!important;line-height:1.2!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:11px 16px!important;position:relative!important;touch-action:manipulation!important;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before,.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.26) 48%,transparent);content:\"\";height:100%;left:-110%;position:absolute;top:0;transition:left .45s ease;width:75%}.Chat-module_chatButton__d9VgA:hover:before,.Chat-module_useTemplateButton__xcJNR:hover:before{left:140%}.Chat-module_chatButton__d9VgA:hover:not(:disabled),.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(140deg,#1a9aff,#0d7de8 56%,#1168c9)!important;box-shadow:0 14px 30px rgba(14,116,219,.34),inset 0 1px 0 hsla(0,0%,100%,.2)!important;transform:translateY(-1.5px)}.Chat-module_chatButton__d9VgA:active,.Chat-module_useTemplateButton__xcJNR:active{transform:translateY(0) scale(.985);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus,.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 10px 24px rgba(14,116,219,.32),0 0 0 3px rgba(56,189,248,.28),inset 0 1px 0 hsla(0,0%,100%,.22)!important;outline:none}.Chat-module_chatButton__d9VgA svg,.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.24));flex-shrink:0;height:16px;opacity:1;transition:transform .2s ease,filter .2s ease;width:16px}.Chat-module_chatButton__d9VgA:hover svg,.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));transform:scale(1.08) translateX(1px)}.Chat-module_chatButtonText__RkGB-{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-,.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_constrainedArticleVisual__0axxM{--chat-article-layout-padding-inline:clamp(24px,6vw,36px)}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7{margin-bottom:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_articleModeAgentMessage__Y79L7 .Chat-module_messageStack__n0xNL{margin:0;max-width:100%;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ.Chat-module_articleModeAgentMessageText__vBlIP{border-radius:0;font-size:15px;line-height:1.68;padding:2px 0}.Chat-module_articleModeMessageActions__h2qaG{gap:8px;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 20px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}.Chat-module_progressPanel__9M8h9{background:linear-gradient(180deg,rgba(239,246,255,.94),rgba(219,234,254,.86));border:1px solid rgba(59,130,246,.24);border-radius:16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;margin-top:10px;padding:12px 13px}.Chat-module_progressPanelTitle__rBdoY{color:#0f172a;font-size:12px;font-weight:700;line-height:1.3}.Chat-module_progressPanelTitle__rBdoY p{margin:0}.Chat-module_progressPanelSection__F3xUF{display:flex;flex-direction:column;gap:4px}.Chat-module_progressPanelSectionLabel__aTPgr{color:#1d4ed8;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_progressPanelSectionBody__Z7zX0{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelSectionBody__Z7zX0 p{margin:0}.Chat-module_progressPanelList__PHFeP{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.Chat-module_progressPanelListItem__7v9jN{align-items:flex-start;display:grid;gap:8px;grid-template-columns:auto auto 1fr}.Chat-module_progressPanelListBullet__Tzvi7{color:#2563eb;font-size:14px;line-height:1.2;margin-top:2px}.Chat-module_progressPanelItemSpinner__oJ6Az{animation:Chat-module_progressPanelSpinner__pzxP2 .75s linear infinite;border:2px solid rgba(37,99,235,.26);border-radius:9999px;border-top-color:#2563eb;height:11px;margin-top:3px;width:11px}.Chat-module_progressPanelItemCompleted__7bJhG{align-items:center;background:rgba(34,197,94,.16);border-radius:9999px;color:#15803d;display:inline-flex;font-size:9px;font-weight:700;height:11px;justify-content:center;line-height:1;margin-top:2px;width:11px}.Chat-module_progressPanelItemText__tZPIs{color:#0f172a;font-size:12px;line-height:1.35}.Chat-module_progressPanelItemText__tZPIs p{margin:0}@keyframes Chat-module_progressPanelSpinner__pzxP2{to{transform:rotate(1turn)}}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,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RixDQUR6RixxQ0FBMEMsQ0FEMUMsa0JBQW1CLENBSW5CLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFBUyxDQVBULGtCQUFtQixDQURuQixlQUFnQixDQUtoQixpQkFJSixDQUVBLHVDQUdJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFBZ0IsQ0FFaEIsZUFDSixDQUVBLHlDQUNJLFFBQ0osQ0FFQSx5Q0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSw4Q0FLSSxhQUFjLENBSmQsY0FBZSxDQUdmLGVBQWdCLENBRmhCLG9CQUFzQixDQUN0Qix3QkFHSixDQUVBLDZDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZ0JBQ0osQ0FFQSwrQ0FDSSxRQUNKLENBRUEsc0NBSUksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUFRLENBTFIsZUFBZ0IsQ0FDaEIsUUFBUyxDQUNULFNBSUosQ0FFQSwwQ0FHSSxzQkFBdUIsQ0FGdkIsWUFBYSxDQUdiLE9BQVEsQ0FGUixtQ0FHSixDQUVBLDRDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZUFBZ0IsQ0FDaEIsY0FDSixDQUVBLDZDQU1JLHNFQUFxRCxDQURyRCxvQ0FBeUIsQ0FGekIsb0JBQXFCLENBRXJCLHdCQUF5QixDQUh6QixXQUFZLENBS1osY0FBZSxDQU5mLFVBT0osQ0FFQSwrQ0FFSSxrQkFBbUIsQ0FNbkIsOEJBQW1DLENBRG5DLG9CQUFxQixDQUVyQixhQUFjLENBUmQsbUJBQW9CLENBU3BCLGFBQWMsQ0FFZCxlQUFnQixDQVBoQixXQUFZLENBRlosc0JBQXVCLENBUXZCLGFBQWMsQ0FMZCxjQUFlLENBRmYsVUFTSixDQUVBLDBDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZ0JBQ0osQ0FFQSw0Q0FDSSxRQUNKLENBRUEsbURBQ0ksR0FDSSx1QkFDSixDQUNKLENBRUEsaURBQ0ksR0FDSSx1QkFDSixDQUNKIiwiZmlsZSI6IkNoYXQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlCbGFjayc7XG4gICAgc3JjOiB1cmwoJy9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyAvKiA8LSBUT0RPOiBb8J+QseKAjfCfmoBdIER5bmFtaWNhbGx5IGxvYWQgZnJvbSAvc2VydmVycy50cyAqL1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlDb2xvcic7XG4gICAgc3JjOiB1cmwoJy9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbi5jb3BpZWRUb0NsaXBib2FyZE1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMycHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4uQ2hhdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBmb250LWZhbWlseTogdmFyKFxuICAgICAgICAgICAgLS1jaGF0LWZvbnQtZmFtaWx5LFxuICAgICAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZilcbiAgICAgICAgKSxcbiAgICAgICAgJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjayc7XG5cbiAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDE3MHB4O1xuICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDE0cHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDQycHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgIDcyJSxcbiAgICAgICAgNjgwcHgsXG4gICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgKTtcbiAgICAtLWNoYXQtYnViYmxlLXJhZGl1czogMjRweDtcbiAgICAtLWNoYXQtYnViYmxlLXNoYWRvdzogMCAxMnB4IDM0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE2KTtcbiAgICAtLWNoYXQtYnViYmxlLXNoYWRvdy1ob3ZlcjogMCAxOHB4IDQycHggcmdiYSgxNSwgMjMsIDQyLCAwLjIpO1xuICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpO1xuICAgIC0tY2hhdC1idWJibGUtZm9udC1zaXplOiAxNXB4O1xuICAgIC0tY2hhdC1idWJibGUtbGluZS1oZWlnaHQ6IDEuNjI7XG4gICAgLS1jaGF0LWlucHV0LXZpc2libGUtbGluZXM6IDM7XG4gICAgLS1jaGF0LWlucHV0LWZvbnQtc2l6ZTogMTVweDtcbiAgICAtLWNoYXQtaW5wdXQtbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy15OiAxMHB4O1xuICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDEycHg7XG4gICAgLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplOiA0MHB4O1xuICAgIC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgIHZhcigtLWNoYXQtaW5wdXQtdmlzaWJsZS1saW5lcykgKiB2YXIoLS1jaGF0LWlucHV0LWZvbnQtc2l6ZSkgKiB2YXIoLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0KSArXG4gICAgICAgICAgICAoMiAqIHZhcigtLWNoYXQtaW5wdXQtcGFkZGluZy15KSlcbiAgICApO1xufVxuXG4uY29uc3RyYWluZWRBcnRpY2xlVmlzdWFsIHtcbiAgICAtLWNoYXQtYXJ0aWNsZS1sYXlvdXQtbWF4LXdpZHRoOiA1NHJlbTtcbiAgICAtLWNoYXQtYXJ0aWNsZS1sYXlvdXQtcGFkZGluZy1pbmxpbmU6IGNsYW1wKDE2cHgsIDR2dywgNDBweCk7XG59XG5cbi5jaGF0TWFpbkZsb3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAn8J+fpicgbWluLWNvbnRlbnRcbiAgICAgICAgJ/CfkqwnIDFmclxuICAgICAgICAn8J+TnScgbWluLWNvbnRlbnRcbiAgICAgICAgLyAxZnI7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDM2LCAwLjA2KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLlRhc2tzSW5Qcm9ncmVzcyB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG4gICAgbWFyZ2luOiA4cHggMTZweDtcbn1cblxuLmFjdGlvbnMge1xuICAgIGdyaWQtYXJlYTog8J+SrDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAgIHotaW5kZXg6IDQwO1xuICAgIGFsaWduLXNlbGY6IHNlbGYtc3RhcnQ7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDE2cHggMjBweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLmFjdGlvbnMucG9ydGFsIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5hY3Rpb25zLmxlZnQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1zdGFydDtcbn1cblxuLmFjdGlvbnMucmlnaHQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG59XG5cbi5hY3Rpb25zRmFkZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbn1cblxuLmFjdGlvbnNTY3JvbGxpbmcge1xuICAgIG9wYWNpdHk6IDAuMTU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIExhcmdlIHRhYmxldCBhbmQgc21hbGwgZGVza3RvcCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLmFjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDE0cHggMThweCAwO1xuICAgICAgICBnYXA6IDdweDtcbiAgICB9XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRDaGlsZHJlbiB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG59XG5cbi8qIENoYXQgbWVzc2FnZXMgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDI4cHggMjRweCAxOHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0TWVzc2FnZXMge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyAuY2hhdE1lc3NhZ2Uge1xuICAgIHdpZHRoOiBtaW4odmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1tYXgtd2lkdGgpLCAxMDAlKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0TWVzc2FnZXMgLmNoYXRNZXNzYWdlLmFydGljbGVNb2RlQWdlbnRNZXNzYWdlIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRNZXNzYWdlcyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UgLm1lc3NhZ2VTdGFjayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmhhc0FjdGlvbnNBbmRGaXJzdE1lc3NhZ2VJc0xvbmcge1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xufVxuXG4vKiBDdXN0b20gc2Nyb2xsYmFyIHN0eWxpbmcgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA3cHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTAwLCAxMTYsIDEzOSwgMC41NSk7XG59XG5cbi8qIEluZGl2aWR1YWwgY2hhdCBtZXNzYWdlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlU2xpZGVJbiAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VTdGFjayB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrID4gKiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSB7XG4gICAgY29sdW1uLWdhcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICB3aWR0aDogbWluKDEwMCUsIDg2MHB4KTtcbiAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCA4NjBweCk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIuYXJ0aWNsZU1vZGVBZ2VudEF2YXRhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lc3NhZ2VXaXRoTWFwIHtcbiAgICAvKiBtYXJrZXIgY2xhc3MgYXBwbGllZCB0byBtYXAgbWVzc2FnZXMgc28gdGhleSBjYW4gc3RyZXRjaCB3aWRlci4gKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCAubWVzc2FnZVN0YWNrIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogbWluKDkwdncsIDkyMHB4LCBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKSk7XG4gICAgbWF4LXdpZHRoOiBtaW4oOTB2dywgOTIwcHgsIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAgLm1lc3NhZ2VTdGFjayB7XG4gICAgICAgIHdpZHRoOiBtaW4oOTJ2dywgNjQwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbig5MnZ3LCA2NDBweCk7XG4gICAgfVxufVxuXG4ubWVzc2FnZU1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiA2cHggOHB4IDA7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuODUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VNZXRhIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UgLm1lc3NhZ2VNZXRhIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5tZXNzYWdlTGlmZWN5Y2xlQmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuLm1lc3NhZ2VEdXJhdGlvbiB7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cblxuLm1lc3NhZ2VMaWZlY3ljbGVFcnJvciB7XG4gICAgbWFyZ2luOiA0cHggNnB4IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjYjkxYzFjO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4ucGFydGljaXBhbnRMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wN2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuODIpO1xuICAgIG1hcmdpbjogMCAwIDdweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgbWVzc2FnZVNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmlzTm90Q29tcGxldGVNZXNzYWdlIHtcbiAgICAvKi9cbiAgICBvdXRsaW5lOiAxcHggZG90dGVkICNmZjAwMDAgIWltcG9ydGFudDtcbiAgICAvKiovXG5cbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uTm9uQ29tcGxldGVNZXNzYWdlRmlsbGVyIHtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEVuaGFuY2VkIGxvYWRpbmcgc3RhdGVzIGZvciBtZXNzYWdlcyAqL1xuLmlzTm90Q29tcGxldGVNZXNzYWdlIC5tZXNzYWdlVGV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDhweDtcbiAgICByaWdodDogMTJweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNiksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nUHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UuaXNOb3RDb21wbGV0ZU1lc3NhZ2UgLm1lc3NhZ2VUZXh0OjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRvb2xDYWxsQ2hpcHMsXG4uc291cmNlQ2l0YXRpb25zLFxuLmNpdGF0aW9uRm9vdG5vdGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yOCk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY2l0YXRpb25Gb290bm90ZXMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5jaXRhdGlvbkZvb3Rub3RlSXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xufVxuXG4uY2l0YXRpb25Gb290bm90ZU51bWJlciB7XG4gICAgbWluLXdpZHRoOiAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSA3OCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnRvb2xDYWxsQ2hpcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNXB4IDExcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzgpIDI2JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLnRvb2xDYWxsQ2hpcDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjQlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDM2JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNSwgMjMsIDQyLCAwLjE0KTtcbn1cblxuLnRvb2xDYWxsQ2hpcE9uZ29pbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMSk7XG59XG5cbi50b29sQ2FsbENoaXBTdGF0dXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50ZWFtVG9vbENhbGwsXG4udHJhbnNpdGl2ZVRvb2xDYWxsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50ZWFtQWdlbnRDaGlwLFxuLnRyYW5zaXRpdmVBZ2VudENoaXAge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udG9vbENhbGxMYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnRvb2xDYWxsV2l0aEVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEyKTtcbn1cblxuLnRvb2xDYWxsT3JpZ2luIHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRvb2xDYWxsRGV0YWlscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLnRvb2xDYWxsRGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi50b29sQ2FsbENoaXBTcGlubmVyIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogdG9vbENhbGxTcGlubmVyIDAuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHRvb2xDYWxsU3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsb2FkaW5nUHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuOCk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEuMik7XG4gICAgfVxufVxuXG4vKiBUeXBpbmcgaW5kaWNhdG9yIGZvciBBSSBtZXNzYWdlcyAqL1xuLnR5cGluZ0luZGljYXRvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VTbGlkZUluIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4udHlwaW5nSW5kaWNhdG9yIC5hdmF0YXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW46IDAgMTJweCA0cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIFvjipfvuI9dXG4udHlwaW5nSW5kaWNhdG9yIC5hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmNmZiO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbn1cbiovXG5cbi50eXBpbmdCdWJibGUge1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi50eXBpbmdEb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50eXBpbmdEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2YjcyODAgMCUsIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC42KSAxMDAlKTtcbiAgICBhbmltYXRpb246IHR5cGluZ0JvdW5jZSAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDEpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjMycztcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMikge1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTAuMTZzO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgzKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuQGtleWZyYW1lcyB0eXBpbmdCb3VuY2Uge1xuICAgIDAlLFxuICAgIDgwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gICAgNDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpIHRyYW5zbGF0ZVkoLThweCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZVRleHQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZTpub3QoLmlzTWUpIC5tZXNzYWdlVGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcbn1cblxuLnJhdGluZ1N0YXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICBjb2xvcjogdmFyKC0tc3Rhci1pbmFjdGl2ZS1jb2xvciwgI2NjYyk7XG59XG5cbi5yYXRpbmdTdGFyLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmQ3MDA7XG59XG5cbi8qIFNlbmRlciBBdmF0YXIgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKTtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIFvjipfvuI9dXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYXZhdGFyLWJnLWNvbG9yLCAjZWVmNmZiKTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWc6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuKi9cblxuLyogTWVzc2FnZSB0ZXh0IGJ1YmJsZSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYXQtYnViYmxlLXJhZGl1cyk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogbWluKHZhcigtLWNoYXQtbWVzc2FnZS1taW4td2lkdGgpLCAxMDAlKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGF0LWJ1YmJsZS1ib3JkZXItY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtYnViYmxlLXNoYWRvdyksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tY2hhdC1idWJibGUtbGluZS1oZWlnaHQpO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIGh5cGhlbnM6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGF0LWJ1YmJsZS1mb250LXNpemUpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMjVlbTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgLS1jaGF0LW1kLWhlYWRpbmctZm9udC1mYW1pbHk6IHZhcihcbiAgICAgICAgLS1mb250LWJhcmxvdy1jb25kZW5zZWQsXG4gICAgICAgICdCYXJsb3cgQ29uZGVuc2VkJyxcbiAgICAgICAgdmFyKC0tZm9udC1wb3BwaW5zLCAnUG9wcGlucycsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZilcbiAgICApO1xuICAgIC0tY2hhdC1tZC1ib2R5LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIC0tY2hhdC1tZC10ZXh0LWNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpO1xuICAgIC0tY2hhdC1tZC1saW5rLWNvbG9yOiAjMjU2M2ViO1xuICAgIC0tY2hhdC1tZC1tdXRlZC1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IHJnYmEoMTUsIDIzLCA0MiwgMC4xNik7XG4gICAgLS1jaGF0LW1kLWlubGluZS1jb2RlLWJvcmRlcjogcmdiYSgxNSwgMjMsIDQyLCAwLjIpO1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJvcmRlcjogcmdiYSg1NiwgMTg5LCAyNDgsIDAuNTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAtLWNoYXQtbWQtdGFibGUtaGVhZC1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDJweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIGZvbnQtc2l6ZTogMTUuNXB4O1xuICAgIC0tY2hhdC1tZC1saW5rLWNvbG9yOiAjMWQ0ZWQ4O1xuICAgIC0tY2hhdC1tZC1pbmxpbmUtY29kZS1iZzogcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyOiByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIC0tY2hhdC1tZC1ibG9ja3F1b3RlLWJnOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1iZzogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1yb3ctYWx0LWJnOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNDUpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnOiByZ2JhKDI0MSwgMjQ1LCAyNDksIDAuOTIpO1xuICAgIC0tY2hhdC1tZC10YWJsZS1ib3JkZXI6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40NSk7XG4gICAgLS1jaGF0LW1kLWNpdGF0aW9uLWJnOiByZ2JhKDE5MSwgMjE5LCAyNTQsIDAuMjQpO1xufVxuXG5Ac3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYgNTAlKSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE1OGRlZyxcbiAgICAgICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA4NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAxNCUpLFxuICAgICAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDk1JSwgcmdiYSgyLCA2LCAyMywgMC4wOCkgNSUpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1idWJibGUtYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzIlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KSAyOCVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLWxpbmstY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDcyJSwgIzdkZDNmYyAyOCUpO1xuICAgICAgICAtLWNoYXQtbWQtbXV0ZWQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDg0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NSUsIHJnYmEoMTUsIDIzLCA0MiwgMC4yKSAzNSUpO1xuICAgICAgICAtLWNoYXQtbWQtaW5saW5lLWNvZGUtYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgLS1jaGF0LW1kLWJsb2NrcXVvdGUtYmc6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDIyJVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWQtYmxvY2txdW90ZS1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDM0JSwgIzdkZDNmYyA2NiUpO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAyMiUpO1xuICAgICAgICAtLWNoYXQtbWQtdGFibGUtcm93LWFsdC1iZzogY29sb3ItbWl4KFxuICAgICAgICAgICAgaW4gc3JnYixcbiAgICAgICAgICAgIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDcwJSxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44MikgMzAlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZC10YWJsZS1oZWFkLWJnOiBjb2xvci1taXgoXG4gICAgICAgICAgICBpbiBzcmdiLFxuICAgICAgICAgICAgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNjQlLFxuICAgICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSAzNiVcbiAgICAgICAgKTtcbiAgICAgICAgLS1jaGF0LW1kLXRhYmxlLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTglLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIC0tY2hhdC1tZC1jaXRhdGlvbi1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDU1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KSA0NSUpO1xuICAgIH1cbn1cblxuLyogQ29weSBidXR0b24gc3R5bGVzICovXG4uY29weUJ1dHRvbkNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTJweDtcbiAgICB6LWluZGV4OiAzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG59XG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQ6aG92ZXIgLmNvcHlCdXR0b25Db250YWluZXIsXG4uY29weUJ1dHRvbkNvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4IDEycHg7XG59XG5cbi5hcnRpY2xlTW9kZU1lc3NhZ2VDb250cm9scyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogYXV0bztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLm1lc3NhZ2VDb250cm9sR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMgLmNvcHlCdXR0b24sXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAucGxheUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC42NSk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMgLnBsYXlCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCksXG4uYXJ0aWNsZU1vZGVNZXNzYWdlQWN0aW9ucyAuY29weUJ1dHRvbjpob3Zlcixcbi5hcnRpY2xlTW9kZU1lc3NhZ2VBY3Rpb25zIC5jb3B5QnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjgyKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbn1cblxuLmNvcHlCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ2KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cywgYm94LXNoYWRvdyAwLjE1cywgYm9yZGVyIDAuMTVzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLnBsYXlCdXR0b24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40OCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgICBjb2xvcjogIzExMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnBsYXlCdXR0b25JY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5wbGF5QnV0dG9uU3Bpbm5lciB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzExMTtcbiAgICBhbmltYXRpb246IG1lc3NhZ2VQbGF5U3Bpbm5lciAwLjlzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnBsYXlCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5cbi5wbGF5QnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdlUGxheVNwaW5uZXIge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uY29waWVkVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDExMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogNnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC45OGVtO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICBvcGFjaXR5OiAwLjk3O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBhbmltYXRpb246IGNvcGllZFRvb2x0aXBGYWRlSW4gMC4ycztcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmNvcGllZFRvb2x0aXBMZWZ0IHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jb3BpZWRUb29sdGlwUmlnaHQge1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBSZW1vdmVkIHJpZ2h0LWFsaWduZWQgb3ZlcnJpZGUgdG8ga2VlcCB0b29sdGlwIHBvc2l0aW9uIHN0YWJsZSAqL1xuXG5Aa2V5ZnJhbWVzIGNvcGllZFRvb2x0aXBGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTc7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmNvcHlCdXR0b246aG92ZXIsXG4uY29weUJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjIyKTtcbn1cblxuLmNvcHlCdXR0b24gc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTWFya2Rvd24gcHJpbWl0aXZlcyBhcmUgaW50ZW50aW9uYWxseSBjZW50cmFsaXplZCBpbiBgTWFya2Rvd25Db250ZW50Lm1vZHVsZS5jc3NgLiAqL1xuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQ6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWNoYXQtYnViYmxlLXNoYWRvdy1ob3ZlciksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXB4KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0LmFydGljbGVNb2RlQWdlbnRNZXNzYWdlVGV4dDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qIEF0dGFjaG1lbnRzIHN0eWxlcyAqL1xuLmF0dGFjaG1lbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMjgpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uYXR0YWNobWVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDdweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNik7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDc0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDI2JSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTYlLCB0cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbn1cblxuLmF0dGFjaG1lbnQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNCk7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDYyJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDM4JSk7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAyNCUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5hdHRhY2htZW50SWNvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLmF0dGFjaG1lbnROYW1lIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qIE1lc3NhZ2UgYnV0dG9ucyBjb250YWluZXIgKi9cbi5tZXNzYWdlQnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA5cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjM2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogSW5kaXZpZHVhbCBtZXNzYWdlIGJ1dHRvbiAqL1xuLm1lc3NhZ2VCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAyMiUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC45KTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IsICMwZjE3MmEpIDE4JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbiAgICBvcGFjaXR5OiAwLjcyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2NiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSAzNCUpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMjYlLCAjN2RkM2ZjIDc0JSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE0KTtcbn1cblxuLm1lc3NhZ2VCdXR0b246aG92ZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3OCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAyMiUpO1xuICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgMTglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4uYWN0aW9uTWVzc2FnZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NSwgNjUsIDgxLCAwLjkyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgMC45NSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTgpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNywgMjQsIDM5LCAwLjk4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zMik7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOTIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzMSwgNDEsIDU1LCAwLjk1KTtcbn1cblxuLyogUmVtb3ZlIGRlZmF1bHQgbWFya2Rvd24gc3R5bGVzIGZyb20gYnV0dG9uIGNvbnRlbnQgKi9cbi5tZXNzYWdlQnV0dG9uIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4ubWVzc2FnZUJ1dHRvbiBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tZXNzYWdlQnV0dG9uIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIFJhdGluZyBzeXN0ZW0gKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC04cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogNHB4IDZweDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcuYXJ0aWNsZU1vZGVSYXRpbmcge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlOmhvdmVyIC5yYXRpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nLmFydGljbGVNb2RlUmF0aW5nOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MSwgMjQ1LCAyNDksIDAuOTQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMDAsIDExNiwgMTM5LCAwLjYyKTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nIHNwYW4ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZzpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5mZWVkYmFja0lzc3VlQnV0dG9uIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUJsYWNrJywgJ05vdG8gRW1vamknLCAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBDaGF0IGlucHV0IGFyZWEgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgei1pbmRleDogMTA7XG4gICAgZ3JpZC1hcmVhOiDwn5OdO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyMHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAxODBkZWcsXG4gICAgICAgIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMCkgMCUsXG4gICAgICAgIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45KSA0NCUsXG4gICAgICAgIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NikgMTAwJVxuICAgICk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xufVxuXG4uYXJ0aWNsZU1vZGVDaGF0SW5wdXQge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1wYWRkaW5nLWlubGluZSk7XG59XG5cbi5hcnRpY2xlTW9kZUNoYXRJbnB1dCA+IDpub3QoLnNwZWVjaFN0YXR1c0J1YmJsZSk6bm90KC5kcmFnT3ZlcmxheSkge1xuICAgIHdpZHRoOiBtaW4odmFyKC0tY2hhdC1hcnRpY2xlLWxheW91dC1tYXgtd2lkdGgpLCAxMDAlKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uQ2hhdC5mdWxsUGFnZVZpc3VhbCAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgMTgwZGVnLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIDAlLFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpIDYwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAxMDAlXG4gICAgKTtcbn1cblxuLyogRmlsZSB1cGxvYWQgZHJhZy1hbmQtZHJvcCBzdHlsZXMgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dC5kcmFnT3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMDQpIDAlLCByZ2JhKDE0LCAxNjUsIDIzMywgMC4xMykgMTAwJSk7XG59XG5cbi8qIEZpbGUgcHJldmlldyBjb250YWluZXIgKi9cbi5maWxlUHJldmlld0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4vKiBJbmRpdmlkdWFsIGZpbGUgcHJldmlldyAqL1xuLmZpbGVQcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uZmlsZVByZXZpZXc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xNSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG59XG5cbi5maWxlSWNvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLmZpbGVJbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmlsZU5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uZmlsZVNpemUge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjEpO1xuICAgIGNvbG9yOiAjZmY0NDQ0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLyogSW5wdXQgY29udGFpbmVyIGZvciB0ZXh0YXJlYSBhbmQgYnV0dG9ucyAqL1xuLmlucHV0Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpIDAlLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTQpIDEwMCUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zKTtcbiAgICBib3JkZXItcmFkaXVzOiAyNnB4O1xuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMiksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmlucHV0Q29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSk7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQycHggcmdiYSgxNSwgMjMsIDQyLCAwLjE2KSwgMCAwIDAgNHB4IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjE2KTtcbiAgICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1icmFuZC1jb2xvciwgIzBlYTVlOSkgNTglLCByZ2JhKDE1LCAyMywgNDIsIDAuMikgNDIlKTtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDJweCByZ2JhKDE1LCAyMywgNDIsIDAuMTYpLFxuICAgICAgICAwIDAgMCA0cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kLWNvbG9yLCAjMGVhNWU5KSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5pbnB1dENvbnRhaW5lciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOGI5YmIxO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qIEF0dGFjaG1lbnQgYnV0dG9uICovXG4uYXR0YWNobWVudEJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYXR0YWNobWVudEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKiBWb2ljZSBCdXR0b24gKi9cbi52b2ljZUJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udm9pY2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi52b2ljZUJ1dHRvbkFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uOiB2b2ljZVJlY29yZGluZ1B1bHNlIDEuNXMgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbiAgICBib3R0b206IDg2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDAlIC0gNDhweCkpO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHotaW5kZXg6IDI1O1xuICAgIGFuaW1hdGlvbjogc3BlZWNoU3RhdHVzQnViYmxlSW4gMC4ycyBlYXNlLW91dDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogIzY0NzQ4YjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI0MiwgMjQyLCAwLjk3KTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVJlY29yZGluZyAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUHJvY2Vzc2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxMTYsIDE0NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzYsIDI1NCwgMjU1LCAwLjk3KTtcbiAgICBjb2xvcjogIzE1NWU3NTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3NpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZUVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45OCk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZGMyNjI2O1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLmRpY3RhdGlvblBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5kaWN0YXRpb25QYW5lbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblBhbmVsVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLmRpY3RhdGlvblBhbmVsVG9nZ2xlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkludGVyaW1UcmFuc2NyaXB0IHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkpO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICMwYzRhNmU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkVycm9yUGFuZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjIwLCAzOCwgMzgsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45NSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5OTFiMWI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5kaWN0YXRpb25FcnJvckFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uRXJyb3JBY3Rpb25zIGJ1dHRvbixcbi5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyBidXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25QYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvbkxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uVGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDY4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25BY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4IDEycHg7XG59XG5cbi5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbn1cblxuLmRpY3RhdGlvbkZhbGxiYWNrTm90ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuQGtleWZyYW1lcyBzcGVlY2hTdGF0dXNCdWJibGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlRG90UHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlUmVjb3JkaW5nUHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMC40KTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAwLCAwLCAwKTtcbiAgICB9XG59XG5cbi8qIFVwbG9hZCBwcm9ncmVzcyBpbmRpY2F0b3IgKi9cbi51cGxvYWRQcm9ncmVzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzAwODRmZjtcbn1cblxuLnVwbG9hZFByb2dyZXNzQmFyIHtcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51cGxvYWRQcm9ncmVzc0ZpbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDg0ZmYsIHJnYmEoMCwgMTMyLCAyNTUsIDAuOCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IHVwbG9hZFByb2dyZXNzIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdXBsb2FkUHJvZ3Jlc3Mge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG59XG5cbi8qIERyYWcgb3ZlcmxheSAqL1xuLmRyYWdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMCwgMTMyLCAyNTUsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kcmFnT3ZlcmxheUNvbnRlbnQgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXQgaW5wdXQgZmllbGQgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkgdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAwMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcmVzaXplOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgLyogRm9jdXMgaXMgaGFuZGxlZCBieSAuaW5wdXRDb250YWluZXIgKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOGJhMGI4O1xuICAgIG9wYWNpdHk6IDAuOTtcbn1cblxuLyogQ2hhdCBzZW5kIGJ1dHRvbiAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddIHtcbiAgICB3aWR0aDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWluLXdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjI1KTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ106aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjM1KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddIHN2ZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uIGltZyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLyogU2Nyb2xsIHRvIGJvdHRvbSBidXR0b24gKi9cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIHtcbiAgICAvKi9cbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJlZDtcbiAgICAvKiovXG5cbiAgICB6LWluZGV4OiAyMDtcbiAgICBncmlkLWFyZWE6IPCfk507XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIC5zY3JvbGxUb0JvdHRvbVdyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xNTAlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFuaW1hdGlvbjogc2Nyb2xsQnV0dG9uU2xpZGVJbiAwLjNzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLnNjcm9sbFRvQm90dG9tQ29udGFpbmVyIC5zY3JvbGxUb0JvdHRvbSB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAgMCAwIC8gMC41KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuQGtleWZyYW1lcyBzY3JvbGxCdXR0b25TbGlkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMjBweCkgc2NhbGUoMC44KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLnNjcm9sbFRvQm90dG9tQmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgcmlnaHQ6IC04cHg7XG4gICAgbWluLXdpZHRoOiAzMnB4O1xuICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2dyb3VuZDogIzI1NjNlYjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuNCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogUmF0aW5nIG1vZGFsICovXG4ucmF0aW5nTW9kYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBhbmltYXRpb246IG1vZGFsRmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbW9kYWxGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMHB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICB9XG59XG5cbi5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgICBhbmltYXRpb246IG1vZGFsU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcblxuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmLCAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJztcbiAgICAvKiA8LSBUT0RPOiBb8J+noF1b8J+OsV0gQmV0dGVyLCBkZWZpbmUgb3RoZXIgZm9udHMgKi9cbn1cblxuQGtleWZyYW1lcyBtb2RhbFNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLnJhdGluZ01vZGFsQ29udGVudCBoMyB7XG4gICAgbWFyZ2luOiAwIDAgMjRweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zdGFycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4uc3RhcnMgc3BhbiB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5zdGFycyBzcGFuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxNSwgMCwgMC4xKTtcbn1cblxuLnJhdGluZ01vZGFsU3RhciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xufVxuXG4udG9vbENhbGxNb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50b29sQ2FsbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWVmMmZmIDAlLCAjZjVmM2ZmIDQwJSwgI2ZlZmNjOSAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRvb2xDYWxsSWNvbiB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xufVxuXG4udG9vbENhbGxIZWFkZXJNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi50b29sQ2FsbE1vZGFsTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udG9vbENhbGxUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxTdWJ0aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2Nztcbn1cblxuLnRvb2xDYWxsR3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbn1cblxuLnRvb2xDYWxsUGFuZWwge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRvb2xDYWxsUGFuZWxUaXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjI1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnRvb2xDYWxsTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4udG9vbENhbGxJdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi50b29sQ2FsbEl0ZW1MYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjI1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnRvb2xDYWxsSXRlbVZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4udG9vbENhbGxTdW1tYXJ5TWV0YSB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeU1ldGFCYWRnZSB7XG4gICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3OSwgNzAsIDIyOSwgMC4xNSk7XG4gICAgY29sb3I6ICMzMTJlODE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi50b29sQ2FsbEVtcHR5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nQ2FyZCB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNjYmQ1ZTE7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmOGZiZmYgMCUsICNmOGZhZmMgMTAwJSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdCYWRnZSB7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTIpO1xuICAgIGNvbG9yOiAjMDM2OWExO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ01lc3NhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvbkxpbmUge1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSwgcmdiYSgyNDEsIDI0NSwgMjQ5LCAxKSwgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICBhbmltYXRpb246IHRvb2xDYWxsUGVuZGluZ1NrZWxldG9uUHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uU2hvcnQge1xuICAgIHdpZHRoOiA2OCU7XG59XG5cbkBrZXlmcmFtZXMgdG9vbENhbGxQZW5kaW5nU2tlbGV0b25QdWxzZSB7XG4gICAgZnJvbSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDAlIDUwJTtcbiAgICB9XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjkpO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdzpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3cgc3Ryb25nIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsSXNzdWVzIHtcbiAgICBwYWRkaW5nOiAwIDMycHggMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsSXNzdWVCYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cblxuLnRvb2xDYWxsSXNzdWVFcnJvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xMik7XG4gICAgY29sb3I6ICNiOTFjMWM7XG59XG5cbi50b29sQ2FsbElzc3VlV2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzQsIDE3OSwgOCwgMC4xNik7XG4gICAgY29sb3I6ICNhMTYyMDc7XG59XG5cbi50b29sQ2FsbE1vZGVGb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDMycHggMjRweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50b29sQ2FsbE1vZGVCdXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi50b29sQ2FsbE1vZGVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTRhM2I4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnRvb2xDYWxsQ2xvY2tQYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi50b29sQ2FsbENsb2NrTGFiZWxzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50b29sQ2FsbENsb2NrUHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsQ2xvY2tTZWNvbmRhcnkge1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4udG9vbENhbGxDbG9ja01ldGEge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgY29sb3I6ICM2NjcwODU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4udGltZW91dFRvb2xTdW1tYXJ5IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4udGltZW91dFRvb2xQcmltYXJ5U2VudGVuY2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udGltZW91dFRvb2xTZWNvbmRhcnlTZW50ZW5jZSB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25Sb3cge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50aW1lb3V0VG9vbEFjdGlvbkJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIGJvcmRlci1jb2xvcjogIzk0YTNiODtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC40NTtcbn1cblxuLm1lbW9yeU1vZGFsSGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyOHB4IDMycHggMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZmRmZGZkIDAlLCAjZjZmOWZmIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4ubWVtb3J5TW9kYWxJY29uIHtcbiAgICB3aWR0aDogNTJweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjM2NmYxLCAjYTg1NWY3KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4ubWVtb3J5TW9kYWxIZWFkZXJUZXh0IHtcbiAgICBmbGV4OiAxO1xufVxuXG4ubWVtb3J5TW9kYWxUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ubWVtb3J5TW9kYWxTdWJ0aXRsZSB7XG4gICAgbWFyZ2luOiA0cHggMCAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1lbW9yeU1vZGFsU3RhdHVzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZW1vcnlTdGF0dXNEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZW1vcnlNb2RhbENvbnRlbnQge1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAzMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cblxuLm1lbW9yeU1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbW9yeU1ldGFSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4ubWVtb3J5TWV0YUxhYmVsIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1lbW9yeU1ldGFWYWx1ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLm1lbW9yeVN0b3JlU2VjdGlvbixcbi5tZW1vcnlSZXRyaWV2ZVNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5tZW1vcnlDYXJkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAxOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5tZW1vcnlDYXJkQ29udGVudCB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5tZW1vcnlDYXJkTWV0YSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1lbW9yeVNjb3BlQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjEyKTtcbn1cblxuLm1lbW9yeUxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5tZW1vcnlFbXB0eVN0YXRlIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWYzYzc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZkZTY4YTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGNvbG9yOiAjOTI0MDBlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tZW1vcnlMaXN0Rm9vdGVyIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWVtb3J5U3RhdHVzU3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMTYpO1xuICAgIGNvbG9yOiAjMDQ3ODU3O1xufVxuXG4ubWVtb3J5U3RhdHVzV2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzQsIDE3OSwgOCwgMC4xNik7XG4gICAgY29sb3I6ICNhMTYyMDc7XG59XG5cbi5tZW1vcnlTdGF0dXNFcnJvciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7XG4gICAgY29sb3I6ICNiOTFjMWM7XG59XG5cbi5tZW1vcnlTdGF0dXNOZXV0cmFsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSk7XG4gICAgY29sb3I6ICMxZDRlZDg7XG59XG5cbi5zZWFyY2hNb2RhbEhlYWRlciB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDcycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmZGZkO1xufVxuXG4uc2VsZkxlYXJuaW5nTW9kYWxIZWFkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGZhZmMgMCUsICNmZWY5YzMgNDUlLCAjZWNmY2NiIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFyR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXIge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjE4KTtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhckluaXRpYWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uc2VsZkxlYXJuaW5nVGVhY2hlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZkZTY4YSAwJSwgIzg2ZWZhYyAxMDAlKTtcbn1cblxuLnNlbGZMZWFybmluZ0hlYWRlclRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2VsZkxlYXJuaW5nVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnNlbGZMZWFybmluZ01ldGFSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YUNoaXAge1xuICAgIGJhY2tncm91bmQ6ICNlMmU4ZjA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zZWxmTGVhcm5pbmdDb21taXRtZW50cyB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuLnNlbGZMZWFybmluZ0NvbW1pdG1lbnRzTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlbGZMZWFybmluZ0Jvb2tFZGl0b3Ige1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nRW1wdHkge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICByaWdodDogMTZweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLm1vZGFsQ2xvc2VCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICM5NGEzYjg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLnRlYW1Nb2RhbEhlYWRlciB7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRlYW1IZWFkZXJQYXJ0aWNpcGFudHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGVhbUhlYWRlclByb2ZpbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnRlYW1IZWFkZXJQcm9maWxlTGluazpob3ZlciB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50ZWFtSGVhZGVyQXZhdGFyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLnRlYW1IZWFkZXJOYW1lIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRlYW1IZWFkZXJEaXZpZGVyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLnNlYXJjaE1vZGFsSWNvbiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5zZWFyY2hNb2RhbFF1ZXJ5IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDIycHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMyMDIxMjQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWFyY2hNb2RhbENvbnRlbnQge1xuICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnRlYW1DaGF0Q29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi50ZWFtVG9vbENhbGxTZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4udGVhbVRvb2xDYWxsR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1Ub29sQ2FsbEhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLnRlYW1Ub29sQ2FsbENoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNDbGVhciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzQ2xlYXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG59XG5cbi5zZWFyY2hSZXN1bHRzTGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uc2VhcmNoUmVzdWx0c1JhdyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4uc2VhcmNoUmVzdWx0SXRlbSB7XG4gICAgbWF4LXdpZHRoOiA2NTBweDtcbn1cblxuLnNlYXJjaFJlc3VsdFVybCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMjAyMTI0O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5zZWFyY2hSZXN1bHRVcmwgYSB7XG4gICAgY29sb3I6ICMyMDIxMjQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2VhcmNoUmVzdWx0VGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCA0cHggMCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSBhIHtcbiAgICBjb2xvcjogIzFhMGRhYjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnNlYXJjaFJlc3VsdFNuaXBwZXQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41ODtcbiAgICBjb2xvcjogIzRkNTE1NjtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5ub1Jlc3VsdHMge1xuICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNzA3NTdhO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRvb2xDYWxsRGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cbi5jaXRhdGlvbkRldGFpbHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG59XG5cbi5jaXRhdGlvblByZXZpZXcge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xufVxuXG4uY2l0YXRpb25JZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjB2aDtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgcCB7XG4gICAgbWFyZ2luOiA4cHggMDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBzdHJvbmcge1xuICAgIGNvbG9yOiAjMzMzO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBhIHtcbiAgICBjb2xvcjogIzAwN2JmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNpdGF0aW9uRXhjZXJwdCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jaXRhdGlvbkV4Y2VycHQgaDQge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICBjb2xvcjogIzMzMztcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLmNpdGF0aW9uSGludCB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLnRvb2xDYWxsRGF0YUNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnRvb2xDYWxsUGF5bG9hZENvbnRhaW5lciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yKSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciAub3ZlcmZsb3ctZ3VhcmQpLFxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yIC5tb25hY28tc2Nyb2xsYWJsZS1lbGVtZW50KSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYyAhaW1wb3J0YW50O1xufVxuXG4udG9vbENhbGxEYXRhIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi50b29sQ2FsbE1vZGFsIC50b29sQ2FsbERhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5yYXRpbmdJbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjA1KTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ucmF0aW5nSW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwODRmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMDgpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbi5yYXRpbmdJbnB1dFtyZWFkb25seV0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC41KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMDEpO1xufVxuXG4ucmF0aW5nQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtaW4td2lkdGg6IDgwcHg7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmZpcnN0LWNoaWxkOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG4gICAgY29sb3I6ICMwYjEyMjA7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA4NGZmIDAlLCAjMDA2NmNjIDEwMCUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwNzFkMSAwJSwgIzAwNTJhMyAxMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZDpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xufVxuXG4uZG93bmxvYWRCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDk5ZmYgMCUsICMwMDc3ZGQgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xufVxuXG4uZG93bmxvYWRCdXR0b24gc3ZnIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIFByaW1hcnkgY2hhdCB0b29sYmFyIGJ1dHRvbnMgKi9cbi5jaGF0QnV0dG9uLFxuLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTFweCAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0MGRlZywgIzBmOGVmNSAwJSwgIzBiNmZkMCA1NiUsICMwZDVmYmIgMTAwJSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCkgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMi41cHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4yOCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE4cHgpICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAxMTBweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b246OmJlZm9yZSxcbi51c2VUZW1wbGF0ZUJ1dHRvbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMTAlO1xuICAgIHdpZHRoOiA3NSU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjYpIDQ4JSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjQ1cyBlYXNlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjo6YmVmb3JlLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDE0MCU7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQwZGVnLCAjMWE5YWZmIDAlLCAjMGQ3ZGU4IDU2JSwgIzExNjhjOSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCAzMHB4IHJnYmEoMTQsIDExNiwgMjE5LCAwLjM0KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b246YWN0aXZlLFxuLnVzZVRlbXBsYXRlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuOTg1KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4uY2hhdEJ1dHRvbjpmb2N1cyxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDE0LCAxMTYsIDIxOSwgMC4zMiksIDAgMCAwIDNweCByZ2JhKDU2LCAxODksIDI0OCwgMC4yOCksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAhaW1wb3J0YW50O1xufVxuXG4uY2hhdEJ1dHRvbiBzdmcsXG4udXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBmaWx0ZXIgMC4ycyBlYXNlO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yNCkpO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciBzdmcsXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpIHRyYW5zbGF0ZVgoMXB4KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjgpKTtcbn1cblxuLmNoYXRCdXR0b25UZXh0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyIC5jaGF0QnV0dG9uVGV4dCxcbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xufVxuXG4uc2F2ZUJ1dHRvbkNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNhdmVNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG5cbi5zYXZlTWVudUl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMTExO1xufVxuXG4uc2F2ZU1lbnVJdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG4uc2F2ZU1lbnVEaXZpZGVyIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIG1hcmdpbjogNHB4IDA7XG59XG5cbi5jaGF0RmVlZGJhY2tQYW5lbCB7XG4gICAgd2lkdGg6IG1pbigyNjBweCwgMTAwJSk7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVweCk7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMyNTYzZWI7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYyZmY7XG4gICAgY29sb3I6ICM2MzY2ZjE7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSd0cnVlJ10gLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIGJhY2tncm91bmQ6ICNlMGYyZmU7XG4gICAgY29sb3I6ICMwMjg0Yzc7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSdmYWxzZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uY2hhdEZlZWRiYWNrTWV0YSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tMYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5jaGF0RmVlZGJhY2tEZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9yIHtcbiAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckFjdGl2ZSB7XG4gICAgY29sb3I6ICMxNjY1MzQ7XG4gICAgYmFja2dyb3VuZDogI2RjZmNlNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzRkMzk5O1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9ySW5hY3RpdmUge1xuICAgIGNvbG9yOiAjNzEzZjEyO1xuICAgIGJhY2tncm91bmQ6ICNmZWY5YzM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZhY2MxNTtcbn1cblxuLyogUGF1c2UvUmVzdW1lIGJ1dHRvbiB2YXJpYW50IChyZXVzZXMgLmNoYXRCdXR0b24gYmFzZSBzdHlsZXMgZm9yIERSWSkgKi9cbi5wYXVzZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYjM0NyAwJSwgI2ZmOGM0MiAxMDAlKSAhaW1wb3J0YW50OyAvKiBXYXJtIG9yYW5nZSBmb3IgXCJhY3RpdmUvcnVubmluZ1wiICovXG59XG5cbi5wYXVzZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYzA2NyAwJSwgI2ZmOWU1ZiAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2luZyB7XG4gICAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiB3YWl0ICFpbXBvcnRhbnQ7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDsgLyogR3JlZW4gd2hlbiBwYXVzZWQgKHJlYWR5IHRvIHJlc3VtZSkgKi9cbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0ZDM5OSAwJSwgIzA1OTY2OSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAyKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KTtcbn1cblxuLnBhdXNlQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZCBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zdG9wQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZGMyNjI2IDAlLCAjOTkxYjFjIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZWZlZmUgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmODcxNzEgMCUsICNkYzI2MjYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b24gc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uc3RvcEJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgcmdiYSgyNDgsIDExMywgMTEzLCAwLjgpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGJhciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvckJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4xKSAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKSAxMDAlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAxOTcsIDk0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29sb3I6ICMxMGI5ODE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbEljb25QdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBWb2ljZSBjYWxsIHB1bHNlIGFuaW1hdGlvbiAqL1xuLnZvaWNlQ2FsbFB1bHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMTBiOTgxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbFB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdm9pY2VDYWxsSWNvblB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbFB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMS4zKTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgaW4gbWVzc2FnZXMgKi9cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG59XG5cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHN2ZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xufVxuXG4vKiBGZWVkYmFjayBzdGF0dXMgYmFubmVyICovXG4uZmVlZGJhY2tTdGF0dXMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMTRweCAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDMycHggcmdiYSgxNSwgMjMsIDQyLCAwLjM1KTtcbiAgICB6LWluZGV4OiAxMDAwMDsgLyogW0ZpeCB6LWluZGV4XTogRW5zdXJlIGl0J3MgYWJvdmUgdGhlIGhlYWRlciAoei01MCkgYW5kIG90aGVyIFVJIGVsZW1lbnRzICovXG4gICAgYW5pbWF0aW9uOiBmZWVkYmFja1N0YXR1c1NsaWRlSW4gMC4yOHMgZWFzZS1vdXQ7XG4gICAgbWF4LXdpZHRoOiAzNDBweDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mZWVkYmFja1N0YXR1c1N1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSk7XG4gICAgY29sb3I6ICNmOGZhZmM7XG59XG5cbi5mZWVkYmFja1N0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWY0NDQ0IDAlLCAjZGMyNjI2IDEwMCUpO1xuICAgIGNvbG9yOiAjZmVmMmYyO1xufVxuXG5Aa2V5ZnJhbWVzIGZlZWRiYWNrU3RhdHVzU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8qIE1vYmlsZSByZXNwb25zaXZlbmVzcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLkNoYXQge1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDEwMHB4O1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogMzZweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgICAgICA4NSUsXG4gICAgICAgICAgICA1NjBweCxcbiAgICAgICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDEwcHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1mb250LXNpemU6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDE0cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDRweDtcbiAgICB9XG5cbiAgICAuY29uc3RyYWluZWRBcnRpY2xlVmlzdWFsIHtcbiAgICAgICAgLS1jaGF0LWFydGljbGUtbGF5b3V0LXBhZGRpbmctaW5saW5lOiBjbGFtcCgyNHB4LCA2dncsIDM2cHgpO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDE2cHggMDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5hcnRpY2xlTW9kZUFnZW50TWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2UgLm1lc3NhZ2VTdGFjayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQuYXJ0aWNsZU1vZGVBZ2VudE1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMnB4IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjg7XG4gICAgfVxuXG4gICAgLmFydGljbGVNb2RlTWVzc2FnZUFjdGlvbnMge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgfVxuXG4gICAgLyogW+OKl++4j11cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIH1cbiAgICAqL1xuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICAuc3BlZWNoU3RhdHVzQnViYmxlIHtcbiAgICAgICAgcmlnaHQ6IDE0cHg7XG4gICAgICAgIGJvdHRvbTogNzZweDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyOHB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nOiA3cHggMTFweDtcbiAgICB9XG5cbiAgICAuZGljdGF0aW9uU2V0dGluZ3NQYW5lbCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE2MHB4KTtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMTZweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5zdGFycyB7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5zdGFycyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01vZGFsSGVhZGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ0F2YXRhckdyb3VwIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5zZWxmTGVhcm5pbmdNZXRhUm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogODBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDMycHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgOTAlLFxuICAgICAgICAgICAgNTIwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiA4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEycHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogOHB4IDEycHggMDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgfVxuXG4gICAgLyogW+OKl++4j11cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIH1cbiAgICAqL1xuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyxcbiAgICAuZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE0MHB4KTtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyMHB4O1xuICAgIH1cbn1cblxuLyogUmVkdWNlZCBtb3Rpb24gc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSxcbiAgICAuc2Nyb2xsVG9Cb3R0b20sXG4gICAgLnJhdGluZ01vZGFsLFxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQsXG4gICAgLmZlZWRiYWNrU3RhdHVzIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbixcbiAgICAvKiBb44qX77iPXSAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZywgKi9cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vKiBIaWdoIGNvbnRyYXN0IG1vZGUgc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogM3B4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24ge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxufVxuXG4vKiBFbWFpbCBtb2RhbCBzdHlsZXMgKi9cbi5lbWFpbENvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uZW1haWxNb2RhbEhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmVtYWlsSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uZW1haWxIZWFkZXJMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmVtYWlsTWV0YWRhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uZW1haWxGaWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5lbWFpbEZpZWxkOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbWFpbEZpZWxkIHN0cm9uZyB7XG4gICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5lbWFpbFJlY2lwaWVudHMge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5lbWFpbEJvZHkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5lbWFpbEJvZHkgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZW1haWxCb2R5Q29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHAge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYnJvd3NlclJ1bk1vZGFsSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmYWZjIDAlLCAjZWNmZWZmIDQwJSwgI2VjZmNjYiAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RiZWFmZTtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyU3RhdHVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5icm93c2VyUnVuTWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuV2FybmluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmJiZjI0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmJlYjtcbiAgICBjb2xvcjogIzkyNDAwZTtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZjYTVhNTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gICAgY29sb3I6ICM3ZjFkMWQ7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3RlcHMge1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMgc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjN2YxZDFkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHByZSB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY3ZWQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZDdhYTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4uYnJvd3NlclJ1bkZhbGxiYWNrQ29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG5cbi5icm93c2VyUnVuU3RhdHVzQmFubmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk1KTtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUNhcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUltYWdlLFxuLmJyb3dzZXJSdW5NZWRpYVZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxvZyB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTG9nVGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25MaXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25JdGVtIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblBlbmRpbmcge1xuICAgIG9wYWNpdHk6IDAuODI7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uUnVubmluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkNvbXBsZXRlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjIyKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uRXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGUge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjY2JkNWUxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlUnVubmluZyB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTQpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlQ29tcGxldGUge1xuICAgIGJhY2tncm91bmQ6ICMxMGI5ODE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZUVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25NZXRhIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogNDhweCA0MHB4IDY0cHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE1MGRlZywgcmdiYSgyLCA2LCAyMywgMC45OCksIHJnYmEoMTUsIDIzLCA0MiwgMC45MikpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMzIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNDBweCA4MHB4IHJnYmEoMCwgMCwgMCwgMC4zNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE0NWRlZyxcbiAgICAgICAgICAgIHZhcigtLWFnZW50LWNoYXQtYnJhbmQtY29sb3ItbGlnaHQsICM3ZGQzZmMpLFxuICAgICAgICAgICAgdmFyKC0tYWdlbnQtY2hhdC1icmFuZC1jb2xvciwgIzBlYTVlOSlcbiAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgyLCA2LCAyMywgMC42KSBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGZiZmYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwZjE3MmEgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQ1KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDE1LCAyMywgNDIsIDAuMykgaW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tZXNzYWdlTWV0YSxcbiAgICAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQsXG4gICAgLnNjcm9sbFRvQm90dG9tLFxuICAgIC5mZWVkYmFja1N0YXR1cyxcbiAgICAudm9pY2VDYWxsSW5kaWNhdG9yQmFyLFxuICAgIC52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNvcHlCdXR0b25Db250YWluZXIsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmVtYWlsU3RhdHVzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKipcbiAqIFRPRE86IFvwn4yJXSBEUlkgTWFya2Rvd24gcHJpbWl0aXZlcyBzdHlsaW5nXG4gKi9cbi8qIEltYWdlIHByb21wdCBwcmV2aWV3IHN0eWxlcyAqL1xuLmltYWdlUHJvbXB0IHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uaW1hZ2VQcm9tcHRQcmV2aWV3IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMTE4LCAyNTUsIDAuMDUpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkpO1xufVxuXG4uaW1hZ2VQcm9tcHRJbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1hZ2VQcm9tcHRQbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmltYWdlUHJvbXB0U3Bpbm5lciB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTYzZWI7XG4gICAgYW5pbWF0aW9uOiBpbWFnZVByb21wdFNwaW5uZXIgMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgaW1hZ2VQcm9tcHRTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uaW1hZ2VQcm9tcHRNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5pbWFnZVByb21wdFByb21wdCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMxMTE7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5pbWFnZVByb21wdFN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uaW1hZ2VQcm9tcHRFcnJvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNkYzI2MjY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDM4LCAzOCwgMC4wOCk7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclNwaW5uZXIge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzIyZDNlZTtcbiAgICBhbmltYXRpb246IHJpY2hGZWF0dXJlU3Bpbm5lciAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJDb3B5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMjQpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCksIHJnYmEoMjE5LCAyMzQsIDI1NCwgMC44NikpO1xuICAgIHBhZGRpbmc6IDEycHggMTNweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucHJvZ3Jlc3NQYW5lbFRpdGxlIHAge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsU2VjdGlvbkxhYmVsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxZDRlZDg7XG59XG5cbi5wcm9ncmVzc1BhbmVsU2VjdGlvbkJvZHkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLnByb2dyZXNzUGFuZWxTZWN0aW9uQm9keSBwIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5wcm9ncmVzc1BhbmVsTGlzdEl0ZW0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuXG4ucHJvZ3Jlc3NQYW5lbExpc3RCdWxsZXQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzI1NjNlYjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtU3Bpbm5lciB7XG4gICAgd2lkdGg6IDExcHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMjU2M2ViO1xuICAgIGFuaW1hdGlvbjogcHJvZ3Jlc3NQYW5lbFNwaW5uZXIgMC43NXMgbGluZWFyIGluZmluaXRlO1xuICAgIG1hcmdpbi10b3A6IDNweDtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtQ29tcGxldGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMXB4O1xuICAgIGhlaWdodDogMTFweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMTYpO1xuICAgIGNvbG9yOiAjMTU4MDNkO1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5wcm9ncmVzc1BhbmVsSXRlbVRleHQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLnByb2dyZXNzUGFuZWxJdGVtVGV4dCBwIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbkBrZXlmcmFtZXMgcHJvZ3Jlc3NQYW5lbFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcmljaEZlYXR1cmVTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuIl19 */";
|
|
23218
|
+
var styles$5 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","constrainedArticleVisual":"Chat-module_constrainedArticleVisual__0axxM","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","articleModeChatMessages":"Chat-module_articleModeChatMessages__ufofT","chatMessage":"Chat-module_chatMessage__nmLaZ","articleModeAgentMessage":"Chat-module_articleModeAgentMessage__Y79L7","messageStack":"Chat-module_messageStack__n0xNL","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","isMe":"Chat-module_isMe__nBtaV","avatar":"Chat-module_avatar__gL6bm","articleModeAgentAvatar":"Chat-module_articleModeAgentAvatar__UCKDX","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","citationFootnotes":"Chat-module_citationFootnotes__LAWdh","citationFootnoteItem":"Chat-module_citationFootnoteItem__JXTAX","citationFootnoteNumber":"Chat-module_citationFootnoteNumber__CMmm9","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","active":"Chat-module_active__lbYL-","articleModeAgentMessageText":"Chat-module_articleModeAgentMessageText__vBlIP","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","articleModeMessageActions":"Chat-module_articleModeMessageActions__h2qaG","articleModeMessageControls":"Chat-module_articleModeMessageControls__hncCw","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","attachmentName":"Chat-module_attachmentName__aMx56","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","articleModeRating":"Chat-module_articleModeRating__dwZqm","feedbackIssueButton":"Chat-module_feedbackIssueButton__9NrrF","chatInput":"Chat-module_chatInput__1Ecan","articleModeChatInput":"Chat-module_articleModeChatInput__zBTV4","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","dragOverlay":"Chat-module_dragOverlay__SEGoS","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","toolCallClockPanel":"Chat-module_toolCallClockPanel__h4xZd","toolCallClockLabels":"Chat-module_toolCallClockLabels__KJGxe","toolCallClockPrimary":"Chat-module_toolCallClockPrimary__StLQ8","toolCallClockSecondary":"Chat-module_toolCallClockSecondary__O4WaT","toolCallClockMeta":"Chat-module_toolCallClockMeta__aObb7","timeoutToolSummary":"Chat-module_timeoutToolSummary__kPPvu","timeoutToolPrimarySentence":"Chat-module_timeoutToolPrimarySentence__pQfLn","timeoutToolSecondarySentence":"Chat-module_timeoutToolSecondarySentence__iH5Uc","timeoutToolActionRow":"Chat-module_timeoutToolActionRow__occir","timeoutToolActionButton":"Chat-module_timeoutToolActionButton__8yz0R","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09","progressPanel":"Chat-module_progressPanel__9M8h9","progressPanelTitle":"Chat-module_progressPanelTitle__rBdoY","progressPanelSection":"Chat-module_progressPanelSection__F3xUF","progressPanelSectionLabel":"Chat-module_progressPanelSectionLabel__aTPgr","progressPanelSectionBody":"Chat-module_progressPanelSectionBody__Z7zX0","progressPanelList":"Chat-module_progressPanelList__PHFeP","progressPanelListItem":"Chat-module_progressPanelListItem__7v9jN","progressPanelListBullet":"Chat-module_progressPanelListBullet__Tzvi7","progressPanelItemSpinner":"Chat-module_progressPanelItemSpinner__oJ6Az","progressPanelSpinner":"Chat-module_progressPanelSpinner__pzxP2","progressPanelItemCompleted":"Chat-module_progressPanelItemCompleted__7bJhG","progressPanelItemText":"Chat-module_progressPanelItemText__tZPIs"};
|
|
23007
23219
|
styleInject(css_248z$5);
|
|
23008
23220
|
|
|
23009
23221
|
/**
|
|
@@ -23013,7 +23225,7 @@ styleInject(css_248z$5);
|
|
|
23013
23225
|
*/
|
|
23014
23226
|
function ChatActionsBar(props) {
|
|
23015
23227
|
var _a;
|
|
23016
|
-
const { actionsRef, actionsContainer, messages, participants, title, onReset, resetRequiresConfirmation = true, onUseTemplate, extraActions, saveFormats, isSaveButtonEnabled, shouldFadeActions, shouldDisableActions, onButtonClick, } = props;
|
|
23228
|
+
const { actionsRef, actionsContainer, messages, participants, title, onReset, resetRequiresConfirmation = true, onUseTemplate, extraActions, saveFormats, isSaveButtonEnabled, shouldFadeActions, shouldDisableActions, chatUiTranslations, onButtonClick, } = props;
|
|
23017
23229
|
const [showSaveMenu, setShowSaveMenu] = useState(false);
|
|
23018
23230
|
useEffect(() => {
|
|
23019
23231
|
const handleKeyDown = (event) => {
|
|
@@ -23059,7 +23271,7 @@ function ChatActionsBar(props) {
|
|
|
23059
23271
|
return;
|
|
23060
23272
|
}
|
|
23061
23273
|
void onReset();
|
|
23062
|
-
}), children: [jsx(ResetIcon, {}), jsx("span", { className: styles$5.chatButtonText, children:
|
|
23274
|
+
}), children: [jsx(ResetIcon, {}), jsx("span", { className: styles$5.chatButtonText, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.newChatButtonLabel) || 'New chat' })] })), isSaveButtonEnabled && messages.length !== 0 && (jsxs("div", { className: styles$5.saveButtonContainer, children: [jsxs("button", { className: classNames(styles$5.chatButton), onClick: onButtonClick(() => setShowSaveMenu((v) => !v)), "aria-haspopup": "true", "aria-expanded": showSaveMenu, children: [jsx(SaveIcon, { size: 18 }), jsx("span", { className: styles$5.chatButtonText, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.saveButtonLabel) || 'Save' })] }), showSaveMenu && (jsx("div", { className: styles$5.saveMenu, children: getChatSaveFormatDefinitions(saveFormats).map((formatDefinition) => (jsx("button", { className: styles$5.saveMenuItem, onClick: () => handleDownload(formatDefinition.formatName), children: formatDefinition.label }, formatDefinition.formatName))) }))] })), onUseTemplate && (jsxs("button", { className: classNames(styles$5.useTemplateButton), onClick: onButtonClick(onUseTemplate), children: [jsx("span", { className: styles$5.chatButtonText, children: "Use this template" }), jsx(TemplateIcon, { size: 16 })] })), extraActions] }));
|
|
23063
23275
|
if (actionsContainer) {
|
|
23064
23276
|
return createPortal(actionsContent, actionsContainer);
|
|
23065
23277
|
}
|
|
@@ -24436,13 +24648,19 @@ function ChatInputArea(props) {
|
|
|
24436
24648
|
if (soundSystem) {
|
|
24437
24649
|
/* not await */ soundSystem.play('message_send');
|
|
24438
24650
|
}
|
|
24439
|
-
|
|
24651
|
+
// Capture content before optimistically clearing the textarea
|
|
24652
|
+
const contentToSend = messageContent;
|
|
24653
|
+
const attachmentsToSend = attachments;
|
|
24654
|
+
// Optimistically clear the textarea immediately on send,
|
|
24655
|
+
// without waiting for the server to confirm receipt.
|
|
24656
|
+
// On server failure the error state is shown in the chat — the text is not restored.
|
|
24440
24657
|
setMessageContent('');
|
|
24441
24658
|
setUploadedFiles([]);
|
|
24442
24659
|
onChange === null || onChange === void 0 ? void 0 : onChange('');
|
|
24443
24660
|
if (wasTextareaFocused) {
|
|
24444
24661
|
textareaElement.focus();
|
|
24445
24662
|
}
|
|
24663
|
+
await onMessage(contentToSend, attachmentsToSend);
|
|
24446
24664
|
}
|
|
24447
24665
|
catch (error) {
|
|
24448
24666
|
if (!(error instanceof Error)) {
|
|
@@ -28908,7 +29126,7 @@ function getSafeReferenceCommitmentFallback(commitmentType, originalContent) {
|
|
|
28908
29126
|
* @private @@@
|
|
28909
29127
|
*/
|
|
28910
29128
|
async function createAgentModelRequirementsWithCommitments(agentSource, modelName, options) {
|
|
28911
|
-
var _a;
|
|
29129
|
+
var _a, _b, _c;
|
|
28912
29130
|
const agentReferenceResolver = options === null || options === void 0 ? void 0 : options.agentReferenceResolver;
|
|
28913
29131
|
// Parse the agent source to extract commitments
|
|
28914
29132
|
const parseResult = parseAgentSourceWithCommitments(agentSource);
|
|
@@ -28976,6 +29194,36 @@ async function createAgentModelRequirementsWithCommitments(agentSource, modelNam
|
|
|
28976
29194
|
if (commitment.type === 'CLOSED' && i !== filteredCommitments.length - 1) {
|
|
28977
29195
|
continue;
|
|
28978
29196
|
}
|
|
29197
|
+
// For TEAM commitments, pre-resolve teammate profiles if a resolver is provided
|
|
29198
|
+
// and store them in metadata before the commitment is applied.
|
|
29199
|
+
const profileResolver = (_a = options === null || options === void 0 ? void 0 : options.teammateProfileResolver) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.agentReferenceResolver;
|
|
29200
|
+
if (commitment.type === 'TEAM' && (profileResolver === null || profileResolver === void 0 ? void 0 : profileResolver.resolveTeammateProfile)) {
|
|
29201
|
+
try {
|
|
29202
|
+
const parsedTeammates = parseTeamCommitmentContent(commitmentContent, { strict: false });
|
|
29203
|
+
const preResolved = {
|
|
29204
|
+
...(_b = requirements._metadata) === null || _b === void 0 ? void 0 : _b.preResolvedTeammateProfiles,
|
|
29205
|
+
};
|
|
29206
|
+
for (const teammate of parsedTeammates) {
|
|
29207
|
+
if (preResolved[teammate.url]) {
|
|
29208
|
+
continue;
|
|
29209
|
+
}
|
|
29210
|
+
const profile = await profileResolver.resolveTeammateProfile(teammate.url);
|
|
29211
|
+
if (profile) {
|
|
29212
|
+
preResolved[teammate.url] = profile;
|
|
29213
|
+
}
|
|
29214
|
+
}
|
|
29215
|
+
requirements = {
|
|
29216
|
+
...requirements,
|
|
29217
|
+
_metadata: {
|
|
29218
|
+
...requirements._metadata,
|
|
29219
|
+
preResolvedTeammateProfiles: preResolved,
|
|
29220
|
+
},
|
|
29221
|
+
};
|
|
29222
|
+
}
|
|
29223
|
+
catch (error) {
|
|
29224
|
+
console.warn('Failed to pre-resolve teammate profiles for TEAM commitment:', error);
|
|
29225
|
+
}
|
|
29226
|
+
}
|
|
28979
29227
|
const definition = getCommitmentDefinition(commitment.type);
|
|
28980
29228
|
if (definition) {
|
|
28981
29229
|
try {
|
|
@@ -29071,7 +29319,7 @@ async function createAgentModelRequirementsWithCommitments(agentSource, modelNam
|
|
|
29071
29319
|
// Add example interactions to the system message
|
|
29072
29320
|
const examples = [];
|
|
29073
29321
|
// 1. Initial message as an example agent response
|
|
29074
|
-
const initialMessage = (
|
|
29322
|
+
const initialMessage = (_c = parseResult.commitments.find((c) => c.type === 'INITIAL MESSAGE')) === null || _c === void 0 ? void 0 : _c.content;
|
|
29075
29323
|
if (initialMessage) {
|
|
29076
29324
|
examples.push(`Agent: ${initialMessage}`);
|
|
29077
29325
|
}
|
|
@@ -35799,13 +36047,23 @@ function decodeChatStreamWhitespaceFromTransport(content) {
|
|
|
35799
36047
|
*/
|
|
35800
36048
|
function mergeToolCalls(existingToolCalls, incomingToolCalls) {
|
|
35801
36049
|
if (!existingToolCalls || existingToolCalls.length === 0) {
|
|
35802
|
-
return incomingToolCalls ? [...incomingToolCalls] : [];
|
|
36050
|
+
return incomingToolCalls ? deduplicatePreparationToolCalls([...incomingToolCalls]) : [];
|
|
35803
36051
|
}
|
|
35804
36052
|
if (!incomingToolCalls || incomingToolCalls.length === 0) {
|
|
35805
36053
|
return [...existingToolCalls];
|
|
35806
36054
|
}
|
|
35807
36055
|
const mergedToolCalls = [...existingToolCalls];
|
|
35808
36056
|
for (const incomingToolCall of incomingToolCalls) {
|
|
36057
|
+
if (isAssistantPreparationToolCall(incomingToolCall)) {
|
|
36058
|
+
// A new preparation phase always replaces any previous assistant_preparation tool
|
|
36059
|
+
// call, regardless of phase argument, so only one chip is ever shown at a time.
|
|
36060
|
+
const existingPreparationIndex = mergedToolCalls.findIndex(isAssistantPreparationToolCall);
|
|
36061
|
+
if (existingPreparationIndex !== -1) {
|
|
36062
|
+
mergedToolCalls.splice(existingPreparationIndex, 1);
|
|
36063
|
+
}
|
|
36064
|
+
mergedToolCalls.push(incomingToolCall);
|
|
36065
|
+
continue;
|
|
36066
|
+
}
|
|
35809
36067
|
const incomingIdentity = getToolCallIdentity(incomingToolCall);
|
|
35810
36068
|
const existingIndex = mergedToolCalls.findIndex((existingToolCall) => getToolCallIdentity(existingToolCall) === incomingIdentity);
|
|
35811
36069
|
if (existingIndex === -1) {
|
|
@@ -35917,6 +36175,30 @@ function serializeValueForMerge(value) {
|
|
|
35917
36175
|
return String(value);
|
|
35918
36176
|
}
|
|
35919
36177
|
}
|
|
36178
|
+
/**
|
|
36179
|
+
* Ensures at most one `assistant_preparation` tool call survives in the list,
|
|
36180
|
+
* keeping the last occurrence so the most recent preparation phase is shown.
|
|
36181
|
+
*
|
|
36182
|
+
* @param toolCalls - Mutable list to deduplicate in-place.
|
|
36183
|
+
* @returns The same array after removing redundant preparation entries.
|
|
36184
|
+
* @private helper of `mergeToolCalls`
|
|
36185
|
+
*/
|
|
36186
|
+
function deduplicatePreparationToolCalls(toolCalls) {
|
|
36187
|
+
let lastPreparationIndex = -1;
|
|
36188
|
+
for (let index = toolCalls.length - 1; index >= 0; index--) {
|
|
36189
|
+
if (!isAssistantPreparationToolCall(toolCalls[index])) {
|
|
36190
|
+
continue;
|
|
36191
|
+
}
|
|
36192
|
+
if (lastPreparationIndex === -1) {
|
|
36193
|
+
lastPreparationIndex = index;
|
|
36194
|
+
}
|
|
36195
|
+
else {
|
|
36196
|
+
// Remove earlier duplicate — keep only the last (most recent) one.
|
|
36197
|
+
toolCalls.splice(index, 1);
|
|
36198
|
+
}
|
|
36199
|
+
}
|
|
36200
|
+
return toolCalls;
|
|
36201
|
+
}
|
|
35920
36202
|
|
|
35921
36203
|
/**
|
|
35922
36204
|
* Parses one failed remote agent response into a structured error.
|
|
@@ -38143,6 +38425,111 @@ function buildCitationKey(citation, origin) {
|
|
|
38143
38425
|
return `${origin.label}:${citation.id}:${citation.source}`;
|
|
38144
38426
|
}
|
|
38145
38427
|
|
|
38428
|
+
/**
|
|
38429
|
+
* Seconds in one minute.
|
|
38430
|
+
*
|
|
38431
|
+
* @private utility of `<Chat/>`
|
|
38432
|
+
*/
|
|
38433
|
+
const SECONDS_IN_MINUTE = 60;
|
|
38434
|
+
/**
|
|
38435
|
+
* Minutes in one hour.
|
|
38436
|
+
*
|
|
38437
|
+
* @private utility of `<Chat/>`
|
|
38438
|
+
*/
|
|
38439
|
+
const MINUTES_IN_HOUR = 60;
|
|
38440
|
+
/**
|
|
38441
|
+
* Hours in one day.
|
|
38442
|
+
*
|
|
38443
|
+
* @private utility of `<Chat/>`
|
|
38444
|
+
*/
|
|
38445
|
+
const HOURS_IN_DAY$1 = 24;
|
|
38446
|
+
/**
|
|
38447
|
+
* Formats one tool-call timestamp into shared locale-aware labels.
|
|
38448
|
+
*
|
|
38449
|
+
* @param date - Timestamp to format.
|
|
38450
|
+
* @param options - Optional locale and relative-time reference point.
|
|
38451
|
+
* @returns Shared labels consumed by tool-call chips and modals.
|
|
38452
|
+
*
|
|
38453
|
+
* @private utility of `<Chat/>`
|
|
38454
|
+
*/
|
|
38455
|
+
function formatToolCallDateTime(date, options = {}) {
|
|
38456
|
+
const normalizedLocale = normalizeToolCallLocale(options.locale);
|
|
38457
|
+
const currentDate = options.currentDate || null;
|
|
38458
|
+
return {
|
|
38459
|
+
localTimeLabel: new Intl.DateTimeFormat(normalizedLocale, {
|
|
38460
|
+
hour: 'numeric',
|
|
38461
|
+
minute: '2-digit',
|
|
38462
|
+
}).format(date),
|
|
38463
|
+
localDateLabel: new Intl.DateTimeFormat(normalizedLocale, {
|
|
38464
|
+
dateStyle: 'medium',
|
|
38465
|
+
}).format(date),
|
|
38466
|
+
localDateTimeLabel: new Intl.DateTimeFormat(normalizedLocale, {
|
|
38467
|
+
dateStyle: 'medium',
|
|
38468
|
+
timeStyle: 'medium',
|
|
38469
|
+
}).format(date),
|
|
38470
|
+
relativeTimeLabel: currentDate ? formatRelativeToolCallTime(date, currentDate, normalizedLocale) : null,
|
|
38471
|
+
};
|
|
38472
|
+
}
|
|
38473
|
+
/**
|
|
38474
|
+
* Normalizes optional locale input before it is passed into `Intl`.
|
|
38475
|
+
*
|
|
38476
|
+
* @param locale - Potential BCP-47 locale string.
|
|
38477
|
+
* @returns Sanitized locale or `undefined` for runtime defaults.
|
|
38478
|
+
*
|
|
38479
|
+
* @private utility of `<Chat/>`
|
|
38480
|
+
*/
|
|
38481
|
+
function normalizeToolCallLocale(locale) {
|
|
38482
|
+
if (typeof locale !== 'string') {
|
|
38483
|
+
return undefined;
|
|
38484
|
+
}
|
|
38485
|
+
const normalizedLocale = locale.trim();
|
|
38486
|
+
return normalizedLocale || undefined;
|
|
38487
|
+
}
|
|
38488
|
+
/**
|
|
38489
|
+
* Builds one localized relative-time label for tool-call timestamps.
|
|
38490
|
+
*
|
|
38491
|
+
* @param date - Target timestamp.
|
|
38492
|
+
* @param currentDate - Reference timestamp used for comparison.
|
|
38493
|
+
* @param locale - Sanitized locale passed to `Intl.RelativeTimeFormat`.
|
|
38494
|
+
* @returns Relative label or `null` when both timestamps are equal.
|
|
38495
|
+
*
|
|
38496
|
+
* @private utility of `<Chat/>`
|
|
38497
|
+
*/
|
|
38498
|
+
function formatRelativeToolCallTime(date, currentDate, locale) {
|
|
38499
|
+
const millisecondsDifference = date.getTime() - currentDate.getTime();
|
|
38500
|
+
if (!Number.isFinite(millisecondsDifference) || millisecondsDifference === 0) {
|
|
38501
|
+
return null;
|
|
38502
|
+
}
|
|
38503
|
+
const secondsDifference = Math.round(millisecondsDifference / 1000);
|
|
38504
|
+
const absoluteSecondsDifference = Math.abs(secondsDifference);
|
|
38505
|
+
const formatter = new Intl.RelativeTimeFormat(locale, {
|
|
38506
|
+
numeric: 'auto',
|
|
38507
|
+
});
|
|
38508
|
+
if (absoluteSecondsDifference < SECONDS_IN_MINUTE) {
|
|
38509
|
+
return formatter.format(secondsDifference, 'second');
|
|
38510
|
+
}
|
|
38511
|
+
if (absoluteSecondsDifference < SECONDS_IN_MINUTE * MINUTES_IN_HOUR) {
|
|
38512
|
+
return formatter.format(Math.round(secondsDifference / SECONDS_IN_MINUTE), 'minute');
|
|
38513
|
+
}
|
|
38514
|
+
if (absoluteSecondsDifference < HOURS_IN_DAY$1 * MINUTES_IN_HOUR * SECONDS_IN_MINUTE) {
|
|
38515
|
+
return formatter.format(Math.round(secondsDifference / (SECONDS_IN_MINUTE * MINUTES_IN_HOUR)), 'hour');
|
|
38516
|
+
}
|
|
38517
|
+
return formatter.format(Math.round(secondsDifference / (HOURS_IN_DAY$1 * MINUTES_IN_HOUR * SECONDS_IN_MINUTE)), 'day');
|
|
38518
|
+
}
|
|
38519
|
+
|
|
38520
|
+
/**
|
|
38521
|
+
* Applies `{placeholder}` values to one tool-call translation template.
|
|
38522
|
+
*
|
|
38523
|
+
* @param template - Template from the host application or fallback copy.
|
|
38524
|
+
* @param variables - Placeholder values keyed by variable name.
|
|
38525
|
+
* @returns Formatted string ready for rendering.
|
|
38526
|
+
*
|
|
38527
|
+
* @private utility of `<Chat/>`
|
|
38528
|
+
*/
|
|
38529
|
+
function formatToolCallTranslationTemplate(template, variables) {
|
|
38530
|
+
return Object.entries(variables).reduce((formatted, [key, value]) => formatted.replace(new RegExp(`\\{${key}\\}`, 'g'), String(value)), template);
|
|
38531
|
+
}
|
|
38532
|
+
|
|
38146
38533
|
/**
|
|
38147
38534
|
* Tool names handled by timeout-specific chat presentation.
|
|
38148
38535
|
*
|
|
@@ -38185,14 +38572,6 @@ const DAY_IN_SECONDS = HOURS_IN_DAY * HOUR_IN_SECONDS;
|
|
|
38185
38572
|
* @private internal timeout-chat constant
|
|
38186
38573
|
*/
|
|
38187
38574
|
const SECONDS_VISIBILITY_THRESHOLD_SECONDS = 3 * MINUTE_IN_SECONDS;
|
|
38188
|
-
/**
|
|
38189
|
-
* Shared relative-time formatter for timeout labels.
|
|
38190
|
-
*
|
|
38191
|
-
* @private internal timeout-chat singleton
|
|
38192
|
-
*/
|
|
38193
|
-
const timeoutRelativeTimeFormatter = new Intl.RelativeTimeFormat(undefined, {
|
|
38194
|
-
numeric: 'auto',
|
|
38195
|
-
});
|
|
38196
38575
|
/**
|
|
38197
38576
|
* Determines whether a tool name belongs to the timeout commitment.
|
|
38198
38577
|
*
|
|
@@ -38208,7 +38587,7 @@ function isTimeoutToolCallName(toolName) {
|
|
|
38208
38587
|
*/
|
|
38209
38588
|
function resolveTimeoutToolCallPresentation(options) {
|
|
38210
38589
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
38211
|
-
const { toolCallName, args, resultRaw } = options;
|
|
38590
|
+
const { toolCallName, args, resultRaw, locale } = options;
|
|
38212
38591
|
if (!isTimeoutToolCallName(toolCallName)) {
|
|
38213
38592
|
return null;
|
|
38214
38593
|
}
|
|
@@ -38226,6 +38605,9 @@ function resolveTimeoutToolCallPresentation(options) {
|
|
|
38226
38605
|
const dueAtRaw = (_h = (_g = normalizeStringValue(resultObject === null || resultObject === void 0 ? void 0 : resultObject.dueAt)) !== null && _g !== void 0 ? _g : normalizeStringValue(args.dueAt)) !== null && _h !== void 0 ? _h : null;
|
|
38227
38606
|
const dueAtDate = dueAtRaw ? parseDateValue(dueAtRaw) : null;
|
|
38228
38607
|
const effectiveCurrentDate = options.currentDate || new Date();
|
|
38608
|
+
const dueAtLabels = dueAtDate
|
|
38609
|
+
? formatToolCallDateTime(dueAtDate, { locale, currentDate: effectiveCurrentDate })
|
|
38610
|
+
: null;
|
|
38229
38611
|
return {
|
|
38230
38612
|
action,
|
|
38231
38613
|
status,
|
|
@@ -38237,14 +38619,9 @@ function resolveTimeoutToolCallPresentation(options) {
|
|
|
38237
38619
|
localTimezone: resolveLocalTimezone(),
|
|
38238
38620
|
compactDurationLabel: milliseconds !== null ? formatTimeoutDurationCompact(milliseconds) : null,
|
|
38239
38621
|
humanDurationLabel: milliseconds !== null ? formatTimeoutDurationHuman(milliseconds) : null,
|
|
38240
|
-
relativeDueLabel:
|
|
38241
|
-
localDueTimeLabel:
|
|
38242
|
-
|
|
38243
|
-
hour: '2-digit',
|
|
38244
|
-
minute: '2-digit',
|
|
38245
|
-
})
|
|
38246
|
-
: null,
|
|
38247
|
-
localDueDateLabel: dueAtDate ? dueAtDate.toLocaleDateString() : null,
|
|
38622
|
+
relativeDueLabel: (dueAtLabels === null || dueAtLabels === void 0 ? void 0 : dueAtLabels.relativeTimeLabel) || null,
|
|
38623
|
+
localDueTimeLabel: (dueAtLabels === null || dueAtLabels === void 0 ? void 0 : dueAtLabels.localTimeLabel) || null,
|
|
38624
|
+
localDueDateLabel: (dueAtLabels === null || dueAtLabels === void 0 ? void 0 : dueAtLabels.localDateLabel) || null,
|
|
38248
38625
|
};
|
|
38249
38626
|
}
|
|
38250
38627
|
/**
|
|
@@ -38252,58 +38629,68 @@ function resolveTimeoutToolCallPresentation(options) {
|
|
|
38252
38629
|
*
|
|
38253
38630
|
* @private internal utility of `<Chat/>`
|
|
38254
38631
|
*/
|
|
38255
|
-
function buildTimeoutToolCallChipLabel(presentation) {
|
|
38632
|
+
function buildTimeoutToolCallChipLabel(presentation, translations) {
|
|
38256
38633
|
if (presentation.action === 'cancel') {
|
|
38257
38634
|
if (presentation.status === 'cancelled') {
|
|
38258
|
-
return 'Timeout cancelled';
|
|
38635
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutChipCancelledLabel) || 'Timeout cancelled';
|
|
38259
38636
|
}
|
|
38260
38637
|
if (presentation.status === 'not_found') {
|
|
38261
|
-
return 'Timeout inactive';
|
|
38638
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutChipInactiveLabel) || 'Timeout inactive';
|
|
38262
38639
|
}
|
|
38263
|
-
return 'Timeout update';
|
|
38640
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutChipUpdatedLabel) || 'Timeout update';
|
|
38264
38641
|
}
|
|
38265
|
-
if (presentation.
|
|
38266
|
-
return
|
|
38642
|
+
if (presentation.localDueTimeLabel) {
|
|
38643
|
+
return formatToolCallTranslationTemplate((translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutChipLabel) || 'Timeout: {time}', {
|
|
38644
|
+
time: presentation.localDueTimeLabel,
|
|
38645
|
+
});
|
|
38267
38646
|
}
|
|
38268
38647
|
if (presentation.relativeDueLabel) {
|
|
38269
38648
|
return `Scheduled: ${presentation.relativeDueLabel}`;
|
|
38270
38649
|
}
|
|
38271
|
-
return 'Timeout scheduled';
|
|
38650
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutChipFallbackLabel) || 'Timeout scheduled';
|
|
38272
38651
|
}
|
|
38273
38652
|
/**
|
|
38274
38653
|
* Builds the primary timeout sentence shown in default modal view.
|
|
38275
38654
|
*
|
|
38276
38655
|
* @private internal utility of `<Chat/>`
|
|
38277
38656
|
*/
|
|
38278
|
-
function buildTimeoutToolPrimarySentence(presentation) {
|
|
38657
|
+
function buildTimeoutToolPrimarySentence(presentation, translations) {
|
|
38279
38658
|
if (presentation.action === 'cancel') {
|
|
38280
38659
|
if (presentation.status === 'cancelled') {
|
|
38281
|
-
return 'The timeout has been cancelled.';
|
|
38660
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutPrimaryCancelledLabel) || 'The timeout has been cancelled.';
|
|
38282
38661
|
}
|
|
38283
38662
|
if (presentation.status === 'not_found') {
|
|
38284
|
-
return 'This timeout was already inactive.';
|
|
38663
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutPrimaryInactiveLabel) || 'This timeout was already inactive.';
|
|
38285
38664
|
}
|
|
38286
|
-
return 'The timeout status has been updated.';
|
|
38665
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutPrimaryUpdatedLabel) || 'The timeout status has been updated.';
|
|
38666
|
+
}
|
|
38667
|
+
if (presentation.localDueTimeLabel) {
|
|
38668
|
+
return formatToolCallTranslationTemplate((translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutPrimaryScheduledLabel) || 'Scheduled for {time}.', {
|
|
38669
|
+
time: presentation.localDueTimeLabel,
|
|
38670
|
+
});
|
|
38287
38671
|
}
|
|
38288
38672
|
if (presentation.humanDurationLabel) {
|
|
38289
|
-
return
|
|
38673
|
+
return formatToolCallTranslationTemplate((translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutSecondaryDurationLabel) || 'Will retry in {duration}.', {
|
|
38674
|
+
duration: presentation.humanDurationLabel,
|
|
38675
|
+
});
|
|
38290
38676
|
}
|
|
38291
38677
|
if (presentation.relativeDueLabel) {
|
|
38292
38678
|
return `Scheduled ${presentation.relativeDueLabel}.`;
|
|
38293
38679
|
}
|
|
38294
|
-
return 'The timeout has been scheduled.';
|
|
38680
|
+
return (translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutPrimaryFallbackLabel) || 'The timeout has been scheduled.';
|
|
38295
38681
|
}
|
|
38296
38682
|
/**
|
|
38297
38683
|
* Builds one default-view scheduling sentence with local-time and relative context.
|
|
38298
38684
|
*
|
|
38299
38685
|
* @private internal utility of `<Chat/>`
|
|
38300
38686
|
*/
|
|
38301
|
-
function buildTimeoutToolScheduleSentence(presentation) {
|
|
38302
|
-
if (!presentation.
|
|
38687
|
+
function buildTimeoutToolScheduleSentence(presentation, translations) {
|
|
38688
|
+
if (presentation.action === 'cancel' || !presentation.humanDurationLabel) {
|
|
38303
38689
|
return null;
|
|
38304
38690
|
}
|
|
38305
|
-
|
|
38306
|
-
|
|
38691
|
+
return formatToolCallTranslationTemplate((translations === null || translations === void 0 ? void 0 : translations.toolCallTimeoutSecondaryDurationLabel) || 'Will retry in {duration}.', {
|
|
38692
|
+
duration: presentation.humanDurationLabel,
|
|
38693
|
+
});
|
|
38307
38694
|
}
|
|
38308
38695
|
/**
|
|
38309
38696
|
* Converts timeout duration into compact chip-safe text.
|
|
@@ -38363,29 +38750,6 @@ function formatTimeoutDurationHuman(milliseconds) {
|
|
|
38363
38750
|
}
|
|
38364
38751
|
return `${formatTimeoutUnit(days, 'day')} ${formatTimeoutUnit(hours, 'hour')}`;
|
|
38365
38752
|
}
|
|
38366
|
-
/**
|
|
38367
|
-
* Formats timeout date into relative text (`in 5 minutes`, `2 hours ago`).
|
|
38368
|
-
*
|
|
38369
|
-
* @private internal timeout-chat helper
|
|
38370
|
-
*/
|
|
38371
|
-
function formatTimeoutRelativeDueLabel(dueAtDate, currentDate) {
|
|
38372
|
-
const millisecondsDifference = dueAtDate.getTime() - currentDate.getTime();
|
|
38373
|
-
const secondsDifference = Math.round(millisecondsDifference / SECOND_IN_MILLISECONDS);
|
|
38374
|
-
const absoluteSecondsDifference = Math.abs(secondsDifference);
|
|
38375
|
-
if (absoluteSecondsDifference < MINUTE_IN_SECONDS) {
|
|
38376
|
-
return timeoutRelativeTimeFormatter.format(secondsDifference, 'second');
|
|
38377
|
-
}
|
|
38378
|
-
if (absoluteSecondsDifference < HOUR_IN_SECONDS) {
|
|
38379
|
-
const minutesDifference = Math.round(secondsDifference / MINUTE_IN_SECONDS);
|
|
38380
|
-
return timeoutRelativeTimeFormatter.format(minutesDifference, 'minute');
|
|
38381
|
-
}
|
|
38382
|
-
if (absoluteSecondsDifference < DAY_IN_SECONDS) {
|
|
38383
|
-
const hoursDifference = Math.round(secondsDifference / HOUR_IN_SECONDS);
|
|
38384
|
-
return timeoutRelativeTimeFormatter.format(hoursDifference, 'hour');
|
|
38385
|
-
}
|
|
38386
|
-
const daysDifference = Math.round(secondsDifference / DAY_IN_SECONDS);
|
|
38387
|
-
return timeoutRelativeTimeFormatter.format(daysDifference, 'day');
|
|
38388
|
-
}
|
|
38389
38753
|
/**
|
|
38390
38754
|
* Formats one pluralized timeout unit.
|
|
38391
38755
|
*
|
|
@@ -38444,6 +38808,20 @@ function resolveLocalTimezone() {
|
|
|
38444
38808
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
38445
38809
|
*/
|
|
38446
38810
|
|
|
38811
|
+
/**
|
|
38812
|
+
* Formats a Date as a locale-aware short time string (e.g. "5:30 PM" or "17:30").
|
|
38813
|
+
*
|
|
38814
|
+
* @param date - Date to format.
|
|
38815
|
+
* @param locale - Optional BCP-47 locale string (e.g. `"en"`, `"cs"`).
|
|
38816
|
+
* When omitted the browser/OS default locale is used.
|
|
38817
|
+
* @returns Formatted time string such as `"5:30 PM"` or `"17:30"`.
|
|
38818
|
+
*
|
|
38819
|
+
* @private utility of `<Chat/>`
|
|
38820
|
+
*/
|
|
38821
|
+
function formatToolCallLocalTime(date, locale) {
|
|
38822
|
+
return formatToolCallDateTime(date, { locale }).localTimeLabel;
|
|
38823
|
+
}
|
|
38824
|
+
|
|
38447
38825
|
/**
|
|
38448
38826
|
* Synthetic tool name used for wallet-credential chips in chat UI.
|
|
38449
38827
|
*
|
|
@@ -38690,7 +39068,7 @@ function buildToolCallChipText(chipletInfo) {
|
|
|
38690
39068
|
* @private utility of `<Chat/>` [🧠] Maybe public?
|
|
38691
39069
|
*/
|
|
38692
39070
|
const TOOL_TITLES = {
|
|
38693
|
-
[ASSISTANT_PREPARATION_TOOL_CALL_NAME]: { title: 'Preparing agent', emoji: '
|
|
39071
|
+
[ASSISTANT_PREPARATION_TOOL_CALL_NAME]: { title: 'Preparing agent', emoji: '✨' },
|
|
38694
39072
|
[WALLET_CREDENTIAL_TOOL_CALL_NAME]: { title: 'Credential used', emoji: '🔐' },
|
|
38695
39073
|
'self-learning': { title: 'self-learning', emoji: '🧠' },
|
|
38696
39074
|
retrieve_user_memory: { title: 'Reading memory', emoji: '🧠' },
|
|
@@ -38717,22 +39095,27 @@ const TOOL_TITLES = {
|
|
|
38717
39095
|
send_email: { title: 'Sending email', emoji: '📧' },
|
|
38718
39096
|
useEmail: { title: 'Sending email', emoji: '📧' },
|
|
38719
39097
|
spawn_agent: { title: 'Spawning agent', emoji: '🧬' },
|
|
38720
|
-
project_list_files: { title: 'Listing project files', emoji: '
|
|
38721
|
-
project_read_file: { title: 'Reading project file', emoji: '
|
|
38722
|
-
project_upsert_file: { title: 'Writing project file', emoji: '
|
|
38723
|
-
project_delete_file: { title: 'Deleting project file', emoji: '
|
|
38724
|
-
project_create_branch: { title: 'Creating project branch', emoji: '
|
|
38725
|
-
project_create_pull_request: { title: 'Creating pull request', emoji: '
|
|
39098
|
+
project_list_files: { title: 'Listing project files', emoji: '📂' },
|
|
39099
|
+
project_read_file: { title: 'Reading project file', emoji: '📄' },
|
|
39100
|
+
project_upsert_file: { title: 'Writing project file', emoji: '✏️' },
|
|
39101
|
+
project_delete_file: { title: 'Deleting project file', emoji: '🗑️' },
|
|
39102
|
+
project_create_branch: { title: 'Creating project branch', emoji: '🍴' },
|
|
39103
|
+
project_create_pull_request: { title: 'Creating pull request', emoji: '🔀' },
|
|
38726
39104
|
// Add more tools here as needed
|
|
38727
39105
|
};
|
|
38728
39106
|
/**
|
|
38729
39107
|
* Gets the chiplet information including text and agent data (for team tools).
|
|
38730
39108
|
*
|
|
39109
|
+
* @param toolCall - Tool call to build chiplet info for.
|
|
39110
|
+
* @param locale - Optional BCP-47 locale string used to format time labels.
|
|
39111
|
+
* @param titleOverrides - Optional localized titles keyed by tool name.
|
|
39112
|
+
* @param chipTranslations - Optional localized chip templates for time-related tools.
|
|
39113
|
+
*
|
|
38731
39114
|
* @private [🧠] Maybe public?
|
|
38732
39115
|
*/
|
|
38733
|
-
function getToolCallChipletInfo(toolCall) {
|
|
39116
|
+
function getToolCallChipletInfo(toolCall, locale, titleOverrides, chipTranslations) {
|
|
38734
39117
|
const toolInfo = TOOL_TITLES[toolCall.name];
|
|
38735
|
-
const baseTitle = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
|
|
39118
|
+
const baseTitle = (titleOverrides === null || titleOverrides === void 0 ? void 0 : titleOverrides[toolCall.name]) || (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
|
|
38736
39119
|
const emoji = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.emoji) || '🛠️';
|
|
38737
39120
|
const args = parseToolCallArguments(toolCall);
|
|
38738
39121
|
const isTimeTool = toolCall.name === 'get_current_time' || toolCall.name === 'useTime';
|
|
@@ -38746,6 +39129,7 @@ function getToolCallChipletInfo(toolCall) {
|
|
|
38746
39129
|
args,
|
|
38747
39130
|
resultRaw,
|
|
38748
39131
|
currentDate: new Date(),
|
|
39132
|
+
locale,
|
|
38749
39133
|
})
|
|
38750
39134
|
: null;
|
|
38751
39135
|
const walletCredentialResult = parseWalletCredentialToolCallResult(resultRaw);
|
|
@@ -38770,7 +39154,9 @@ function getToolCallChipletInfo(toolCall) {
|
|
|
38770
39154
|
const resultDate = getToolCallResultDate(resultRaw);
|
|
38771
39155
|
if (resultDate) {
|
|
38772
39156
|
return {
|
|
38773
|
-
text: `${emoji} ${
|
|
39157
|
+
text: `${emoji} ${formatToolCallTranslationTemplate((chipTranslations === null || chipTranslations === void 0 ? void 0 : chipTranslations.toolCallTimeChipLabel) || '{time}', {
|
|
39158
|
+
time: formatToolCallLocalTime(resultDate, locale),
|
|
39159
|
+
})}`,
|
|
38774
39160
|
};
|
|
38775
39161
|
}
|
|
38776
39162
|
}
|
|
@@ -38791,7 +39177,7 @@ function getToolCallChipletInfo(toolCall) {
|
|
|
38791
39177
|
}
|
|
38792
39178
|
if (isTimeoutTool && timeoutPresentation) {
|
|
38793
39179
|
return {
|
|
38794
|
-
text: `${emoji} ${buildTimeoutToolCallChipLabel(timeoutPresentation)}`,
|
|
39180
|
+
text: `${emoji} ${buildTimeoutToolCallChipLabel(timeoutPresentation, chipTranslations)}`,
|
|
38795
39181
|
};
|
|
38796
39182
|
}
|
|
38797
39183
|
if (args.query) {
|
|
@@ -40217,23 +40603,25 @@ function resolveTeamAgentChipData(toolCall, teammates, chipletInfo, teamAgentPro
|
|
|
40217
40603
|
/**
|
|
40218
40604
|
* Resolves the compact lifecycle badge label rendered below durable chat messages.
|
|
40219
40605
|
*
|
|
40606
|
+
* Completed messages intentionally return `null` so the UI stays focused on active or exceptional states.
|
|
40607
|
+
*
|
|
40220
40608
|
* @private internal helper of `<ChatMessageItem/>`
|
|
40221
40609
|
*/
|
|
40222
|
-
function resolveMessageLifecycleLabel(message) {
|
|
40610
|
+
function resolveMessageLifecycleLabel(message, chatUiTranslations) {
|
|
40223
40611
|
if (message.sender === 'USER' && message.lifecycleState === 'queued') {
|
|
40224
|
-
return 'Sending';
|
|
40612
|
+
return (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.lifecycleSending) || 'Sending';
|
|
40225
40613
|
}
|
|
40226
40614
|
switch (message.lifecycleState) {
|
|
40227
40615
|
case 'queued':
|
|
40228
|
-
return 'Queued';
|
|
40616
|
+
return (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.lifecycleQueued) || 'Queued';
|
|
40229
40617
|
case 'running':
|
|
40230
|
-
return 'Running';
|
|
40618
|
+
return (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.lifecycleRunning) || 'Running';
|
|
40231
40619
|
case 'failed':
|
|
40232
|
-
return 'Failed';
|
|
40620
|
+
return (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.lifecycleFailed) || 'Failed';
|
|
40233
40621
|
case 'cancelled':
|
|
40234
|
-
return 'Cancelled';
|
|
40622
|
+
return (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.lifecycleCancelled) || 'Cancelled';
|
|
40235
40623
|
case 'completed':
|
|
40236
|
-
return
|
|
40624
|
+
return null;
|
|
40237
40625
|
default:
|
|
40238
40626
|
return null;
|
|
40239
40627
|
}
|
|
@@ -40250,19 +40638,41 @@ function buildToolCallChipKey(toolCall, options) {
|
|
|
40250
40638
|
}
|
|
40251
40639
|
return baseKey;
|
|
40252
40640
|
}
|
|
40641
|
+
/**
|
|
40642
|
+
* Tool calls that should stay available in message data but never render as chips under the message.
|
|
40643
|
+
*
|
|
40644
|
+
* @private internal helper of `<ChatMessageItem/>`
|
|
40645
|
+
*/
|
|
40646
|
+
const HIDDEN_TOOL_CALL_CHIP_NAMES = new Set(['agent_progress']);
|
|
40647
|
+
/**
|
|
40648
|
+
* Determines whether one tool call should render as a chip under the message.
|
|
40649
|
+
*
|
|
40650
|
+
* @private internal helper of `<ChatMessageItem/>`
|
|
40651
|
+
*/
|
|
40652
|
+
function shouldRenderToolCallChip(toolCall) {
|
|
40653
|
+
return !HIDDEN_TOOL_CALL_CHIP_NAMES.has(toolCall.name);
|
|
40654
|
+
}
|
|
40253
40655
|
/**
|
|
40254
40656
|
* Converts ongoing tool calls into chip entries consumed by the UI.
|
|
40255
40657
|
*
|
|
40256
40658
|
* @private internal helper of `<ChatMessageItem/>`
|
|
40257
40659
|
*/
|
|
40258
|
-
function buildOngoingToolCallChips(toolCalls, teammates, teamAgentProfiles) {
|
|
40660
|
+
function buildOngoingToolCallChips(toolCalls, teammates, teamAgentProfiles, locale, toolTitles, chatUiTranslations) {
|
|
40259
40661
|
if (!toolCalls || toolCalls.length === 0) {
|
|
40260
40662
|
return [];
|
|
40261
40663
|
}
|
|
40262
40664
|
const entries = new Map();
|
|
40263
40665
|
for (const toolCall of toolCalls) {
|
|
40264
|
-
|
|
40265
|
-
|
|
40666
|
+
if (!shouldRenderToolCallChip(toolCall)) {
|
|
40667
|
+
continue;
|
|
40668
|
+
}
|
|
40669
|
+
// All assistant_preparation tool calls share a single stable chip key so that
|
|
40670
|
+
// duplicate preparation phases (e.g. "Creating knowledge base" followed by
|
|
40671
|
+
// "Preparing AgentKit agent") are collapsed into one chip in the UI.
|
|
40672
|
+
const key = isAssistantPreparationToolCall(toolCall)
|
|
40673
|
+
? `tool-snapshot:${ASSISTANT_PREPARATION_TOOL_CALL_NAME}`
|
|
40674
|
+
: buildToolCallChipKey(toolCall);
|
|
40675
|
+
const chipletInfo = getToolCallChipletInfo(toolCall, locale, toolTitles, chatUiTranslations);
|
|
40266
40676
|
const label = buildToolCallChipText(chipletInfo);
|
|
40267
40677
|
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo, teamAgentProfiles);
|
|
40268
40678
|
const toolCallState = resolveToolCallState(toolCall);
|
|
@@ -40282,12 +40692,15 @@ function buildOngoingToolCallChips(toolCalls, teammates, teamAgentProfiles) {
|
|
|
40282
40692
|
*
|
|
40283
40693
|
* @private internal helper of `<ChatMessageItem/>`
|
|
40284
40694
|
*/
|
|
40285
|
-
function buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teammates, teamAgentProfiles) {
|
|
40695
|
+
function buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teammates, teamAgentProfiles, locale, toolTitles, chatUiTranslations) {
|
|
40286
40696
|
const entries = [];
|
|
40287
40697
|
if (completedToolCalls && completedToolCalls.length > 0) {
|
|
40288
40698
|
for (const toolCall of completedToolCalls) {
|
|
40699
|
+
if (!shouldRenderToolCallChip(toolCall)) {
|
|
40700
|
+
continue;
|
|
40701
|
+
}
|
|
40289
40702
|
const key = buildToolCallChipKey(toolCall);
|
|
40290
|
-
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
40703
|
+
const chipletInfo = getToolCallChipletInfo(toolCall, locale, toolTitles, chatUiTranslations);
|
|
40291
40704
|
const label = buildToolCallChipText(chipletInfo);
|
|
40292
40705
|
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo, teamAgentProfiles);
|
|
40293
40706
|
entries.push({
|
|
@@ -40302,7 +40715,7 @@ function buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teamma
|
|
|
40302
40715
|
const walletCredentialToolCalls = createDeduplicatedWalletCredentialToolCalls(completedToolCalls);
|
|
40303
40716
|
for (const walletCredentialToolCall of walletCredentialToolCalls) {
|
|
40304
40717
|
const walletKey = buildToolCallChipKey(walletCredentialToolCall);
|
|
40305
|
-
const walletChipletInfo = getToolCallChipletInfo(walletCredentialToolCall);
|
|
40718
|
+
const walletChipletInfo = getToolCallChipletInfo(walletCredentialToolCall, locale, toolTitles, chatUiTranslations);
|
|
40306
40719
|
const walletLabel = buildToolCallChipText(walletChipletInfo);
|
|
40307
40720
|
entries.push({
|
|
40308
40721
|
key: walletKey,
|
|
@@ -40317,7 +40730,7 @@ function buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teamma
|
|
|
40317
40730
|
if (transitiveToolCalls && transitiveToolCalls.length > 0) {
|
|
40318
40731
|
for (const transitive of transitiveToolCalls) {
|
|
40319
40732
|
const key = buildToolCallChipKey(transitive.toolCall, { originLabel: transitive.origin.label });
|
|
40320
|
-
const chipletInfo = getToolCallChipletInfo(transitive.toolCall);
|
|
40733
|
+
const chipletInfo = getToolCallChipletInfo(transitive.toolCall, locale, toolTitles, chatUiTranslations);
|
|
40321
40734
|
const label = buildToolCallChipText(chipletInfo);
|
|
40322
40735
|
const agentData = {
|
|
40323
40736
|
url: transitive.origin.url || 'about:blank',
|
|
@@ -40400,6 +40813,24 @@ function dedupeToolCalls(toolCalls) {
|
|
|
40400
40813
|
function hasToolCallErrors(toolCall) {
|
|
40401
40814
|
return Array.isArray(toolCall.errors) && toolCall.errors.length > 0;
|
|
40402
40815
|
}
|
|
40816
|
+
/**
|
|
40817
|
+
* Default template used for assistant response-duration metadata.
|
|
40818
|
+
*
|
|
40819
|
+
* @private internal helper of `<ChatMessageItem/>`
|
|
40820
|
+
*/
|
|
40821
|
+
const DEFAULT_ANSWER_DURATION_LABEL = '{duration} to answer';
|
|
40822
|
+
/**
|
|
40823
|
+
* Resolves one localized assistant response-duration label.
|
|
40824
|
+
*
|
|
40825
|
+
* @param durationLabel - Compact duration text such as `3.3s`.
|
|
40826
|
+
* @param timingTranslations - Optional translation overrides from the host application.
|
|
40827
|
+
* @returns Final label rendered next to the timestamp.
|
|
40828
|
+
* @private internal helper of `<ChatMessageItem/>`
|
|
40829
|
+
*/
|
|
40830
|
+
function formatAnswerDurationLabel(durationLabel, timingTranslations) {
|
|
40831
|
+
const template = (timingTranslations === null || timingTranslations === void 0 ? void 0 : timingTranslations.answerDurationLabel) || DEFAULT_ANSWER_DURATION_LABEL;
|
|
40832
|
+
return template.replace(/\{duration\}/g, durationLabel);
|
|
40833
|
+
}
|
|
40403
40834
|
/**
|
|
40404
40835
|
* Renders a single chat message item with avatar, content, buttons, and rating.
|
|
40405
40836
|
*
|
|
@@ -40410,7 +40841,7 @@ const ChatMessageItem = memo(
|
|
|
40410
40841
|
// Or make normal function from this?
|
|
40411
40842
|
(props) => {
|
|
40412
40843
|
var _a;
|
|
40413
|
-
const { message, participant, participants, isLastMessage, onMessage, onActionButton, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, feedbackMode = 'stars', feedbackTranslations, onCopy, onCreateAgent, teammates, teamAgentProfiles, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, elevenLabsVoiceId, } = props;
|
|
40844
|
+
const { message, participant, participants, isLastMessage, onMessage, onActionButton, onQuickMessageButton, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, feedbackMode = 'stars', feedbackTranslations, timingTranslations, chatLocale, onCopy, onCreateAgent, toolTitles, teammates, teamAgentProfiles, CHAT_VISUAL_MODE = 'BUBBLE_MODE', onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, elevenLabsVoiceId, chatUiTranslations, } = props;
|
|
40414
40845
|
const { isComplete = true,
|
|
40415
40846
|
// <- TODO: Destruct all `messages` properties like `isComplete`
|
|
40416
40847
|
} = message;
|
|
@@ -40484,9 +40915,10 @@ const ChatMessageItem = memo(
|
|
|
40484
40915
|
// Note: Do not hide tooltip on mouse leave, it will be hidden by clicking outside
|
|
40485
40916
|
};
|
|
40486
40917
|
const isMe = participant === null || participant === void 0 ? void 0 : participant.isMe;
|
|
40487
|
-
const
|
|
40918
|
+
const isAgentArticleMode = CHAT_VISUAL_MODE === 'ARTICLE_MODE' && !isMe;
|
|
40919
|
+
const timingDisplay = getChatMessageTimingDisplay(message, chatLocale);
|
|
40488
40920
|
const shouldShowTiming = Boolean(isComplete && timingDisplay);
|
|
40489
|
-
const lifecycleBadgeLabel = resolveMessageLifecycleLabel(message);
|
|
40921
|
+
const lifecycleBadgeLabel = resolveMessageLifecycleLabel(message, chatUiTranslations);
|
|
40490
40922
|
const shouldShowMessageMeta = Boolean(shouldShowTiming || lifecycleBadgeLabel);
|
|
40491
40923
|
const shouldShowParticipantLabel = (participants || []).some((entry) => entry.name === 'TEAMMATE');
|
|
40492
40924
|
const participantLabel = (participant === null || participant === void 0 ? void 0 : participant.fullname) || (participant === null || participant === void 0 ? void 0 : participant.name);
|
|
@@ -40536,13 +40968,21 @@ const ChatMessageItem = memo(
|
|
|
40536
40968
|
const [pendingActionButtonIndex, setPendingActionButtonIndex] = useState(null);
|
|
40537
40969
|
const [consumedActionButtonIndexes, setConsumedActionButtonIndexes] = useState(() => new Set());
|
|
40538
40970
|
const isReportIssueFeedbackMode = feedbackMode === 'report_issue';
|
|
40539
|
-
const ongoingToolCallChips = useMemo(() => buildOngoingToolCallChips(message.ongoingToolCalls, teammates, teamAgentProfiles), [message.ongoingToolCalls, teammates, teamAgentProfiles]);
|
|
40540
|
-
const finalToolCallChips = useMemo(() => buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teammates, teamAgentProfiles
|
|
40971
|
+
const ongoingToolCallChips = useMemo(() => buildOngoingToolCallChips(message.ongoingToolCalls, teammates, teamAgentProfiles, chatLocale, toolTitles, chatUiTranslations), [message.ongoingToolCalls, teammates, teamAgentProfiles, chatLocale, toolTitles, chatUiTranslations]);
|
|
40972
|
+
const finalToolCallChips = useMemo(() => buildFinalToolCallChips(completedToolCalls, transitiveToolCalls, teammates, teamAgentProfiles, chatLocale, toolTitles, chatUiTranslations), [
|
|
40973
|
+
completedToolCalls,
|
|
40974
|
+
transitiveToolCalls,
|
|
40975
|
+
teammates,
|
|
40976
|
+
teamAgentProfiles,
|
|
40977
|
+
chatLocale,
|
|
40978
|
+
toolTitles,
|
|
40979
|
+
chatUiTranslations,
|
|
40980
|
+
]);
|
|
40541
40981
|
const toolCallChips = isComplete ? finalToolCallChips : ongoingToolCallChips;
|
|
40542
40982
|
const toolCallChipCount = toolCallChips.length;
|
|
40543
40983
|
const renderableButtons = useMemo(() => buttons.reduce((nextButtons, button, buttonIndex) => {
|
|
40544
40984
|
if (button.type === 'message') {
|
|
40545
|
-
if (onMessage) {
|
|
40985
|
+
if (onQuickMessageButton || onMessage) {
|
|
40546
40986
|
nextButtons.push({ button, buttonIndex });
|
|
40547
40987
|
}
|
|
40548
40988
|
return nextButtons;
|
|
@@ -40552,11 +40992,103 @@ const ChatMessageItem = memo(
|
|
|
40552
40992
|
}
|
|
40553
40993
|
nextButtons.push({ button, buttonIndex });
|
|
40554
40994
|
return nextButtons;
|
|
40555
|
-
}, []), [buttons, consumedActionButtonIndexes, onActionButton, onMessage]);
|
|
40995
|
+
}, []), [buttons, consumedActionButtonIndexes, onActionButton, onMessage, onQuickMessageButton]);
|
|
40556
40996
|
const shouldShowButtons = isLastMessage && renderableButtons.length > 0;
|
|
40557
40997
|
const speechPlaybackEnabled = isSpeechPlaybackEnabled !== null && isSpeechPlaybackEnabled !== void 0 ? isSpeechPlaybackEnabled : true;
|
|
40558
40998
|
const shouldShowPlayButton = speechPlaybackEnabled && trimmedMessageContent.length > 0;
|
|
40559
40999
|
const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
|
|
41000
|
+
const messageActionsLayout = isAgentArticleMode ? 'article-footer' : 'bubble-overlay';
|
|
41001
|
+
const shouldRenderCopyAndPlayControls = Boolean(isCopyButtonEnabled && isComplete);
|
|
41002
|
+
const shouldRenderFeedbackControls = Boolean(isFeedbackEnabled && feedbackMode !== 'off' && isComplete);
|
|
41003
|
+
const shouldRenderArticleActionsBar = messageActionsLayout === 'article-footer' &&
|
|
41004
|
+
(shouldRenderCopyAndPlayControls || shouldRenderFeedbackControls);
|
|
41005
|
+
/**
|
|
41006
|
+
* Renders the optional message utility buttons used for copy/read actions.
|
|
41007
|
+
*
|
|
41008
|
+
* @returns Message utility controls or `null` when disabled.
|
|
41009
|
+
* @private
|
|
41010
|
+
*/
|
|
41011
|
+
const renderMessageReadAndCopyControls = () => {
|
|
41012
|
+
if (!shouldRenderCopyAndPlayControls) {
|
|
41013
|
+
return null;
|
|
41014
|
+
}
|
|
41015
|
+
return (jsx("div", { className: classNames(styles$5.copyButtonContainer, messageActionsLayout === 'article-footer' && styles$5.articleModeMessageControls), children: jsxs("div", { className: styles$5.messageControlGroup, children: [shouldShowPlayButton && (jsx("button", { type: "button", className: styles$5.playButton, title: playButtonTitle, "aria-label": playButtonTitle, onClick: (event) => {
|
|
41016
|
+
event.stopPropagation();
|
|
41017
|
+
void handlePlayMessage();
|
|
41018
|
+
}, disabled: isAudioLoading, children: isAudioLoading ? (jsx("span", { className: styles$5.playButtonSpinner, "aria-hidden": "true" })) : isAudioPlaying ? (jsx(Pause, { className: styles$5.playButtonIcon, "aria-hidden": "true" })) : (jsx(Play, { className: styles$5.playButtonIcon, "aria-hidden": "true" })) })), jsxs("button", { className: styles$5.copyButton, title: "Copy message", onClick: async (e) => {
|
|
41019
|
+
e.stopPropagation();
|
|
41020
|
+
if (navigator.clipboard && window.ClipboardItem) {
|
|
41021
|
+
const clipboardItems = {};
|
|
41022
|
+
if (contentWithoutButtonsRef.current) {
|
|
41023
|
+
const html = contentWithoutButtonsRef.current.innerHTML;
|
|
41024
|
+
clipboardItems['text/html'] = new Blob([html], {
|
|
41025
|
+
type: 'text/html',
|
|
41026
|
+
});
|
|
41027
|
+
}
|
|
41028
|
+
if (contentWithoutButtonsRef.current) {
|
|
41029
|
+
const plain = contentWithoutButtonsRef.current.innerText;
|
|
41030
|
+
clipboardItems['text/plain'] = new Blob([plain], {
|
|
41031
|
+
type: 'text/plain',
|
|
41032
|
+
});
|
|
41033
|
+
}
|
|
41034
|
+
await navigator.clipboard.write([new window.ClipboardItem(clipboardItems)]);
|
|
41035
|
+
setCopied(true);
|
|
41036
|
+
setTimeout(() => setCopied(false), 2000);
|
|
41037
|
+
// Tooltip positioning logic
|
|
41038
|
+
setTimeout(() => {
|
|
41039
|
+
const tooltip = copyTooltipRef.current;
|
|
41040
|
+
if (tooltip) {
|
|
41041
|
+
const rect = tooltip.getBoundingClientRect();
|
|
41042
|
+
if (rect.left < 8) {
|
|
41043
|
+
setTooltipAlign('left');
|
|
41044
|
+
}
|
|
41045
|
+
else if (rect.right > window.innerWidth - 8) {
|
|
41046
|
+
setTooltipAlign('right');
|
|
41047
|
+
}
|
|
41048
|
+
else {
|
|
41049
|
+
setTooltipAlign('center');
|
|
41050
|
+
}
|
|
41051
|
+
}
|
|
41052
|
+
}, 10);
|
|
41053
|
+
if (typeof onCopy === 'function') {
|
|
41054
|
+
onCopy();
|
|
41055
|
+
}
|
|
41056
|
+
}
|
|
41057
|
+
else {
|
|
41058
|
+
throw new Error(`Your browser does not support copying to clipboard: navigator.clipboard && window.ClipboardItem.`);
|
|
41059
|
+
}
|
|
41060
|
+
}, children: [jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", children: [jsx("rect", { x: "7", y: "7", width: "10", height: "14", rx: "2", fill: "#fff", stroke: "#bbb", strokeWidth: "1.5" }), jsx("rect", { x: "3", y: "3", width: "10", height: "14", rx: "2", fill: "#fff", stroke: "#bbb", strokeWidth: "1.5" })] }), copied && (jsx("span", { ref: copyTooltipRef, className: styles$5.copiedTooltip +
|
|
41061
|
+
(tooltipAlign === 'left'
|
|
41062
|
+
? ' ' + styles$5.copiedTooltipLeft
|
|
41063
|
+
: tooltipAlign === 'right'
|
|
41064
|
+
? ' ' + styles$5.copiedTooltipRight
|
|
41065
|
+
: ''), children: "Copied!" }))] })] }) }));
|
|
41066
|
+
};
|
|
41067
|
+
/**
|
|
41068
|
+
* Renders feedback controls for one completed message.
|
|
41069
|
+
*
|
|
41070
|
+
* @returns Feedback controls or `null` when disabled.
|
|
41071
|
+
* @private
|
|
41072
|
+
*/
|
|
41073
|
+
const renderMessageFeedbackControls = () => {
|
|
41074
|
+
if (!shouldRenderFeedbackControls) {
|
|
41075
|
+
return null;
|
|
41076
|
+
}
|
|
41077
|
+
return (jsx("div", { className: classNames(styles$5.rating, messageActionsLayout === 'article-footer' && styles$5.articleModeRating), onMouseEnter: isReportIssueFeedbackMode
|
|
41078
|
+
? undefined
|
|
41079
|
+
: () => {
|
|
41080
|
+
setExpandedMessageId(message.id || message.content /* <-[💃] */);
|
|
41081
|
+
}, onMouseLeave: isReportIssueFeedbackMode
|
|
41082
|
+
? undefined
|
|
41083
|
+
: () => {
|
|
41084
|
+
setExpandedMessageId(null);
|
|
41085
|
+
setLocalHoveredRating(0);
|
|
41086
|
+
}, children: isReportIssueFeedbackMode ? (jsx("button", { type: "button", onClick: () => handleRating(message, 1), className: styles$5.feedbackIssueButton, "aria-label": (feedbackTranslations === null || feedbackTranslations === void 0 ? void 0 : feedbackTranslations.reportIssueButtonAriaLabel) || 'Report issue with this response', title: (feedbackTranslations === null || feedbackTranslations === void 0 ? void 0 : feedbackTranslations.reportIssueButtonTitle) || 'Report issue', children: "\u26A0" })) : isExpanded ? ([1, 2, 3, 4, 5].map((star) => (jsx("span", { onClick: () => handleRating(message, star), onMouseEnter: () => setLocalHoveredRating(star), className: classNames(styles$5.ratingStar, star <= (localHoveredRating || currentRating || 0) && styles$5.active), style: {
|
|
41087
|
+
'--star-inactive-color': mode === 'LIGHT' ? '#ccc' : '#555',
|
|
41088
|
+
}, children: "\u2B50" }, star)))) : (jsx("span", { onClick: () => handleRating(message, currentRating || 1), className: classNames(styles$5.ratingStar, currentRating && styles$5.active), style: {
|
|
41089
|
+
'--star-inactive-color': mode === 'LIGHT' ? '#888' : '#666',
|
|
41090
|
+
}, children: "\u2B50" })) }));
|
|
41091
|
+
};
|
|
40560
41092
|
/**
|
|
40561
41093
|
* Executes one quick action button and marks it consumed after a successful run.
|
|
40562
41094
|
*
|
|
@@ -40727,7 +41259,7 @@ const ChatMessageItem = memo(
|
|
|
40727
41259
|
}
|
|
40728
41260
|
toolCallChipCountRef.current = toolCallChipCount;
|
|
40729
41261
|
}, [soundSystem, toolCallChipCount]);
|
|
40730
|
-
return (jsxs("div", { className: classNames(styles$5.chatMessage, isMe && styles$5.isMe, !isComplete && styles$5.isNotCompleteMessage, hasMapSegment && styles$5.messageWithMap, chatCssClassNames.chatMessage, isMe ? chatCssClassNames.userMessage : chatCssClassNames.agentResponse), onClick: () => {
|
|
41262
|
+
return (jsxs("div", { className: classNames(styles$5.chatMessage, isMe && styles$5.isMe, !isComplete && styles$5.isNotCompleteMessage, hasMapSegment && styles$5.messageWithMap, isAgentArticleMode && styles$5.articleModeAgentMessage, chatCssClassNames.chatMessage, isMe ? chatCssClassNames.userMessage : chatCssClassNames.agentResponse), onClick: () => {
|
|
40731
41263
|
console.group('💬', message.content);
|
|
40732
41264
|
console.info('message', message);
|
|
40733
41265
|
console.info('participant', participant);
|
|
@@ -40735,7 +41267,7 @@ const ChatMessageItem = memo(
|
|
|
40735
41267
|
console.info('participant avatarSrc', avatarSrc);
|
|
40736
41268
|
console.info('participant color', { color, colorOfText });
|
|
40737
41269
|
console.groupEnd();
|
|
40738
|
-
}, children: [avatarSrc && (jsxs("div", { ref: avatarRef, className: classNames(styles$5.avatar, chatCssClassNames.messageAvatar, isMe ? chatCssClassNames.userAvatar : chatCssClassNames.agentAvatar), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: showTooltip, children: [jsx("div", { style: {
|
|
41270
|
+
}, children: [avatarSrc && (jsxs("div", { ref: avatarRef, className: classNames(styles$5.avatar, isAgentArticleMode && styles$5.articleModeAgentAvatar, chatCssClassNames.messageAvatar, isMe ? chatCssClassNames.userAvatar : chatCssClassNames.agentAvatar), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: showTooltip, children: [jsx("div", { style: {
|
|
40739
41271
|
width: '100%',
|
|
40740
41272
|
height: '100%',
|
|
40741
41273
|
aspectRatio: '1 / 1',
|
|
@@ -40746,62 +41278,10 @@ const ChatMessageItem = memo(
|
|
|
40746
41278
|
borderRadius: '50%',
|
|
40747
41279
|
backgroundPosition: '50% 20%',
|
|
40748
41280
|
'--avatar-bg-color': color.toHex(), // <- TODO: Maybe remove these deprecated CSS variables
|
|
40749
|
-
} }), isAvatarTooltipVisible && (participant === null || participant === void 0 ? void 0 : participant.agentSource) && avatarTooltipPosition && (jsx(AvatarProfileTooltip, { ref: tooltipRef, agentSource: participant.agentSource, position: avatarTooltipPosition }))] })), jsxs("div", { className: classNames(styles$5.messageStack, chatCssClassNames.messageStack), children: [shouldShowParticipantLabel && participantLabel && (jsx("div", { className: styles$5.participantLabel, children: participantLabel })), jsxs("div", { className: classNames(styles$5.messageText, chatCssClassNames.messageContent), style: {
|
|
40750
|
-
'--message-bg-color': color.toHex(),
|
|
40751
|
-
'--message-text-color': colorOfText.toHex(),
|
|
40752
|
-
}, children: [
|
|
40753
|
-
event.stopPropagation();
|
|
40754
|
-
void handlePlayMessage();
|
|
40755
|
-
}, disabled: isAudioLoading, children: isAudioLoading ? (jsx("span", { className: styles$5.playButtonSpinner, "aria-hidden": "true" })) : isAudioPlaying ? (jsx(Pause, { className: styles$5.playButtonIcon, "aria-hidden": "true" })) : (jsx(Play, { className: styles$5.playButtonIcon, "aria-hidden": "true" })) })), jsxs("button", { className: styles$5.copyButton, title: "Copy message", onClick: async (e) => {
|
|
40756
|
-
e.stopPropagation();
|
|
40757
|
-
if (navigator.clipboard && window.ClipboardItem) {
|
|
40758
|
-
const clipboardItems = {};
|
|
40759
|
-
if (contentWithoutButtonsRef.current) {
|
|
40760
|
-
const html = contentWithoutButtonsRef.current.innerHTML;
|
|
40761
|
-
clipboardItems['text/html'] = new Blob([html], {
|
|
40762
|
-
type: 'text/html',
|
|
40763
|
-
});
|
|
40764
|
-
}
|
|
40765
|
-
if (contentWithoutButtonsRef.current) {
|
|
40766
|
-
const plain = contentWithoutButtonsRef.current.innerText;
|
|
40767
|
-
clipboardItems['text/plain'] = new Blob([plain], {
|
|
40768
|
-
type: 'text/plain',
|
|
40769
|
-
});
|
|
40770
|
-
}
|
|
40771
|
-
await navigator.clipboard.write([
|
|
40772
|
-
new window.ClipboardItem(clipboardItems),
|
|
40773
|
-
]);
|
|
40774
|
-
setCopied(true);
|
|
40775
|
-
setTimeout(() => setCopied(false), 2000);
|
|
40776
|
-
// Tooltip positioning logic
|
|
40777
|
-
setTimeout(() => {
|
|
40778
|
-
const tooltip = copyTooltipRef.current;
|
|
40779
|
-
if (tooltip) {
|
|
40780
|
-
const rect = tooltip.getBoundingClientRect();
|
|
40781
|
-
if (rect.left < 8) {
|
|
40782
|
-
setTooltipAlign('left');
|
|
40783
|
-
}
|
|
40784
|
-
else if (rect.right > window.innerWidth - 8) {
|
|
40785
|
-
setTooltipAlign('right');
|
|
40786
|
-
}
|
|
40787
|
-
else {
|
|
40788
|
-
setTooltipAlign('center');
|
|
40789
|
-
}
|
|
40790
|
-
}
|
|
40791
|
-
}, 10);
|
|
40792
|
-
if (typeof onCopy === 'function') {
|
|
40793
|
-
onCopy();
|
|
40794
|
-
}
|
|
40795
|
-
}
|
|
40796
|
-
else {
|
|
40797
|
-
throw new Error(`Your browser does not support copying to clipboard: navigator.clipboard && window.ClipboardItem.`);
|
|
40798
|
-
}
|
|
40799
|
-
}, children: [jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", children: [jsx("rect", { x: "7", y: "7", width: "10", height: "14", rx: "2", fill: "#fff", stroke: "#bbb", strokeWidth: "1.5" }), jsx("rect", { x: "3", y: "3", width: "10", height: "14", rx: "2", fill: "#fff", stroke: "#bbb", strokeWidth: "1.5" })] }), copied && (jsx("span", { ref: copyTooltipRef, className: styles$5.copiedTooltip +
|
|
40800
|
-
(tooltipAlign === 'left'
|
|
40801
|
-
? ' ' + styles$5.copiedTooltipLeft
|
|
40802
|
-
: tooltipAlign === 'right'
|
|
40803
|
-
? ' ' + styles$5.copiedTooltipRight
|
|
40804
|
-
: ''), children: "Copied!" }))] })] }) })), message.isVoiceCall && (jsx("div", { className: styles$5.voiceCallIndicator, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" }) }) })), message.content === LOADING_INTERACTIVE_IMAGE ? (jsx(Fragment, {})) : (jsxs(Fragment, { children: [jsx("div", { ref: contentWithoutButtonsRef, children: contentSegments.map((segment, segmentIndex) => {
|
|
41281
|
+
} }), isAvatarTooltipVisible && (participant === null || participant === void 0 ? void 0 : participant.agentSource) && avatarTooltipPosition && (jsx(AvatarProfileTooltip, { ref: tooltipRef, agentSource: participant.agentSource, position: avatarTooltipPosition }))] })), jsxs("div", { className: classNames(styles$5.messageStack, chatCssClassNames.messageStack), children: [shouldShowParticipantLabel && participantLabel && (jsx("div", { className: styles$5.participantLabel, children: participantLabel })), jsxs("div", { className: classNames(styles$5.messageText, isAgentArticleMode && styles$5.articleModeAgentMessageText, chatCssClassNames.messageContent), style: {
|
|
41282
|
+
'--message-bg-color': isAgentArticleMode ? '#ffffff' : color.toHex(),
|
|
41283
|
+
'--message-text-color': isAgentArticleMode ? '#0f172a' : colorOfText.toHex(),
|
|
41284
|
+
}, children: [!shouldRenderArticleActionsBar && renderMessageReadAndCopyControls(), message.isVoiceCall && (jsx("div", { className: styles$5.voiceCallIndicator, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" }) }) })), message.content === LOADING_INTERACTIVE_IMAGE ? (jsx(Fragment, {})) : (jsxs(Fragment, { children: [jsx("div", { ref: contentWithoutButtonsRef, children: contentSegments.map((segment, segmentIndex) => {
|
|
40805
41285
|
if (segment.type === 'text') {
|
|
40806
41286
|
return (jsx(MarkdownContent, { content: segment.content, onCreateAgent: onCreateAgent }, `text-${segmentIndex}`));
|
|
40807
41287
|
}
|
|
@@ -40818,27 +41298,14 @@ const ChatMessageItem = memo(
|
|
|
40818
41298
|
}) }), streamingFeaturePlaceholderKind && (jsx(StreamingFeaturePlaceholder, { kind: streamingFeaturePlaceholderKind }))] })), message.attachments && message.attachments.length > 0 && (jsx("div", { className: styles$5.attachments, children: message.attachments.map((attachment, index) => (jsxs("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", className: styles$5.attachment, title: attachment.name, children: [jsx("span", { className: styles$5.attachmentIcon, children: "\uD83D\uDCCE" }), jsx("span", { className: styles$5.attachmentName, children: attachment.name })] }, index))) })), toolCallChips.length > 0 && (jsx("div", { className: styles$5.toolCallChips, children: toolCallChips.map((chip) => renderToolCallChip(chip, onToolCallClick)) })), citationFootnoteRenderModel.footnotes.length > 0 && (jsx("div", { className: styles$5.citationFootnotes, children: citationFootnoteRenderModel.footnotes.map((footnote) => (jsxs("div", { className: styles$5.citationFootnoteItem, children: [jsx("span", { className: styles$5.citationFootnoteNumber, children: footnote.number }), jsx(SourceChip, { citation: footnote.citation, onClick: onCitationClick, isCitationIdVisible: false })] }, `citation-footnote-${footnote.number}-${footnote.citation.source}`))) })), transitiveCitations.length > 0 && (jsx("div", { className: styles$5.sourceCitations, children: transitiveCitations.map((citation, index) => (jsx(SourceChip, { citation: citation, suffix: `by ${citation.origin.label}`, onClick: onCitationClick }, `team-source-${citation.source}-${index}`))) })), shouldShowButtons && (jsx("div", { className: styles$5.messageButtons, children: renderableButtons.map(({ button, buttonIndex }) => (jsx("button", { type: "button", className: classNames(styles$5.messageButton, button.type === 'action' && styles$5.actionMessageButton), onClick: (event) => {
|
|
40819
41299
|
event.stopPropagation();
|
|
40820
41300
|
if (button.type === 'message') {
|
|
40821
|
-
|
|
40822
|
-
|
|
41301
|
+
const quickMessageHandler = onQuickMessageButton || onMessage;
|
|
41302
|
+
if (quickMessageHandler) {
|
|
41303
|
+
void quickMessageHandler(button.message);
|
|
40823
41304
|
}
|
|
40824
41305
|
return;
|
|
40825
41306
|
}
|
|
40826
41307
|
void handleActionButtonClick(buttonIndex, button.code);
|
|
40827
|
-
}, disabled: button.type === 'action' && pendingActionButtonIndex === buttonIndex, title: button.type === 'action' ? 'Runs an action in your browser' : undefined, children: jsx(MarkdownContent, { content: button.text }) }, buttonIndex))) })),
|
|
40828
|
-
? undefined
|
|
40829
|
-
: () => {
|
|
40830
|
-
setExpandedMessageId(message.id || message.content /* <-[💃] */);
|
|
40831
|
-
}, onMouseLeave: isReportIssueFeedbackMode
|
|
40832
|
-
? undefined
|
|
40833
|
-
: () => {
|
|
40834
|
-
setExpandedMessageId(null);
|
|
40835
|
-
setLocalHoveredRating(0);
|
|
40836
|
-
}, children: isReportIssueFeedbackMode ? (jsx("button", { type: "button", onClick: () => handleRating(message, 1), className: styles$5.feedbackIssueButton, "aria-label": (feedbackTranslations === null || feedbackTranslations === void 0 ? void 0 : feedbackTranslations.reportIssueButtonAriaLabel) ||
|
|
40837
|
-
'Report issue with this response', title: (feedbackTranslations === null || feedbackTranslations === void 0 ? void 0 : feedbackTranslations.reportIssueButtonTitle) || 'Report issue', children: "\u26A0" })) : isExpanded ? ([1, 2, 3, 4, 5].map((star) => (jsx("span", { onClick: () => handleRating(message, star), onMouseEnter: () => setLocalHoveredRating(star), className: classNames(styles$5.ratingStar, star <= (localHoveredRating || currentRating || 0) && styles$5.active), style: {
|
|
40838
|
-
'--star-inactive-color': mode === 'LIGHT' ? '#ccc' : '#555',
|
|
40839
|
-
}, children: "\u2B50" }, star)))) : (jsx("span", { onClick: () => handleRating(message, currentRating || 1), className: classNames(styles$5.ratingStar, currentRating && styles$5.active), style: {
|
|
40840
|
-
'--star-inactive-color': mode === 'LIGHT' ? '#888' : '#666',
|
|
40841
|
-
}, children: "\u2B50" })) }))] }), shouldShowMessageMeta && (jsxs("div", { className: styles$5.messageMeta, title: shouldShowTiming && timingDisplay ? timingDisplay.fullLabel : undefined, children: [lifecycleBadgeLabel && (jsx("span", { className: styles$5.messageLifecycleBadge, children: lifecycleBadgeLabel })), shouldShowTiming && timingDisplay && (jsxs(Fragment, { children: [jsx("span", { className: styles$5.messageTimestamp, children: timingDisplay.timeLabel }), !isMe && timingDisplay.durationLabel && (jsxs("span", { className: styles$5.messageDuration, children: ["(", timingDisplay.durationLabel, " to answer)"] }))] }))] })), message.lifecycleError && (jsx("div", { className: styles$5.messageLifecycleError, children: message.lifecycleError }))] })] }));
|
|
41308
|
+
}, disabled: button.type === 'action' && pendingActionButtonIndex === buttonIndex, title: button.type === 'action' ? 'Runs an action in your browser' : undefined, children: jsx(MarkdownContent, { content: button.text }) }, buttonIndex))) })), !shouldRenderArticleActionsBar && renderMessageFeedbackControls(), shouldRenderArticleActionsBar && (jsxs("div", { className: styles$5.articleModeMessageActions, children: [renderMessageReadAndCopyControls(), renderMessageFeedbackControls()] }))] }), shouldShowMessageMeta && (jsxs("div", { className: styles$5.messageMeta, title: shouldShowTiming && timingDisplay ? timingDisplay.fullLabel : undefined, children: [lifecycleBadgeLabel && (jsx("span", { className: styles$5.messageLifecycleBadge, children: lifecycleBadgeLabel })), shouldShowTiming && timingDisplay && (jsxs(Fragment, { children: [jsx("span", { className: styles$5.messageTimestamp, children: timingDisplay.timeLabel }), !isMe && timingDisplay.durationLabel && (jsxs("span", { className: styles$5.messageDuration, children: ["(", formatAnswerDurationLabel(timingDisplay.durationLabel, timingTranslations), ")"] }))] }))] })), message.lifecycleError && (jsx("div", { className: styles$5.messageLifecycleError, children: message.lifecycleError }))] })] }));
|
|
40842
41309
|
}, (prev, next) => {
|
|
40843
41310
|
var _a, _b, _c, _d;
|
|
40844
41311
|
if (prev.message.id !== next.message.id) {
|
|
@@ -40901,6 +41368,9 @@ const ChatMessageItem = memo(
|
|
|
40901
41368
|
if (prev.onMessage !== next.onMessage) {
|
|
40902
41369
|
return false;
|
|
40903
41370
|
}
|
|
41371
|
+
if (prev.onQuickMessageButton !== next.onQuickMessageButton) {
|
|
41372
|
+
return false;
|
|
41373
|
+
}
|
|
40904
41374
|
if (prev.setExpandedMessageId !== next.setExpandedMessageId) {
|
|
40905
41375
|
return false;
|
|
40906
41376
|
}
|
|
@@ -40934,6 +41404,9 @@ const ChatMessageItem = memo(
|
|
|
40934
41404
|
if (prev.onCitationClick !== next.onCitationClick) {
|
|
40935
41405
|
return false;
|
|
40936
41406
|
}
|
|
41407
|
+
if (prev.CHAT_VISUAL_MODE !== next.CHAT_VISUAL_MODE) {
|
|
41408
|
+
return false;
|
|
41409
|
+
}
|
|
40937
41410
|
return prev.mode === next.mode;
|
|
40938
41411
|
});
|
|
40939
41412
|
ChatMessageItem.displayName = 'ChatMessageItem';
|
|
@@ -40944,7 +41417,7 @@ ChatMessageItem.displayName = 'ChatMessageItem';
|
|
|
40944
41417
|
* @private component of `<Chat/>`
|
|
40945
41418
|
*/
|
|
40946
41419
|
function ChatMessageList(props) {
|
|
40947
|
-
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, feedbackMode, feedbackTranslations, onCopy, onMessage, onActionButton, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, elevenLabsVoiceId, teamAgentProfiles, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
|
|
41420
|
+
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, feedbackMode, feedbackTranslations, timingTranslations, chatLocale, onCopy, onMessage, onActionButton, onQuickMessageButton, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, CHAT_VISUAL_MODE, soundSystem, isSpeechPlaybackEnabled, elevenLabsVoiceId, teamAgentProfiles, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, chatUiTranslations, } = props;
|
|
40948
41421
|
const firstMessage = messages[0];
|
|
40949
41422
|
const firstMsgContent = (firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.content) || '';
|
|
40950
41423
|
const firstMsgLines = firstMsgContent.split(/\r?\n/).length;
|
|
@@ -40956,7 +41429,7 @@ function ChatMessageList(props) {
|
|
|
40956
41429
|
const isLastMessage = index === messages.length - 1;
|
|
40957
41430
|
const isExpanded = expandedMessageId === message.id;
|
|
40958
41431
|
const currentRating = messageRatings.get(message.id || message.content /* <-[??] */) || 0;
|
|
40959
|
-
return (jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, onActionButton: onActionButton, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, teamAgentProfiles: teamAgentProfiles, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, elevenLabsVoiceId: elevenLabsVoiceId }, resolveRenderedMessageKey(message)));
|
|
41432
|
+
return (jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, onActionButton: onActionButton, onQuickMessageButton: onQuickMessageButton, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, timingTranslations: timingTranslations, chatLocale: chatLocale, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, teamAgentProfiles: teamAgentProfiles, CHAT_VISUAL_MODE: CHAT_VISUAL_MODE, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, elevenLabsVoiceId: elevenLabsVoiceId, chatUiTranslations: chatUiTranslations }, resolveRenderedMessageKey(message)));
|
|
40960
41433
|
}), jsx("div", { style: { height: 100 } })] }));
|
|
40961
41434
|
}
|
|
40962
41435
|
/**
|
|
@@ -41107,7 +41580,7 @@ const TOOL_CALL_REPORT_FILENAME_UNSAFE_CHARACTER_PATTERN = /[^a-zA-Z0-9_-]/g;
|
|
|
41107
41580
|
function renderAdvancedToolCallDetails(options) {
|
|
41108
41581
|
const { toolCall } = options;
|
|
41109
41582
|
const header = resolveAdvancedToolCallHeader(options);
|
|
41110
|
-
const payloadSections = createAdvancedToolCallPayloadSections(toolCall);
|
|
41583
|
+
const payloadSections = createAdvancedToolCallPayloadSections(toolCall, options.availableTools);
|
|
41111
41584
|
return (jsxs(Fragment, { children: [jsxs("header", { className: styles$5.toolCallHeader, children: [jsx("span", { className: styles$5.toolCallIcon, "aria-hidden": "true", children: header.emoji }), jsxs("div", { className: styles$5.toolCallHeaderMeta, children: [jsx("p", { className: styles$5.toolCallModalLabel, children: "Advanced" }), jsx("h3", { className: styles$5.toolCallTitle, children: header.title }), jsxs("p", { className: styles$5.toolCallSubtitle, children: [header.subtitle, " \u00B7 ", resolveToolCallState(toolCall).toLowerCase()] })] })] }), jsx("div", { className: styles$5.toolCallGrid, children: payloadSections.map((payloadSection) => (jsxs("section", { className: styles$5.toolCallPanel, children: [jsx("p", { className: styles$5.toolCallPanelTitle, children: payloadSection.title }), renderAdvancedToolCallPayload({
|
|
41112
41585
|
toolCall,
|
|
41113
41586
|
sectionId: payloadSection.id,
|
|
@@ -41127,7 +41600,7 @@ function renderAdvancedToolCallDetails(options) {
|
|
|
41127
41600
|
function createAdvancedToolCallReportMarkdown(options) {
|
|
41128
41601
|
const { toolCall } = options;
|
|
41129
41602
|
const header = resolveAdvancedToolCallHeader(options);
|
|
41130
|
-
const payloadSections = createAdvancedToolCallPayloadSections(toolCall);
|
|
41603
|
+
const payloadSections = createAdvancedToolCallPayloadSections(toolCall, options.availableTools);
|
|
41131
41604
|
const reportLines = [
|
|
41132
41605
|
'# Tool call report',
|
|
41133
41606
|
'',
|
|
@@ -41176,7 +41649,7 @@ function createAdvancedToolCallReportFilename(toolCall) {
|
|
|
41176
41649
|
*/
|
|
41177
41650
|
function resolveAdvancedToolCallHeader(options) {
|
|
41178
41651
|
const { toolCall, toolTitles } = options;
|
|
41179
|
-
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
41652
|
+
const chipletInfo = getToolCallChipletInfo(toolCall, undefined, toolTitles);
|
|
41180
41653
|
const toolMetadata = TOOL_TITLES[toolCall.name];
|
|
41181
41654
|
return {
|
|
41182
41655
|
emoji: (toolMetadata === null || toolMetadata === void 0 ? void 0 : toolMetadata.emoji) || extractLeadingEmoji$1(chipletInfo.text) || '🛠️',
|
|
@@ -41188,10 +41661,11 @@ function resolveAdvancedToolCallHeader(options) {
|
|
|
41188
41661
|
* Builds the shared payload sections shown in advanced view and exported reports.
|
|
41189
41662
|
*
|
|
41190
41663
|
* @param toolCall - Tool call currently selected in the modal.
|
|
41664
|
+
* @param availableTools - Optional list of tools that were available during the turn.
|
|
41191
41665
|
* @returns Ordered list of payload sections.
|
|
41192
41666
|
* @private function of ChatToolCallModal
|
|
41193
41667
|
*/
|
|
41194
|
-
function createAdvancedToolCallPayloadSections(toolCall) {
|
|
41668
|
+
function createAdvancedToolCallPayloadSections(toolCall, availableTools) {
|
|
41195
41669
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
41196
41670
|
const parsedArguments = parseToolCallArguments(toolCall);
|
|
41197
41671
|
const parsedResult = parseToolCallResult(toolCall.result);
|
|
@@ -41205,6 +41679,7 @@ function createAdvancedToolCallPayloadSections(toolCall) {
|
|
|
41205
41679
|
{ id: 'logs', title: 'Streamed logs', payload: (_a = toolCall.logs) !== null && _a !== void 0 ? _a : [] },
|
|
41206
41680
|
{ id: 'result', title: 'Output payload', payload: toolCall.result },
|
|
41207
41681
|
{ id: 'raw-model', title: 'Model payload', payload: toolCall.rawToolCall },
|
|
41682
|
+
{ id: 'available-tools', title: 'Available tools', payload: availableTools !== null && availableTools !== void 0 ? availableTools : [] },
|
|
41208
41683
|
{ id: 'event', title: 'Full event', payload: toolCall },
|
|
41209
41684
|
];
|
|
41210
41685
|
if (isTimeoutToolCallName(toolCall.name)) {
|
|
@@ -41799,11 +42274,9 @@ const DEFAULT_TIMEOUT_SNOOZE_DURATION_MILLISECONDS = 5 * 60 * 1000;
|
|
|
41799
42274
|
* @private internal utility of `<ChatToolCallModal/>`
|
|
41800
42275
|
*/
|
|
41801
42276
|
function renderToolCallClockPanel(options) {
|
|
41802
|
-
const { date, relativeLabel, timezoneLabel } = options;
|
|
41803
|
-
|
|
41804
|
-
|
|
41805
|
-
minute: '2-digit',
|
|
41806
|
-
}) }), jsx("div", { className: styles$5.toolCallClockSecondary, children: date.toLocaleDateString() }), relativeLabel && jsxs("div", { className: styles$5.toolCallClockMeta, children: ["(", relativeLabel, ")"] }), timezoneLabel && jsx("div", { className: styles$5.toolCallClockMeta, children: timezoneLabel })] })] }));
|
|
42277
|
+
const { date, relativeLabel, timezoneLabel, locale } = options;
|
|
42278
|
+
const formattedDateTime = formatToolCallDateTime(date, { locale });
|
|
42279
|
+
return (jsxs("div", { className: styles$5.toolCallClockPanel, children: [jsx(ClockIcon, { date: date, size: 150 }), jsxs("div", { className: styles$5.toolCallClockLabels, children: [jsx("div", { className: styles$5.toolCallClockPrimary, children: formattedDateTime.localTimeLabel }), jsx("div", { className: styles$5.toolCallClockSecondary, children: formattedDateTime.localDateLabel }), relativeLabel && jsxs("div", { className: styles$5.toolCallClockMeta, children: ["(", relativeLabel, ")"] }), timezoneLabel && jsx("div", { className: styles$5.toolCallClockMeta, children: timezoneLabel })] })] }));
|
|
41807
42280
|
}
|
|
41808
42281
|
/**
|
|
41809
42282
|
* Copies one quick action command to clipboard when supported.
|
|
@@ -41948,7 +42421,7 @@ function renderRunBrowserToolCall(options) {
|
|
|
41948
42421
|
* @private function of ChatToolCallModal
|
|
41949
42422
|
*/
|
|
41950
42423
|
function renderToolCallDetails(options) {
|
|
41951
|
-
const { toolCall, toolTitles, agentParticipant, buttonColor, onRequestAdvancedView } = options;
|
|
42424
|
+
const { toolCall, toolTitles, agentParticipant, buttonColor, onRequestAdvancedView, locale, chatUiTranslations } = options;
|
|
41952
42425
|
const resultRaw = parseToolCallResult(toolCall.result);
|
|
41953
42426
|
const args = parseToolCallArguments(toolCall);
|
|
41954
42427
|
const toolCallDate = getToolCallTimestamp(toolCall);
|
|
@@ -42013,14 +42486,30 @@ function renderToolCallDetails(options) {
|
|
|
42013
42486
|
const timeResultDate = getToolCallResultDate(resultRaw);
|
|
42014
42487
|
const displayDate = timeResultDate || toolCallDate;
|
|
42015
42488
|
const isValidDate = !!displayDate && !isNaN(displayDate.getTime());
|
|
42016
|
-
const
|
|
42017
|
-
|
|
42489
|
+
const toolCallDateLabels = toolCallDate
|
|
42490
|
+
? formatToolCallDateTime(toolCallDate, { locale, currentDate: new Date() })
|
|
42491
|
+
: null;
|
|
42492
|
+
const relativeLabel = (toolCallDateLabels === null || toolCallDateLabels === void 0 ? void 0 : toolCallDateLabels.relativeTimeLabel) && (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeRelativeLabel)
|
|
42493
|
+
? formatToolCallTranslationTemplate(chatUiTranslations.toolCallTimeRelativeLabel, {
|
|
42494
|
+
relative: toolCallDateLabels.relativeTimeLabel,
|
|
42495
|
+
})
|
|
42496
|
+
: (toolCallDateLabels === null || toolCallDateLabels === void 0 ? void 0 : toolCallDateLabels.relativeTimeLabel)
|
|
42497
|
+
? formatToolCallTranslationTemplate('Called {relative}', {
|
|
42498
|
+
relative: toolCallDateLabels.relativeTimeLabel,
|
|
42499
|
+
})
|
|
42500
|
+
: null;
|
|
42501
|
+
const timezoneArg = typeof args.timezone === 'string' && args.timezone.trim() ? args.timezone.trim() : null;
|
|
42502
|
+
const timezoneLabel = timezoneArg
|
|
42503
|
+
? `${(chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutTimezoneLabel) || 'Timezone:'} ${timezoneArg}`
|
|
42504
|
+
: null;
|
|
42505
|
+
return (jsxs(Fragment, { children: [jsxs("div", { className: styles$5.searchModalHeader, children: [jsx("span", { className: styles$5.searchModalIcon, children: "\u23F0" }), jsx("h3", { className: styles$5.searchModalQuery, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeTitle) || 'Time at call' })] }), jsxs("div", { className: styles$5.searchModalContent, children: [isValidDate && displayDate ? (renderToolCallClockPanel({
|
|
42018
42506
|
date: displayDate,
|
|
42019
42507
|
relativeLabel,
|
|
42020
|
-
timezoneLabel
|
|
42021
|
-
|
|
42022
|
-
|
|
42023
|
-
|
|
42508
|
+
timezoneLabel,
|
|
42509
|
+
locale,
|
|
42510
|
+
})) : (jsx("p", { className: styles$5.toolCallEmpty, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeUnknown) || 'Unknown time' })), jsxs("div", { className: styles$5.toolCallDetails, children: [jsx("p", { children: jsx("strong", { children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeTimestampLabel) || 'Timestamp of call:' }) }), jsx("div", { className: styles$5.toolCallDataContainer, children: jsx("pre", { className: styles$5.toolCallData, children: (toolCallDateLabels === null || toolCallDateLabels === void 0 ? void 0 : toolCallDateLabels.localDateTimeLabel) ||
|
|
42511
|
+
(chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeUnknown) ||
|
|
42512
|
+
'Unknown time' }) })] })] })] }));
|
|
42024
42513
|
}
|
|
42025
42514
|
if (isTimeout) {
|
|
42026
42515
|
const timeoutPresentation = resolveTimeoutToolCallPresentation({
|
|
@@ -42028,36 +42517,42 @@ function renderToolCallDetails(options) {
|
|
|
42028
42517
|
args,
|
|
42029
42518
|
resultRaw,
|
|
42030
42519
|
currentDate: new Date(),
|
|
42520
|
+
locale,
|
|
42031
42521
|
});
|
|
42032
42522
|
const clockDate = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.dueAtDate) || toolCallDate;
|
|
42033
42523
|
const isValidClockDate = !!clockDate && !Number.isNaN(clockDate.getTime());
|
|
42034
42524
|
const title = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.action) === 'cancel'
|
|
42035
42525
|
? timeoutPresentation.status === 'cancelled'
|
|
42036
|
-
? 'Timeout cancelled'
|
|
42037
|
-
: 'Timeout update'
|
|
42038
|
-
: 'Timeout scheduled';
|
|
42526
|
+
? (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutCancelledTitle) || 'Timeout cancelled'
|
|
42527
|
+
: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutUpdateTitle) || 'Timeout update'
|
|
42528
|
+
: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutTitle) || 'Timeout scheduled';
|
|
42039
42529
|
const primarySentence = timeoutPresentation
|
|
42040
|
-
? buildTimeoutToolPrimarySentence(timeoutPresentation)
|
|
42041
|
-
: 'Timeout details are still loading.';
|
|
42042
|
-
const scheduleSentence = timeoutPresentation
|
|
42530
|
+
? buildTimeoutToolPrimarySentence(timeoutPresentation, chatUiTranslations)
|
|
42531
|
+
: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutLoadingMessage) || 'Timeout details are still loading.';
|
|
42532
|
+
const scheduleSentence = timeoutPresentation
|
|
42533
|
+
? buildTimeoutToolScheduleSentence(timeoutPresentation, chatUiTranslations)
|
|
42534
|
+
: null;
|
|
42043
42535
|
const cancelCommand = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.timeoutId) && timeoutPresentation.action !== 'cancel'
|
|
42044
42536
|
? createCancelTimeoutQuickActionCommand(timeoutPresentation.timeoutId)
|
|
42045
42537
|
: null;
|
|
42046
42538
|
const snoozeCommand = createSnoozeTimeoutQuickActionCommand((timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.message) || undefined);
|
|
42539
|
+
const timezoneLine = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localTimezone)
|
|
42540
|
+
? `${(chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutTimezoneLabel) || 'Timezone:'} ${timeoutPresentation.localTimezone}`
|
|
42541
|
+
: null;
|
|
42047
42542
|
return (jsxs(Fragment, { children: [jsxs("div", { className: styles$5.searchModalHeader, children: [jsx("span", { className: styles$5.searchModalIcon, children: "\u23F1\uFE0F" }), jsx("h3", { className: styles$5.searchModalQuery, children: title })] }), jsxs("div", { className: styles$5.searchModalContent, children: [isValidClockDate && clockDate ? (renderToolCallClockPanel({
|
|
42048
42543
|
date: clockDate,
|
|
42049
42544
|
relativeLabel: (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.relativeDueLabel) || null,
|
|
42050
|
-
timezoneLabel:
|
|
42051
|
-
|
|
42052
|
-
|
|
42053
|
-
})) : (jsx("p", { className: styles$5.toolCallEmpty, children: "Scheduled time is unavailable." })), jsxs("div", { className: styles$5.timeoutToolSummary, children: [jsx("p", { className: styles$5.timeoutToolPrimarySentence, children: primarySentence }), scheduleSentence && jsx("p", { className: styles$5.timeoutToolSecondarySentence, children: scheduleSentence }), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localDueDateLabel) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: ["Date: ", timeoutPresentation.localDueDateLabel] })), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.message) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: ["Message: ", timeoutPresentation.message] }))] }), jsxs("div", { className: styles$5.timeoutToolActionRow, role: "group", "aria-label": "Timeout quick actions", children: [jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: () => {
|
|
42545
|
+
timezoneLabel: timezoneLine,
|
|
42546
|
+
locale,
|
|
42547
|
+
})) : (jsx("p", { className: styles$5.toolCallEmpty, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutUnavailableMessage) || 'Scheduled time is unavailable.' })), jsxs("div", { className: styles$5.timeoutToolSummary, children: [jsx("p", { className: styles$5.timeoutToolPrimarySentence, children: primarySentence }), scheduleSentence && jsx("p", { className: styles$5.timeoutToolSecondarySentence, children: scheduleSentence }), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localDueDateLabel) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: [(chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutDateLabel) || 'Date:', ' ', timeoutPresentation.localDueDateLabel] })), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.message) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: [(chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutMessageLabel) || 'Message:', ' ', timeoutPresentation.message] }))] }), jsxs("div", { className: styles$5.timeoutToolActionRow, role: "group", "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutActionGroupLabel) || 'Timeout quick actions', children: [jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: () => {
|
|
42054
42548
|
if (!cancelCommand) {
|
|
42055
42549
|
return;
|
|
42056
42550
|
}
|
|
42057
42551
|
copyTimeoutQuickActionCommand(cancelCommand);
|
|
42058
|
-
}, disabled: !cancelCommand, "aria-label":
|
|
42552
|
+
}, disabled: !cancelCommand, "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutCancelAriaLabel) || 'Cancel timeout', children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutCancelButton) || 'Cancel' }), jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: () => {
|
|
42059
42553
|
copyTimeoutQuickActionCommand(snoozeCommand);
|
|
42060
|
-
}, "aria-label":
|
|
42554
|
+
}, "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutSnoozeAriaLabel) || 'Snooze timeout', children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutSnoozeButton) || 'Snooze' }), onRequestAdvancedView && (jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: onRequestAdvancedView, "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutViewAdvancedAriaLabel) ||
|
|
42555
|
+
'View advanced timeout details', children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallTimeoutViewAdvancedButton) || 'View advanced' }))] })] })] }));
|
|
42061
42556
|
}
|
|
42062
42557
|
if (isEmail) {
|
|
42063
42558
|
const to = args.to || [];
|
|
@@ -42073,7 +42568,7 @@ function renderToolCallDetails(options) {
|
|
|
42073
42568
|
const status = typeof (emailResult === null || emailResult === void 0 ? void 0 : emailResult.status) === 'string' ? emailResult.status : null;
|
|
42074
42569
|
return (jsxs(Fragment, { children: [jsxs("div", { className: classNames(styles$5.searchModalHeader, styles$5.emailModalHeader), children: [jsx("span", { className: styles$5.searchModalIcon, children: jsx(EmailIcon, { size: 26 }) }), jsxs("div", { className: styles$5.emailHeaderText, children: [jsx("span", { className: styles$5.emailHeaderLabel, children: "Email" }), jsx("h3", { className: styles$5.searchModalQuery, children: subject })] })] }), jsx("div", { className: styles$5.searchModalContent, children: jsxs("div", { className: styles$5.emailContainer, children: [jsxs("div", { className: styles$5.emailMetadata, children: [jsxs("div", { className: styles$5.emailField, children: [jsx("strong", { children: "From:" }), jsx("span", { className: styles$5.emailRecipients, children: from })] }), jsxs("div", { className: styles$5.emailField, children: [jsx("strong", { children: "To:" }), jsx("span", { className: styles$5.emailRecipients, children: recipients.join(', ') })] }), ccRecipients.length > 0 && (jsxs("div", { className: styles$5.emailField, children: [jsx("strong", { children: "CC:" }), jsx("span", { className: styles$5.emailRecipients, children: ccRecipients.join(', ') })] })), jsxs("div", { className: styles$5.emailField, children: [jsx("strong", { children: "Subject:" }), jsx("span", { children: subject })] }), status && (jsxs("div", { className: styles$5.emailField, children: [jsx("strong", { children: "Status:" }), jsx("span", { className: styles$5.emailStatus, children: status })] }))] }), jsxs("div", { className: styles$5.emailBody, children: [jsx("strong", { children: "Message:" }), jsx("div", { className: styles$5.emailBodyContent, children: jsx(MarkdownContent, { content: body }) })] })] }) })] }));
|
|
42075
42570
|
}
|
|
42076
|
-
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
42571
|
+
const chipletInfo = getToolCallChipletInfo(toolCall, locale, toolTitles, chatUiTranslations);
|
|
42077
42572
|
const toolMetadata = TOOL_TITLES[toolCall.name];
|
|
42078
42573
|
const headerEmoji = (toolMetadata === null || toolMetadata === void 0 ? void 0 : toolMetadata.emoji) || extractLeadingEmoji(chipletInfo.text) || '🛠️';
|
|
42079
42574
|
const headerTitle = (toolTitles === null || toolTitles === void 0 ? void 0 : toolTitles[toolCall.name]) || (toolMetadata === null || toolMetadata === void 0 ? void 0 : toolMetadata.title) || chipletInfo.text || toolCall.name;
|
|
@@ -42765,7 +43260,7 @@ function TeamToolCallModalContent(options) {
|
|
|
42765
43260
|
},
|
|
42766
43261
|
];
|
|
42767
43262
|
return (jsxs(Fragment, { children: [jsx("div", { className: classNames(styles$5.searchModalHeader, styles$5.teamModalHeader), children: jsxs("div", { className: styles$5.teamHeaderParticipants, children: [jsx(TeamHeaderProfile, { label: resolvedAgentLabel, avatarSrc: resolvedAgentAvatar, fallbackColor: resolvedAgentHeaderColor }), jsx("span", { className: styles$5.teamHeaderDivider, children: "talking with" }), jsx(TeamHeaderProfile, { label: resolvedTeammateLabel, avatarSrc: resolvedTeammateAvatar, fallbackColor: "#0ea5e9", href: teammateLink })] }) }), jsxs("div", { className: styles$5.searchModalContent, children: [messages.length > 0 ? (jsx("div", { className: styles$5.teamChatContainer, children: jsx(MockedChat, { title: `Chat between ${resolvedAgentLabel} and ${resolvedTeammateLabel}`, messages: messages, participants: participants, isResettable: false, isPausable: false, isSaveButtonEnabled: false, isCopyButtonEnabled: false, visual: "STANDALONE", delayConfig: FAST_FLOW }) })) : (jsx("div", { className: styles$5.noResults, children: "No teammate conversation available." })), (hasTeamToolCalls || hasTeamCitations) && (jsxs("div", { className: styles$5.teamToolCallSection, children: [hasTeamToolCalls && (jsxs("div", { className: styles$5.teamToolCallGroup, children: [jsx("div", { className: styles$5.teamToolCallHeading, children: "Actions" }), jsx("div", { className: styles$5.teamToolCallChips, children: teamToolCalls.map((toolCallEntry, index) => {
|
|
42768
|
-
const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall);
|
|
43263
|
+
const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall, undefined, toolTitles);
|
|
42769
43264
|
const chipletText = buildToolCallChipText(chipletInfo);
|
|
42770
43265
|
return (jsxs("button", { className: styles$5.completedToolCall, onClick: () => {
|
|
42771
43266
|
onSelectTeamToolCall(toolCallEntry);
|
|
@@ -42784,7 +43279,7 @@ function TeamToolCallModalContent(options) {
|
|
|
42784
43279
|
* @private component of `<Chat/>`
|
|
42785
43280
|
*/
|
|
42786
43281
|
function ChatToolCallModal(props) {
|
|
42787
|
-
const { isOpen, toolCall, toolCallIdentity, onClose, toolTitles, agentParticipant, buttonColor, teamAgentProfiles, } = props;
|
|
43282
|
+
const { isOpen, toolCall, toolCallIdentity, onClose, toolTitles, agentParticipant, buttonColor, teamAgentProfiles, chatUiTranslations, locale, availableTools, } = props;
|
|
42788
43283
|
const [teamProfiles, setTeamProfiles] = useState({});
|
|
42789
43284
|
const [selectedTeamToolCall, setSelectedTeamToolCall] = useState(null);
|
|
42790
43285
|
const [viewMode, setViewMode] = useState('simple');
|
|
@@ -42916,6 +43411,7 @@ function ChatToolCallModal(props) {
|
|
|
42916
43411
|
const modalContent = viewMode === 'advanced' ? (renderAdvancedToolCallDetails({
|
|
42917
43412
|
toolCall: focusedToolCall,
|
|
42918
43413
|
toolTitles,
|
|
43414
|
+
availableTools,
|
|
42919
43415
|
})) : (teamResult === null || teamResult === void 0 ? void 0 : teamResult.teammate) ? (jsx(TeamToolCallModalContent, { teamResult: teamResult, toolCallDate: toolCallDate, teamToolCallSummary: teamToolCallSummary, selectedTeamToolCall: selectedTeamToolCall, onSelectTeamToolCall: setSelectedTeamToolCall, onClearSelectedTeamToolCall: () => {
|
|
42920
43416
|
setSelectedTeamToolCall(null);
|
|
42921
43417
|
}, teamProfiles: teamProfiles, toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor })) : (renderToolCallDetails({
|
|
@@ -42926,18 +43422,22 @@ function ChatToolCallModal(props) {
|
|
|
42926
43422
|
onRequestAdvancedView: () => {
|
|
42927
43423
|
setViewMode('advanced');
|
|
42928
43424
|
},
|
|
43425
|
+
locale,
|
|
43426
|
+
chatUiTranslations,
|
|
42929
43427
|
}));
|
|
42930
43428
|
return (jsx("div", { className: styles$5.ratingModal, onClick: (event) => {
|
|
42931
43429
|
if (event.target === event.currentTarget) {
|
|
42932
43430
|
onClose();
|
|
42933
43431
|
}
|
|
42934
|
-
}, children: jsxs("div", { ref: modalDialogRef, className: classNames(styles$5.ratingModalContent, styles$5.toolCallModal), role: "dialog", "aria-modal": "true", "aria-label":
|
|
43432
|
+
}, children: jsxs("div", { ref: modalDialogRef, className: classNames(styles$5.ratingModalContent, styles$5.toolCallModal), role: "dialog", "aria-modal": "true", "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalTitle) || 'Tool call details', tabIndex: -1, children: [jsx("button", { type: "button", className: styles$5.modalCloseButton, onClick: onClose, "aria-label": (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalCloseLabel) || 'Close tool call details', children: jsx(CloseIcon, {}) }), modalContent, jsxs("div", { className: styles$5.toolCallModeFooter, children: [viewMode === 'advanced' && (jsxs(Fragment, { children: [jsx("button", { type: "button", className: styles$5.toolCallModeButton, onClick: () => {
|
|
42935
43433
|
void handleAdvancedToolCallReportExport('clipboard');
|
|
42936
|
-
}, children:
|
|
43434
|
+
}, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalCopyLabel) || 'Copy' }), jsx("button", { type: "button", className: styles$5.toolCallModeButton, onClick: () => {
|
|
42937
43435
|
void handleAdvancedToolCallReportExport('file');
|
|
42938
|
-
}, children:
|
|
43436
|
+
}, children: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalSaveLabel) || 'Save' })] })), jsx("button", { type: "button", className: styles$5.toolCallModeButton, onClick: () => {
|
|
42939
43437
|
setViewMode((previous) => (previous === 'simple' ? 'advanced' : 'simple'));
|
|
42940
|
-
}, children: viewMode === 'simple'
|
|
43438
|
+
}, children: viewMode === 'simple'
|
|
43439
|
+
? (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalAdvancedLabel) || 'Advanced'
|
|
43440
|
+
: (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.toolCallModalSimpleLabel) || 'Simple' })] })] }) }));
|
|
42941
43441
|
}
|
|
42942
43442
|
|
|
42943
43443
|
/**
|
|
@@ -42996,7 +43496,7 @@ function isLatestMessageVisible(chatMessagesElement, messageSelector) {
|
|
|
42996
43496
|
* @public exported from `@promptbook/components`
|
|
42997
43497
|
*/
|
|
42998
43498
|
function Chat(props) {
|
|
42999
|
-
const { title = 'Chat', messages, onChange, onMessage, onActionButton, onReset, resetRequiresConfirmation = true, onFeedback, feedbackMode = 'stars', feedbackTranslations, onFileUpload, speechRecognition, placeholderMessageContent, defaultMessage, enterBehavior, resolveEnterBehavior, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, teamAgentProfiles, visual, effectConfigs, soundSystem, speechRecognitionLanguage, isSpeechPlaybackEnabled = true, elevenLabsVoiceId, } = props;
|
|
43499
|
+
const { title = 'Chat', messages, onChange, onMessage, onActionButton, onQuickMessageButton, onReset, resetRequiresConfirmation = true, onFeedback, feedbackMode = 'stars', feedbackTranslations, timingTranslations, onFileUpload, chatLocale, speechRecognition, placeholderMessageContent, defaultMessage, enterBehavior, resolveEnterBehavior, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, teamAgentProfiles, visual, CHAT_VISUAL_MODE = 'BUBBLE_MODE', effectConfigs, soundSystem, speechRecognitionLanguage, isSpeechPlaybackEnabled = true, elevenLabsVoiceId, chatUiTranslations, } = props;
|
|
43000
43500
|
const buttonColor = useMemo(() => Color.from(buttonColorRaw || '#0066cc'), [buttonColorRaw]);
|
|
43001
43501
|
const agentParticipant = useMemo(() => participants.find((participant) => participant.name === 'AGENT'), [participants]);
|
|
43002
43502
|
const postprocessedMessages = useMemo(() => {
|
|
@@ -43080,6 +43580,27 @@ function Chat(props) {
|
|
|
43080
43580
|
const [selectedCitation, setSelectedCitation] = useState(null);
|
|
43081
43581
|
const [mode] = useState('LIGHT');
|
|
43082
43582
|
const selectedToolCall = useMemo(() => resolveToolCallFromChatMessages(postprocessedMessages, (selectedToolCallState === null || selectedToolCallState === void 0 ? void 0 : selectedToolCallState.identity) || null, (selectedToolCallState === null || selectedToolCallState === void 0 ? void 0 : selectedToolCallState.fallbackToolCall) || null), [postprocessedMessages, selectedToolCallState]);
|
|
43583
|
+
const selectedMessageAvailableTools = useMemo(() => {
|
|
43584
|
+
var _a;
|
|
43585
|
+
const identity = selectedToolCallState === null || selectedToolCallState === void 0 ? void 0 : selectedToolCallState.identity;
|
|
43586
|
+
if (!identity) {
|
|
43587
|
+
return undefined;
|
|
43588
|
+
}
|
|
43589
|
+
for (let index = postprocessedMessages.length - 1; index >= 0; index -= 1) {
|
|
43590
|
+
const message = postprocessedMessages[index];
|
|
43591
|
+
const candidateToolCalls = [
|
|
43592
|
+
...(message.toolCalls || []),
|
|
43593
|
+
...(message.completedToolCalls || []),
|
|
43594
|
+
...(message.ongoingToolCalls || []),
|
|
43595
|
+
];
|
|
43596
|
+
for (const candidateToolCall of candidateToolCalls) {
|
|
43597
|
+
if (getToolCallIdentity(candidateToolCall) === identity) {
|
|
43598
|
+
return ((_a = message.prompt) === null || _a === void 0 ? void 0 : _a.availableTools) || message.availableTools;
|
|
43599
|
+
}
|
|
43600
|
+
}
|
|
43601
|
+
}
|
|
43602
|
+
return undefined;
|
|
43603
|
+
}, [postprocessedMessages, selectedToolCallState]);
|
|
43083
43604
|
useEffect(() => {
|
|
43084
43605
|
handleMessagesChange(isStreamingAgentMessage);
|
|
43085
43606
|
const animationFrame = requestAnimationFrame(() => {
|
|
@@ -43113,66 +43634,11 @@ function Chat(props) {
|
|
|
43113
43634
|
(isSaveButtonEnabled && postprocessedMessages.length !== 0) ||
|
|
43114
43635
|
!!onUseTemplate ||
|
|
43115
43636
|
!!extraActions;
|
|
43116
|
-
const
|
|
43117
|
-
|
|
43118
|
-
const streamingMessageContentRef = useRef(null);
|
|
43119
|
-
useEffect(() => {
|
|
43120
|
-
if (!soundSystem || messages.length === 0) {
|
|
43121
|
-
return;
|
|
43122
|
-
}
|
|
43123
|
-
const lastMessage = messages[messages.length - 1];
|
|
43124
|
-
if (!lastMessage) {
|
|
43125
|
-
return;
|
|
43126
|
-
}
|
|
43127
|
-
if (messages.length > previousMessagesLengthRef.current) {
|
|
43128
|
-
if (lastMessage.sender !== 'USER') {
|
|
43129
|
-
if (lastMessage.isComplete) {
|
|
43130
|
-
/* not await */ soundSystem.play('message_receive');
|
|
43131
|
-
}
|
|
43132
|
-
else {
|
|
43133
|
-
/* not await */ soundSystem.play('message_typing');
|
|
43134
|
-
}
|
|
43135
|
-
}
|
|
43136
|
-
}
|
|
43137
|
-
else if (messages.length === previousMessagesLengthRef.current && lastMessage.sender !== 'USER') {
|
|
43138
|
-
if (lastMessage.isComplete) {
|
|
43139
|
-
/* not await */ soundSystem.play('message_receive');
|
|
43140
|
-
}
|
|
43141
|
-
}
|
|
43142
|
-
previousMessagesLengthRef.current = messages.length;
|
|
43143
|
-
}, [messages, soundSystem]);
|
|
43144
|
-
useEffect(() => {
|
|
43145
|
-
var _a, _b;
|
|
43146
|
-
if (!soundSystem) {
|
|
43147
|
-
streamingMessageIdRef.current = null;
|
|
43148
|
-
streamingMessageContentRef.current = null;
|
|
43149
|
-
return;
|
|
43150
|
-
}
|
|
43151
|
-
if (postprocessedMessages.length === 0) {
|
|
43152
|
-
streamingMessageIdRef.current = null;
|
|
43153
|
-
streamingMessageContentRef.current = null;
|
|
43154
|
-
return;
|
|
43155
|
-
}
|
|
43156
|
-
const lastMessage = postprocessedMessages[postprocessedMessages.length - 1];
|
|
43157
|
-
if (!lastMessage || lastMessage.sender === 'USER' || lastMessage.isComplete) {
|
|
43158
|
-
streamingMessageIdRef.current = null;
|
|
43159
|
-
streamingMessageContentRef.current = null;
|
|
43160
|
-
return;
|
|
43161
|
-
}
|
|
43162
|
-
const lastMessageId = (_a = lastMessage.id) !== null && _a !== void 0 ? _a : null;
|
|
43163
|
-
if (streamingMessageIdRef.current !== lastMessageId) {
|
|
43164
|
-
streamingMessageIdRef.current = lastMessageId;
|
|
43165
|
-
streamingMessageContentRef.current = lastMessage.content;
|
|
43166
|
-
return;
|
|
43167
|
-
}
|
|
43168
|
-
if (streamingMessageContentRef.current !== lastMessage.content) {
|
|
43169
|
-
streamingMessageContentRef.current = lastMessage.content;
|
|
43170
|
-
(_b = soundSystem.vibrate) === null || _b === void 0 ? void 0 : _b.call(soundSystem, 'message_stream_chunk');
|
|
43171
|
-
}
|
|
43172
|
-
}, [postprocessedMessages, soundSystem]);
|
|
43637
|
+
const isConstrainedArticleMode = CHAT_VISUAL_MODE === 'ARTICLE_MODE' && visual === 'FULL_PAGE';
|
|
43638
|
+
useChatCompleteNotification(messages, soundSystem);
|
|
43173
43639
|
return (jsxs(Fragment, { children: [feedbackStatus && (jsx("div", { className: classNames(styles$5.feedbackStatus, feedbackStatus.variant === 'success'
|
|
43174
43640
|
? styles$5.feedbackStatusSuccess
|
|
43175
|
-
: styles$5.feedbackStatusError), "aria-live": "polite", role: "status", children: feedbackStatus.message })), effectConfigs && effectConfigs.length > 0 && (jsx(ChatEffectsSystem, { messages: postprocessedMessages, effectConfigs: effectConfigs, soundSystem: soundSystem })), jsx("div", { className: classNames(className, styles$5.Chat, visual === 'STANDALONE' && styles$5.standaloneVisual, visual === 'FULL_PAGE' && styles$5.fullPageVisual, getChatCssClassName('Chat'), chatCssClassNames.chat), style, children: jsxs("div", { className: classNames(className, styles$5.chatMainFlow, getChatCssClassName('chatMainFlow'), chatCssClassNames.chatMainFlow), children: [children && jsx("div", { className: classNames(styles$5.chatChildren), children: children }), shouldShowScrollToBottom && (jsx("div", { className: styles$5.scrollToBottomContainer, children: jsxs("div", { className: styles$5.scrollToBottomWrapper, children: [jsx(SolidArrowButton, { "data-button-type": "custom", direction: "down", iconSize: 33, className: classNames(styles$5.scrollToBottom, scrollToBottomCssClassName), onClick: handleButtonClick(scrollToBottom), "aria-label": ariaLabel, title: ariaLabel }), badgeLabel && (jsx("span", { className: styles$5.scrollToBottomBadge, "aria-live": "polite", role: "status", children: badgeLabel }))] }) })), isVoiceCalling && (jsx("div", { className: styles$5.voiceCallIndicatorBar, children: jsxs("div", { className: styles$5.voiceCallIndicator, children: [jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" }) }), jsx("span", { children: "Voice call active" }), jsx("div", { className: styles$5.voiceCallPulse })] }) })), jsx(ChatActionsBar, { actionsRef: actionsRef, actionsContainer: actionsContainer, messages: postprocessedMessages, participants: participants, title: title, onReset: onReset, resetRequiresConfirmation: resetRequiresConfirmation, onUseTemplate: onUseTemplate, extraActions: extraActions, saveFormats: saveFormats, isSaveButtonEnabled: isSaveButtonEnabled, shouldFadeActions: shouldFadeActions, shouldDisableActions: shouldDisableActions, onButtonClick: handleButtonClick }), jsx(ChatMessageList, { messages: postprocessedMessages, participants: participants, expandedMessageId: expandedMessageId, messageRatings: messageRatings, setExpandedMessageId: setExpandedMessageId, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, onCopy: handleCopy, onMessage: onMessage, onActionButton: onActionButton, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, teamAgentProfiles: teamAgentProfiles, soundSystem: soundSystem, onToolCallClick: (toolCall) => {
|
|
43641
|
+
: styles$5.feedbackStatusError), "aria-live": "polite", role: "status", children: feedbackStatus.message })), effectConfigs && effectConfigs.length > 0 && (jsx(ChatEffectsSystem, { messages: postprocessedMessages, effectConfigs: effectConfigs, soundSystem: soundSystem })), jsx("div", { className: classNames(className, styles$5.Chat, visual === 'STANDALONE' && styles$5.standaloneVisual, visual === 'FULL_PAGE' && styles$5.fullPageVisual, isConstrainedArticleMode && styles$5.constrainedArticleVisual, getChatCssClassName('Chat'), chatCssClassNames.chat), style, children: jsxs("div", { className: classNames(className, styles$5.chatMainFlow, getChatCssClassName('chatMainFlow'), chatCssClassNames.chatMainFlow), children: [children && jsx("div", { className: classNames(styles$5.chatChildren), children: children }), shouldShowScrollToBottom && (jsx("div", { className: styles$5.scrollToBottomContainer, children: jsxs("div", { className: styles$5.scrollToBottomWrapper, children: [jsx(SolidArrowButton, { "data-button-type": "custom", direction: "down", iconSize: 33, className: classNames(styles$5.scrollToBottom, scrollToBottomCssClassName), onClick: handleButtonClick(scrollToBottom), "aria-label": ariaLabel, title: ariaLabel }), badgeLabel && (jsx("span", { className: styles$5.scrollToBottomBadge, "aria-live": "polite", role: "status", children: badgeLabel }))] }) })), isVoiceCalling && (jsx("div", { className: styles$5.voiceCallIndicatorBar, children: jsxs("div", { className: styles$5.voiceCallIndicator, children: [jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z" }) }), jsx("span", { children: "Voice call active" }), jsx("div", { className: styles$5.voiceCallPulse })] }) })), jsx(ChatActionsBar, { actionsRef: actionsRef, actionsContainer: actionsContainer, messages: postprocessedMessages, participants: participants, title: title, onReset: onReset, resetRequiresConfirmation: resetRequiresConfirmation, onUseTemplate: onUseTemplate, extraActions: extraActions, saveFormats: saveFormats, isSaveButtonEnabled: isSaveButtonEnabled, shouldFadeActions: shouldFadeActions, shouldDisableActions: shouldDisableActions, chatUiTranslations: chatUiTranslations, onButtonClick: handleButtonClick }), jsx(ChatMessageList, { messages: postprocessedMessages, participants: participants, expandedMessageId: expandedMessageId, messageRatings: messageRatings, setExpandedMessageId: setExpandedMessageId, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, timingTranslations: timingTranslations, chatLocale: chatLocale, onCopy: handleCopy, onMessage: onMessage, onActionButton: onActionButton, onQuickMessageButton: onQuickMessageButton, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, teamAgentProfiles: teamAgentProfiles, CHAT_VISUAL_MODE: CHAT_VISUAL_MODE, soundSystem: soundSystem, onToolCallClick: (toolCall) => {
|
|
43176
43642
|
setSelectedToolCallState({
|
|
43177
43643
|
identity: getToolCallIdentity(toolCall),
|
|
43178
43644
|
fallbackToolCall: toolCall,
|
|
@@ -43181,10 +43647,10 @@ function Chat(props) {
|
|
|
43181
43647
|
}, onCitationClick: (citation) => {
|
|
43182
43648
|
setSelectedCitation(citation);
|
|
43183
43649
|
setCitationModalOpen(true);
|
|
43184
|
-
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, elevenLabsVoiceId: elevenLabsVoiceId, chatMessagesClassName: classNames(getChatCssClassName('chatMessages'), chatCssClassNames.chatMessages), hasActions: hasActions }), onMessage && (jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, enterBehavior: enterBehavior, resolveEnterBehavior: resolveEnterBehavior, placeholderMessageContent: placeholderMessageContent, isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: classNames(getChatCssClassName('chatInput'), chatCssClassNames.chatInput) }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, toolCallIdentity: (selectedToolCallState === null || selectedToolCallState === void 0 ? void 0 : selectedToolCallState.identity) || null, onClose: () => {
|
|
43650
|
+
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, elevenLabsVoiceId: elevenLabsVoiceId, chatUiTranslations: chatUiTranslations, chatMessagesClassName: classNames(isConstrainedArticleMode && styles$5.articleModeChatMessages, getChatCssClassName('chatMessages'), chatCssClassNames.chatMessages), hasActions: hasActions }), onMessage && (jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, enterBehavior: enterBehavior, resolveEnterBehavior: resolveEnterBehavior, placeholderMessageContent: placeholderMessageContent || (chatUiTranslations === null || chatUiTranslations === void 0 ? void 0 : chatUiTranslations.inputPlaceholder), isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: classNames(isConstrainedArticleMode && styles$5.articleModeChatInput, getChatCssClassName('chatInput'), chatCssClassNames.chatInput) }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, toolCallIdentity: (selectedToolCallState === null || selectedToolCallState === void 0 ? void 0 : selectedToolCallState.identity) || null, onClose: () => {
|
|
43185
43651
|
setToolCallModalOpen(false);
|
|
43186
43652
|
setSelectedToolCallState(null);
|
|
43187
|
-
}, toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor, teamAgentProfiles: teamAgentProfiles }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
|
|
43653
|
+
}, toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor, teamAgentProfiles: teamAgentProfiles, chatUiTranslations: chatUiTranslations, locale: chatLocale, availableTools: selectedMessageAvailableTools }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, feedbackMode: feedbackMode, feedbackTranslations: feedbackTranslations, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
|
|
43188
43654
|
}
|
|
43189
43655
|
|
|
43190
43656
|
/**
|
|
@@ -43257,6 +43723,9 @@ class ChatPersistence {
|
|
|
43257
43723
|
return serializableMessages.map((message) => ({
|
|
43258
43724
|
...message,
|
|
43259
43725
|
createdAt: message.createdAt,
|
|
43726
|
+
// Clear transient streaming state so stale "Preparing agent" chips are not
|
|
43727
|
+
// shown after a page reload — the streaming session is gone at that point.
|
|
43728
|
+
ongoingToolCalls: message.isComplete === true ? message.ongoingToolCalls : undefined,
|
|
43260
43729
|
}));
|
|
43261
43730
|
}
|
|
43262
43731
|
catch (error) {
|