cfc-ds
Version:
Design System do Conselho Federal de Contabilidade baseado no govbr-ds
588 lines • 275 kB
JavaScript
import { Component, Input, } from '@angular/core';
import { LogoViewMode } from '../../../enums/logo-view-mode.enum';
import { ButtonType } from '../../../enums/button-type.enum';
import { ButtonDensity } from '../../../enums/button-density.enum';
import { SignInType } from '../../../enums/sign-in-type.enum';
import { SignInDensity } from '../../../enums/sign-in-density.enum';
import { AvatarDensity } from '../../../enums/avatar-density.enum';
import { TooltipPlace } from '../../../enums/tooltip-place.enum';
import { HeaderViewMode } from '../../../enums/header-view-mode.enum';
import { InputState } from '../../../enums/input-state.enum';
import { InputDensity } from '../../../enums/input-density.enum';
import { AvatarType } from '../../../enums/avatar-type.enum';
import { DividerMode } from '../../../enums/divider-mode.enum';
import { DividerType } from '../../../enums/divider-type.enum';
import { DividerAxis } from '../../../enums/divider-axis.enum';
import { DividerDensity } from '../../../enums/divider-density.enum';
import { SignInMode } from '../../../enums/sign-in-mode.enum';
import { TimerType } from '../../../enums/timer-type.enum';
import { MessageType } from '../../../enums/message-type.enum';
import { MessageState } from '../../../enums/message-state.enum';
import { CheckboxOptionState } from '../../../enums/checkbox-option-state.enum';
import { CheckboxOptionType } from '../../../enums/checkbox-option-type.enum';
import { LoadingDensity } from '../../../enums/loading-density.enum';
import { ItemType } from '../../../enums/item-type.enum';
import { IllustrationType } from '../../../enums/illustration-type.enum';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
import * as i3 from "@angular/flex-layout/flex";
import * as i4 from "../../../components/avatar/avatar.component";
import * as i5 from "../../../components/breadcrumb/breadcrumb.component";
import * as i6 from "../../../components/button/button.component";
import * as i7 from "../../../components/card/card.component";
import * as i8 from "../../../components/carousel/carousel.component";
import * as i9 from "../../../components/checkboxes/checkboxes.component";
import * as i10 from "../../../components/checkbox-option/checkbox-option.component";
import * as i11 from "../../../components/collapse/collapse.component";
import * as i12 from "../../../components/cookie-bar/cookie-bar.component";
import * as i13 from "../../../components/datetimer-picker/datetimer-picker.component";
import * as i14 from "../../../components/divider/divider.component";
import * as i15 from "../../../components/footer/footer.component";
import * as i16 from "../../../components/header/header.component";
import * as i17 from "../../../components/icon/icon.component";
import * as i18 from "../../../components/input/input.component";
import * as i19 from "../../../components/item/item.component";
import * as i20 from "../../../components/list/list.component";
import * as i21 from "../../../components/loading/loading.component";
import * as i22 from "../../../components/logo/logo.component";
import * as i23 from "../../../components/magic-button/magic-button.component";
import * as i24 from "../../../components/menu/menu.component";
import * as i25 from "../../../components/message/message.component";
import * as i26 from "../../../components/modal/modal.component";
import * as i27 from "../../../components/notification/notification.component";
import * as i28 from "../../../components/notification-panel/notification-panel.component";
import * as i29 from "../../../components/page-content/page-content.component";
import * as i30 from "../../../components/pagination/pagination.component";
import * as i31 from "../../../components/radio/radio.component";
import * as i32 from "../../../components/scrim/scrim.component";
import * as i33 from "../../../components/select/select.component";
import * as i34 from "../../../components/sign-in/sign-in.component";
import * as i35 from "../../../components/skiplink/skiplink.component";
import * as i36 from "../../../components/slider/slider.component";
import * as i37 from "../../../components/switch/switch.component";
import * as i38 from "../../../components/tab/tab.component";
import * as i39 from "../../../components/table/table.component";
import * as i40 from "../../../components/tag/tag.component";
import * as i41 from "../../../components/textarea/textarea.component";
import * as i42 from "../../../components/timer/timer.component";
import * as i43 from "../../../components/tooltip/tooltip.component";
import * as i44 from "../../../components/upload/upload.component";
import * as i45 from "../../../components/wizard/wizard.component";
export class TestComponentComponent {
// inputs and outputs
selectedComponent = {
id: 0,
name: '',
clickEventName: 'setComponent',
isAlready: false
};
// cfc-avatar
avatarType = AvatarType.icon;
avatarName = 'avatar';
avatarDensity = AvatarDensity.medium;
avatarImageUrl = 'https://picsum.photos/id/823/400';
avatarTypes = Object.values(AvatarType);
avatarDensities = Object.values(AvatarDensity);
avatarTooltipPlaces = Object.values(TooltipPlace);
// cfc-breadcrumb
breadcrumbLabel = 'breadcrumb';
breadcrumbLinks = [
{
label: 'Página Inicial',
url: '/',
target: '_blank',
home: true
},
{
label: 'Página Ancestral 01',
url: '#',
target: '_blank'
},
{
label: 'Página Ancestral 02',
url: '#',
target: '_blank'
},
{
label: 'Página Atual',
active: true
}
];
breadcrumbLinksString = JSON.stringify(this.breadcrumbLinks, null, 2);
updateBreadCrumbLinks() {
this.breadcrumbLinks = JSON.parse(this.breadcrumbLinksString);
}
// cfc-button
buttonLabel = 'button';
buttonType = ButtonType.tertiary;
buttonSubmit = false;
buttonCircle = false;
buttonDensity = ButtonDensity.middle;
buttonDisabled = false;
buttonBlock = false;
buttonIcon = 'clock';
buttonActive = false;
buttonInverted = false;
buttonLoading = false;
buttonTypes = Object.values(ButtonType);
buttonDensities = Object.values(ButtonDensity);
buttonClickEvent = () => alert('button event dispared!');
// cfc-card
cardDisabled = false;
cardHover = false;
// cfc-checkbox-option
checkboxOptionState = CheckboxOptionState.default;
checkboxOptionType = CheckboxOptionType.withRightLabel;
checkboxOptionChecked = false;
checkboxOptionOption = {
name: 'OPÇÃO1',
value: 'opção 1',
checked: false
};
checkboxOptionStates = Object.values(CheckboxOptionState);
checkboxOptionTypes = Object.values(CheckboxOptionType);
// cfc-divider
dividerMode = DividerMode.line;
dividerType = DividerType.primary;
dividerAxis = DividerAxis.horizontal;
dividerDensity = DividerDensity.small;
dividerModes = Object.values(DividerMode);
dividerTypes = Object.values(DividerType);
dividerAxises = Object.values(DividerAxis);
dividerDensities = Object.values(DividerDensity);
// cfc-footer
footerProjectName = 'EPC';
footerProjectVersion = '1.0.0';
// cfc-header
headerTitle = 'Testando Header';
headerDescription = 'Esse é apenas um teste';
headerUserName = 'Ana Freitas';
headerHasMenu = false;
headerHasTimer = true;
headerHasBookIcon = true;
headerTimeOut = 30;
headerTimeCritical = 20;
headerLogoViewMode = LogoViewMode.default;
headerViewMode = HeaderViewMode.default;
headerViewModes = Object.values(HeaderViewMode);
headerLogoViewModes = Object.values(LogoViewMode);
headerClickEvent = () => alert('logo is clicked');
// cfc-icon
iconName = 'home';
iconFamilyName = 'fas';
iconClassName = '';
iconSize = '20px';
iconColor = 'blue';
// cfc-input
inputLabel = 'input-label';
inputType = 'text';
inputPlaceholder = 'placeholder';
inputState = InputState.info;
inputDensity = InputDensity.medium;
inputDisabled = false;
inputButtonIcon = 'clock';
inputIsPassword = false;
inputLabelInline = false;
inputIcon = 'user';
inputValue = 'value';
inputStates = Object.values(InputState);
inputDensities = Object.values(InputDensity);
inputOnChange = () => alert('input value is changed');
inputOnInput = () => alert('input value is submited');
inputOnIconClicked = () => alert('input icon os clicked');
inputOnIconSubmited = () => alert('input icon submited the value');
// cfc-item
itemType = ItemType.default;
itemDisabled = false;
itemSelected = false;
itemHasDivider = true;
itemContent = 'Item 1';
itemUrl = 'https://www.google.com';
itemTypes = Object.values(ItemType);
// cfc-loading
loadingDensity = LoadingDensity.medium;
loadingProgress;
loadingDensities = Object.values(LoadingDensity);
// cfc-logo
logoWidth = 100;
logoIsClickable = false;
logoViewMode = LogoViewMode.default;
logoViewModes = Object.values(LogoViewMode);
logoClickEvent = () => alert('a logo está clicável');
// cfc-menu
menuItems = [
{
id: 1,
iconName: 'folder',
name: 'Capacitadora',
list: [
{
iconName: 'laptop',
name: 'Gerenciamento',
url: 'capacitadora/gerenciamento',
clickEventlabel: 'navigate',
},
{
iconName: 'comment',
name: 'Homologação',
url: 'capacitadora/homologacao',
clickEventlabel: 'navigate',
},
],
},
{
id: 2,
iconName: 'folder',
name: 'Minhas Atividades',
list: [
{
iconName: 'list',
name: 'Curso',
url: 'minhas-atividades/curso',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Evento',
url: 'minhas-atividades/evento',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Docência e Orientação',
url: 'minhas-atividades/docencia',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Participação em bancas',
url: 'minhas-atividades/bancas',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Comissão',
url: 'minhas-atividades/comissao',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Curso Exterior',
url: 'minhas-atividades/curso-exterior',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Produção Intelectual',
url: 'minhas-atividades/producao-intelectual',
clickEventlabel: 'navigate',
},
{
iconName: 'list',
name: 'Pós, Grad. e Extensão',
url: 'minhas-atividades/pos-graduacao',
clickEventlabel: 'navigate',
},
],
},
{
id: 3,
iconName: 'folder',
name: 'Homologacao',
list: [
{
iconName: 'clone',
name: 'Curso',
url: 'homologacao/curso',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Evento',
url: 'homologacao/evento',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Docência e Orientação',
url: 'homologacao/docencia',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Participacao em bancas',
url: 'homologacao/banca',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Comissão',
url: 'homologacao/comissao',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Curso Exterior',
url: 'homologacao/exterior',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Produção Intelectual',
url: 'homologacao/producao-intelectual',
clickEventlabel: 'navigate',
},
{
iconName: 'clone',
name: 'Pós, Grad. e Extensão',
url: 'homologacao/pos-graduacao',
clickEventlabel: 'navigate',
},
{
iconName: 'book',
name: 'Câmara Plenária',
url: 'homologacao/camara-plenaria',
clickEventlabel: 'navigate',
},
],
},
{
id: 4,
iconName: 'folder',
name: 'Cadastros',
list: [
{
iconName: 'user-plus',
name: 'Abrangência',
url: 'cadastro/abrangencia',
clickEventlabel: 'navigate',
},
{
iconName: 'calendar-check',
name: 'Área',
url: 'cadastro/area',
clickEventlabel: 'navigate',
},
{
iconName: 'book',
name: 'Área Temática',
url: 'cadastro/area-tematica',
clickEventlabel: 'navigate',
},
{
iconName: 'calendar-check',
name: 'Critério de Avaliação',
url: 'cadastro/criterio-avaliacao',
clickEventlabel: 'navigate',
},
{
iconName: 'calendar-check',
name: 'Formação Acadêmica',
url: 'cadastro/formacao-academica',
clickEventlabel: 'navigate',
},
{
iconName: 'calendar-check',
name: 'Instituição',
url: 'cadastro/instituicao',
clickEventlabel: 'navigate',
},
{
iconName: 'calendar-check',
name: 'Instrutor',
url: 'cadastro/instrutor',
clickEventlabel: 'navigate',
},
{
iconName: 'bars',
name: 'Modalidade',
url: 'cadastro/modalidade',
clickEventlabel: 'navigate',
},
{
iconName: 'briefcase',
name: 'Público Alvo',
url: 'cadastro/publico-alvo',
clickEventlabel: 'navigate',
},
],
},
{
id: 5,
iconName: 'folder',
name: 'Prestação de Contas',
list: [
{
iconName: 'wallet',
name: 'Rel. Atividades',
url: 'prestacao/atividades',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Profissionais',
url: 'prestacao/profissionais',
clickEventlabel: 'navigate',
},
// {
// iconName: 'wallet',
// name: 'Rel. Profissionais 2017',
// url: '#',
// clickEventlabel: 'navigate',
// },
{
iconName: 'wallet',
name: 'Rel. Atividades Físico',
url: 'prestacao/atividades-fisico',
clickEventlabel: 'navigate',
},
],
},
{
id: 6,
iconName: 'folder',
name: 'Relatório Gerencial',
list: [
{
iconName: 'wallet',
name: 'Rel. Prestação de Conta',
url: 'relatorio/prestacao-conta',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Atividades Julgadas',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Atividades por Atas',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Prof. CNAI e CNPC',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Part. por Curso',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Turma por Curso',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Curso por Capac.',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Part. por Evento',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Evento por Cap',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Edição de Evento',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Rel. Edição de Evento',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'folder',
name: 'Relatório de Gestor',
list: [
{
iconName: 'wallet',
name: 'Ativ. Aguard. Análise',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Ativ. em Análise',
url: '#',
clickEventlabel: 'navigate',
},
{
iconName: 'wallet',
name: 'Ativ. Julg. Membro',
url: '#',
clickEventlabel: 'navigate',
},
],
},
],
},
];
// cfc-message
messageType = MessageType.feedback;
messageState = MessageState.warning;
messageMessage = 'Mensagem de alerta.';
messageDescription = 'Descrição da mensagem de alerta';
messageTypes = Object.values(MessageType);
messageStates = Object.values(MessageState);
// cfc-select
selectLabel = 'Select Label';
selectPlaceholder = 'selecione o item';
selectFeedbackMessage = 'feedback auxiliar de controle';
selectFeedbackState = MessageState.warning;
// cfc-sign-in
signInLabel = 'cfc label';
signInType = SignInType.primary;
signInDensity = SignInDensity.middle;
signInMode = SignInMode.internal;
signInDisabled = false;
signInBlock = false;
signInCircle = false;
signInExternalLabel = 'gov.br';
signInExternalImageUrl = 'https://upload.wikimedia.org/wikipedia/commons/c/c1/Google_%22G%22_logo.svg';
signInTypes = Object.values(SignInType);
signInDensities = Object.values(SignInDensity);
signInModes = Object.values(SignInMode);
// cfc-template-error
illustrations = IllustrationType;
// cfc-timer
timerType = TimerType.primary;
timer = 120;
timerCritical = 115;
timerTypes = Object.values(TimerType);
onTimeEvent = () => {
this.timer--;
};
onTimeOutEvent = () => {
alert('encerrou a contagem regressiva');
window.location.reload();
};
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TestComponentComponent, selector: "cfc-test-component", inputs: { selectedComponent: "selectedComponent" }, ngImport: i0, template: "<ng-container *ngIf=\"selectedComponent.name; else noComponentSelected\">\r\n <div\r\n fxFlex=\"grow\"\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"stretch center\"\r\n fxLayoutGap=\"1rem\">\r\n\r\n <h2 style=\"font-weight: 700;\">cfc-{{ selectedComponent.name }}</h2>\r\n\r\n <cfc-avatar\r\n *ngIf=\"selectedComponent.name === 'avatar'\"\r\n [type]=\"avatarType\"\r\n [name]=\"avatarName\"\r\n [density]=\"avatarDensity\"\r\n [imageUrl]=\"avatarImageUrl\"\r\n ></cfc-avatar>\r\n\r\n <cfc-breadcrumb\r\n *ngIf=\"selectedComponent.name === 'breadcrumb'\"\r\n [label]=\"breadcrumbLabel\"\r\n ></cfc-breadcrumb>\r\n\r\n <cfc-button\r\n *ngIf=\"selectedComponent.name === 'button'\"\r\n [label]=\"buttonLabel\"\r\n [type]=\"buttonType\"\r\n [submit]=\"buttonSubmit\"\r\n [circle]=\"buttonCircle\"\r\n [density]=\"buttonDensity\"\r\n [disabled]=\"buttonDisabled\"\r\n [block]=\"buttonBlock\"\r\n [icon]=\"buttonIcon\"\r\n [active]=\"buttonActive\"\r\n [inverted]=\"buttonInverted\"\r\n [loading]=\"buttonLoading\"\r\n (click)=\"buttonClickEvent()\"\r\n ></cfc-button>\r\n\r\n <cfc-card\r\n *ngIf=\"selectedComponent.name === 'card'\"\r\n [disabled]=\"cardDisabled\"\r\n [hover]=\"cardHover\"\r\n ></cfc-card>\r\n\r\n <cfc-carousel\r\n *ngIf=\"selectedComponent.name === 'carousel'\"\r\n ></cfc-carousel>\r\n\r\n <cfc-checkboxes\r\n *ngIf=\"selectedComponent.name === 'checkboxes'\"\r\n ></cfc-checkboxes>\r\n\r\n <cfc-checkbox-option\r\n *ngIf=\"selectedComponent.name === 'checkbox-option'\"\r\n [state]=\"checkboxOptionState\"\r\n [type]=\"checkboxOptionType\"\r\n [option]=\"checkboxOptionOption\"\r\n [(checked)]=\"checkboxOptionChecked\"\r\n ></cfc-checkbox-option>\r\n\r\n <cfc-collapse\r\n *ngIf=\"selectedComponent.name === 'collapse'\"\r\n ></cfc-collapse>\r\n\r\n <cfc-cookie-bar\r\n *ngIf=\"selectedComponent.name === 'cookie-bar'\"\r\n ></cfc-cookie-bar>\r\n\r\n <cfc-datetimer-picker\r\n *ngIf=\"selectedComponent.name === 'datetimer-picker'\"\r\n ></cfc-datetimer-picker>\r\n\r\n <div *ngIf=\"selectedComponent.name === 'divider'\"\r\n [fxLayout]=\"dividerAxis === 'horizontal' ? 'column' : 'row'\">\r\n <div>Uma coisa</div>\r\n <cfc-divider\r\n [mode]=\"dividerMode\"\r\n [type]=\"dividerType\"\r\n [axis]=\"dividerAxis\"\r\n [density]=\"dividerDensity\"\r\n ></cfc-divider>\r\n <div>Ou outra</div>\r\n </div>\r\n\r\n <cfc-footer\r\n *ngIf=\"selectedComponent.name === 'footer'\"\r\n [projectName]=\"footerProjectName\"\r\n [projectVersion]=\"footerProjectVersion\"\r\n ></cfc-footer>\r\n\r\n <cfc-header\r\n *ngIf=\"selectedComponent.name === 'header'\"\r\n [title]=\"headerTitle\"\r\n [description]=\"headerDescription\"\r\n [userName]=\"headerUserName\"\r\n [viewMode]=\"headerViewMode\"\r\n [hasMenu]=\"headerHasMenu\"\r\n [hasTimer]=\"headerHasTimer\"\r\n [hasBookIcon]=\"headerHasBookIcon\"\r\n [logoViewMode]=\"headerLogoViewMode\"\r\n [timeLogout]=\"headerTimeOut\"\r\n [timeCritical]=\"headerTimeCritical\"\r\n (criticalTimeEvent)=\"headerClickEvent()\"\r\n ></cfc-header>\r\n\r\n <cfc-icon\r\n *ngIf=\"selectedComponent.name === 'icon'\"\r\n [iconName]=\"iconName\"\r\n [familyName]=\"iconFamilyName\"\r\n [className]=\"iconClassName\"\r\n [size]=\"iconSize\"\r\n [color]=\"iconColor\"\r\n ></cfc-icon>\r\n\r\n <cfc-input\r\n *ngIf=\"selectedComponent.name === 'input'\"\r\n [disabled]=\"inputDisabled\"\r\n [density]=\"inputDensity\"\r\n [isPassword]=\"inputIsPassword\"\r\n [label]=\"inputLabel\"\r\n [type]=\"inputType\"\r\n [buttonIcon]=\"inputButtonIcon\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [labelInline]=\"inputLabelInline\"\r\n [state]=\"inputState\"\r\n [icon]=\"inputIcon\"\r\n (onChange)=\"inputOnChange()\"\r\n (onInput)=\"inputOnInput()\"\r\n (onIconClicked)=\"inputOnIconClicked()\"\r\n (onIconSubmited)=\"inputOnIconSubmited()\"\r\n ></cfc-input>\r\n\r\n <cfc-item\r\n *ngIf=\"selectedComponent.name === 'item'\"\r\n [type]=\"itemType\"\r\n [disabled]=\"itemDisabled\"\r\n [selected]=\"itemSelected\"\r\n [hasDivider]=\"itemHasDivider\"\r\n [url]=\"itemUrl\">\r\n <span default>\r\n {{ itemContent }}\r\n </span>\r\n <span button>\r\n {{ itemContent }}\r\n </span>\r\n <span link>\r\n {{ itemContent }}\r\n </span>\r\n </cfc-item>\r\n\r\n <cfc-loading\r\n *ngIf=\"selectedComponent.name === 'loading'\"\r\n [density]=\"loadingDensity\"\r\n [progress]=\"loadingProgress\"\r\n ></cfc-loading>\r\n\r\n <cfc-list\r\n *ngIf=\"selectedComponent.name === 'list'\"\r\n [title]=\"'Minha Lista'\">\r\n <cfc-list-item>\r\n Item 1\r\n </cfc-list-item>\r\n <cfc-list-item>\r\n Item 2\r\n </cfc-list-item>\r\n <cfc-list-item>\r\n <strong>Item 3 com conte\u00FAdo personalizado</strong>\r\n </cfc-list-item>\r\n </cfc-list>\r\n\r\n <cfc-logo\r\n *ngIf=\"selectedComponent.name === 'logo'\"\r\n [width]=\"logoWidth\"\r\n [viewMode]=\"logoViewMode\"\r\n [isClickable]=\"logoIsClickable\"\r\n (clickEvent)=\"logoClickEvent\"\r\n ></cfc-logo>\r\n\r\n <cfc-magic-button\r\n *ngIf=\"selectedComponent.name === 'magic-button'\"\r\n ></cfc-magic-button>\r\n\r\n <cfc-menu\r\n *ngIf=\"selectedComponent.name === 'menu'\"\r\n [menuItems]=\"menuItems\"\r\n ></cfc-menu>\r\n\r\n <cfc-message\r\n #message\r\n [hidden]=\"selectedComponent.name !== 'message'\"\r\n [type]=\"messageType\"\r\n [state]=\"messageState\"\r\n [message]=\"messageMessage\"\r\n [description]=\"messageDescription\"\r\n ></cfc-message>\r\n\r\n <cfc-modal\r\n *ngIf=\"selectedComponent.name === 'modal'\"\r\n ></cfc-modal>\r\n\r\n <cfc-notification\r\n *ngIf=\"selectedComponent.name === 'notification'\"\r\n ></cfc-notification>\r\n\r\n <cfc-notification-panel\r\n *ngIf=\"selectedComponent.name === 'notification-panel'\"\r\n ></cfc-notification-panel>\r\n\r\n <cfc-page-content\r\n *ngIf=\"selectedComponent.name === 'page-content'\"\r\n ></cfc-page-content>\r\n\r\n <cfc-pagination\r\n *ngIf=\"selectedComponent.name === 'pagination'\"\r\n ></cfc-pagination>\r\n\r\n <cfc-radio\r\n *ngIf=\"selectedComponent.name === 'radio'\"\r\n ></cfc-radio>\r\n\r\n <cfc-scrim\r\n *ngIf=\"selectedComponent.name === 'scrim'\"\r\n ></cfc-scrim>\r\n\r\n <cfc-select\r\n *ngIf=\"selectedComponent.name === 'select'\"\r\n [placeholder]=\"selectPlaceholder\"\r\n [label]=\"selectLabel\"\r\n [feedbackMessage]=\"selectFeedbackMessage\"\r\n [feedbackState]=\"selectFeedbackState\"\r\n ></cfc-select>\r\n\r\n <cfc-sign-in\r\n *ngIf=\"selectedComponent.name === 'sign-in'\"\r\n [label]=\"signInLabel\"\r\n [type]=\"signInType\"\r\n [density]=\"signInDensity\"\r\n [mode]=\"signInMode\"\r\n [disabled]=\"signInDisabled\"\r\n [block]=\"signInBlock\"\r\n [circle]=\"signInCircle\"\r\n [externalImageUrl]=\"signInExternalImageUrl\"\r\n [externalLabel]=\"signInExternalLabel\"\r\n ></cfc-sign-in>\r\n\r\n <cfc-skiplink\r\n *ngIf=\"selectedComponent.name === 'skiplink'\"\r\n ></cfc-skiplink>\r\n\r\n <cfc-slider\r\n *ngIf=\"selectedComponent.name === 'slider'\"\r\n ></cfc-slider>\r\n\r\n <cfc-switch\r\n *ngIf=\"selectedComponent.name === 'switch'\"\r\n ></cfc-switch>\r\n\r\n <cfc-tab\r\n *ngIf=\"selectedComponent.name === 'tab'\"\r\n ></cfc-tab>\r\n\r\n <cfc-table\r\n *ngIf=\"selectedComponent.name === 'table'\"\r\n ></cfc-table>\r\n\r\n <cfc-tag\r\n *ngIf=\"selectedComponent.name === 'tag'\"\r\n ></cfc-tag>\r\n\r\n <cfc-template-error\r\n *ngIf=\"selectedComponent.name === 'template-error'\"\r\n illustrationUrl=\"assets/illustrations/error19.png\"\r\n [principalText]=\"'Lorem Ipsum'\"\r\n [secondaryText]=\"'Lorem Ipsum'\"\r\n [suportText]=\"'Lorem Ipsum'\"\r\n ></cfc-template-error>\r\n\r\n <cfc-textarea\r\n *ngIf=\"selectedComponent.name === 'textarea'\"\r\n ></cfc-textarea>\r\n\r\n <cfc-timer\r\n *ngIf=\"selectedComponent.name === 'timer'\"\r\n [type]=\"timerType\"\r\n [initialTime]=\"timer\"\r\n [criticalTime]=\"timerCritical\"\r\n (timeEvent)=\"onTimeEvent()\"\r\n (timeOutEvent)=\"onTimeOutEvent()\"\r\n ></cfc-timer>\r\n\r\n <cfc-tooltip\r\n *ngIf=\"selectedComponent.name === 'tooltip'\"\r\n ></cfc-tooltip>\r\n\r\n <cfc-upload\r\n *ngIf=\"selectedComponent.name === 'upload'\"\r\n ></cfc-upload>\r\n\r\n <cfc-wizard\r\n *ngIf=\"selectedComponent.name === 'wizard'\"\r\n ></cfc-wizard>\r\n\r\n <div style=\"width: 100%;\">\r\n <cfc-divider></cfc-divider>\r\n </div>\r\n\r\n <form\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n\r\n <!-- avatar -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'avatar'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"avatarType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of avatarTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"name\">\r\n name\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"avatarName\"\r\n name=\"name\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"avatarDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of avatarDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"imageUrl\">\r\n imageUrl\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 300px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"avatarImageUrl\"\r\n name=\"imageUrl\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- breadcrumb -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'breadcrumb'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"breadcrumbLabel\"\r\n name=\"label\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- button -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'button'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"buttonLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"buttonType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of buttonTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"buttonDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of buttonDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"icon\">\r\n icon\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"buttonIcon\"\r\n name=\"icon\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"circle\">\r\n circle\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"circle\"\r\n [(ngModel)]=\"buttonCircle\"\r\n name=\"circle\">\r\n <option\r\n [value]=\"true\">\r\n circle\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not circle\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"submit\">\r\n submit\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"submit\"\r\n [(ngModel)]=\"buttonSubmit\"\r\n name=\"submit\">\r\n <option\r\n [value]=\"true\">\r\n submit\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not submit\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"buttonDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"block\">\r\n block\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"block\"\r\n [(ngModel)]=\"buttonBlock\"\r\n name=\"block\">\r\n <option\r\n [value]=\"true\">\r\n block\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not block\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"inverted\">\r\n inverted\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"inverted\"\r\n [(ngModel)]=\"buttonInverted\"\r\n name=\"inverted\">\r\n <option\r\n [value]=\"true\">\r\n inverted\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not inverted\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"actived\">\r\n active\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"active\"\r\n [(ngModel)]=\"buttonActive\"\r\n name=\"active\">\r\n <option\r\n [value]=\"true\">\r\n actived\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n inactived\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"loading\">\r\n loading\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"loading\"\r\n [(ngModel)]=\"buttonLoading\"\r\n name=\"loading\">\r\n <option\r\n [value]=\"true\">\r\n loading\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not loading\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- checkbox-option -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'checkbox-option'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"checkboxOptionState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let state of checkboxOptionStates\"\r\n [value]=\"state\">\r\n {{ state }}\r\n </option>\r\n </select>\r\n </div>\r\n <!-- <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"checkboxOptionType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of checkboxOptionTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div> -->\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"option\">\r\n option\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"height: 90px; white-space: pre-wrap; font-family: monospace;\"\r\n id=\"option\"\r\n name=\"option\"\r\n readonly>\r\n{\r\n name: {{ checkboxOptionOption.name }},\r\n value: {{ checkboxOptionOption.value }}\r\n}</textarea>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"checkedChange\">\r\n checkedChange\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"height: 70px; width: 220px; white-space: pre-wrap; font-family: monospace;\"\r\n type=\"text\"\r\n name=\"checkedChange\"\r\n readonly>\r\n{{ checkboxOptionChecked }}\r\n{{ checkboxOptionOption.value }}{{ !checkboxOptionChecked ? ' n\u00E3o' : '' }} selecionada.</textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- divider -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'divider'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"mode\">\r\n mode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"mode\"\r\n [(ngModel)]=\"dividerMode\"\r\n name=\"mode\">\r\n <option\r\n *ngFor=\"let mode of dividerModes\"\r\n [value]=\"mode\">\r\n {{ mode }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"dividerType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of dividerTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"axis\">\r\n axis\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"axis\"\r\n [(ngModel)]=\"dividerAxis\"\r\n name=\"axis\">\r\n <option\r\n *ngFor=\"let axis of dividerAxises\"\r\n [value]=\"axis\">\r\n {{ axis }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"dividerDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of dividerDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- header -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'header'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"title\">\r\n title\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerTitle\"\r\n name=\"title\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"description\">\r\n description\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerDescription\"\r\n name=\"description\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"viewMode\">\r\n viewMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"headerViewMode\"\r\n name=\"viewMode\">\r\n <option\r\n *ngFor=\"let viewMode of headerViewModes\"\r\n [value]=\"viewMode\">\r\n {{ viewMode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"userName\">\r\n userName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerUserName\"\r\n name=\"userName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timeOut\">\r\n timeOut\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"headerTimeOut\"\r\n name=\"timeOut\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"logoMode\">\r\n logoMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"headerLogoViewMode\"\r\n name=\"logoMode\">\r\n <option\r\n *ngFor=\"let logoMode of headerLogoViewModes\"\r\n [value]=\"logoMode\">\r\n {{ logoMode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- icon -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'icon'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconName\">\r\n iconName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconName\"\r\n name=\"iconName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"familyName\">\r\n familyName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconFamilyName\"\r\n name=\"familyName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"className\">\r\n className\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconClassName\"\r\n name=\"className\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"size\">\r\n size\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconSize\"\r\n name=\"size\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"color\">\r\n color\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconColor\"\r\n name=\"color\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- input -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'input'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"inputState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let type of inputStates\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"inputDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of inputDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"placeholder\">\r\n placeholder\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputPlaceholder\"\r\n name=\"placeholder\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"ispassword\">\r\n ispassword\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"ispassword\"\r\n [(ngModel)]=\"inputIsPassword\"\r\n name=\"ispassword\">\r\n <option\r\n [value]=\"true\">\r\n ispassword\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not ispassword\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"inputDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"labelInline\">\r\n labelInline\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"labelInline\"\r\n [(ngModel)]=\"inputLabelInline\"\r\n name=\"labelInline\">\r\n <option\r\n [value]=\"true\">\r\n row\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n column\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconButton\">\r\n iconButton\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputButtonIcon\"\r\n name=\"iconButton\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconButton\">\r\n icon\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputIcon\"\r\n name=\"icon\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- item -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'item'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"content\">\r\n content\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"itemContent\"\r\n name=\"content\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"itemType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of itemTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"itemDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"url\">\r\n url\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"itemUrl\"\r\n name=\"url\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"selected\">\r\n selected\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"selected\"\r\n [(ngModel)]=\"itemSelected\"\r\n name=\"selected\">\r\n <option\r\n [value]=\"true\">\r\n selected\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not selected\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"hasDivider\">\r\n hasDivider\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"hasDivider\"\r\n [(ngModel)]=\"itemHasDivider\"\r\n name=\"hasDivider\">\r\n <option\r\n [value]=\"true\">\r\n divider\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not divider\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- loading -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'loading'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"loadingDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of loadingDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"progress\">\r\n progress\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"loadingProgress\"\r\n name=\"progress\">\r\n </div>\r\n </ng-container>\r\n\r\n <!-- logo -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'logo'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"viewMode\">\r\n viewMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"logoViewMode\"\r\n name=\"viewMode\">\r\n <option\r\n *ngFor=\"let viewMode of logoViewModes\"\r\n [value]=\"viewMode\">\r\n {{ viewMode }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"width\">\r\n width\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"logoWidth\"\r\n name=\"width\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"clickEvent\">\r\n clickEvent\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"logoIsClickable\"\r\n [(ngModel)]=\"logoIsClickable\"\r\n name=\"clickEvent\">\r\n <option\r\n [value]=\"true\">\r\n clic\u00E1vel\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n n\u00E3o clic\u00E1vel\r\n </option>\r\n </select>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- message -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'message'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"messageType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of messageTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"messageState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let state of messageStates\"\r\n [value]=\"state\">\r\n {{ state }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"message\">\r\n message\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 200px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"messageMessage\"\r\n name=\"message\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"description\">\r\n description\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 200px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"messageDescription\"\r\n name=\"description\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <cfc-button (click)=\"message.openMessage()\" label=\"open\"></cfc-button>\r\n <cfc-button (click)=\"message.closeMessage()\" label=\"close\"></cfc-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- sign-in -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'sign-in'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"signInType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of signInTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"signInDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of signInDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"mode\">\r\n mode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"mode\"\r\n [(ngModel)]=\"signInMode\"\r\n name=\"mode\">\r\n <option\r\n *ngFor=\"let mode of signInModes\"\r\n [value]=\"mode\">\r\n {{ mode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"hasDivider\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"signInDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"block\">\r\n block\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"block\"\r\n [(ngModel)]=\"signInBlock\"\r\n name=\"block\">\r\n <option\r\n [value]=\"true\">\r\n block\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not block\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"circle\">\r\n circle\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"circle\"\r\n [(ngModel)]=\"signInCircle\"\r\n name=\"circle\">\r\n <option\r\n [value]=\"true\">\r\n circle\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not circle\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"externalImageUrl\">\r\n externalImageUrl\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 300px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInExternalImageUrl\"\r\n name=\"externalImageUrl\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"externalLabel\">\r\n externalLabel\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInExternalLabel\"\r\n name=\"externalLabel\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- timer -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'timer'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"timerType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of timerTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timer\">\r\n timer\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n [(ngModel)]=\"timer\"\r\n name=\"timer\"\r\n readonly>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timerCritical\">\r\n timerCritical\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n [(ngModel)]=\"timerCritical\"\r\n name=\"timerCritical\"\r\n readonly>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timer\">\r\n timer\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"width: 400px !important; height: max-content;\"\r\n type=\"number\"\r\n name=\"timer\"\r\n readonly>\r\n timeEvent dispared in {{ timer }} seconds.\r\n </textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </form>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #noComponentSelected>\r\n <div>\r\n <h4\r\n style=\"text-align: center;\">\r\n Nenhum componente selecionado ainda\r\n </h4>\r\n </div>\r\n</ng-template>\r\n", styles: [".test-component__divider{min-width:60vw}.test-component__input,.test-component__output{margin:0;width:fit-content!important;height:40px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.AvatarComponent, selector: "cfc-avatar", inputs: ["type", "name", "density", "imageUrl"] }, { kind: "component", type: i5.BreadcrumbComponent, selector: "cfc-breadcrumb", inputs: ["homeUrl"] }, { kind: "component", type: i6.ButtonComponent, selector: "cfc-button", inputs: ["label", "type", "submit", "circle", "density", "disabled", "block", "icon", "active", "inverted", "loading"], outputs: ["onClick"] }, { kind: "component", type: i7.CardComponent, selector: "cfc-card", inputs: ["hover", "disabled"] }, { kind: "component", type: i8.CarouselComponent, selector: "cfc-carousel" }, { kind: "component", type: i9.CheckboxesComponent, selector: "cfc-checkboxes", inputs: ["label", "description", "options", "mode"] }, { kind: "component", type: i10.CheckboxOptionComponent, selector: "cfc-checkbox-option", inputs: ["type", "state", "option", "checked"], outputs: ["checkedChange"] }, { kind: "component", type: i11.CollapseComponent, selector: "cfc-collapse" }, { kind: "component", type: i12.CookieBarComponent, selector: "cfc-cookie-bar" }, { kind: "component", type: i13.DatetimerPickerComponent, selector: "cfc-datetimer-picker" }, { kind: "component", type: i14.DividerComponent, selector: "cfc-divider", inputs: ["height", "width", "mode", "type", "axis", "density"] }, { kind: "component", type: i15.FooterComponent, selector: "cfc-footer", inputs: ["projectName", "projectVersion"] }, { kind: "component", type: i16.HeaderComponent, selector: "cfc-header", inputs: ["viewMode", "hasMenu", "hasLogo", "logoViewMode", "logoUrl", "title", "description", "hasTimer", "timeLogout", "timeCritical", "hasNotificationIcon", "userName", "signinMode"], outputs: ["menuEvent", "criticalTimeEvent", "timeOutEvent", "timeEvent", "notificationIconEvent", "signinEvent", "logoutEvent"] }, { kind: "component", type: i17.IconComponent, selector: "cfc-icon", inputs: ["iconName", "familyName", "className", "size", "color"] }, { kind: "component", type: i18.InputComponent, selector: "cfc-input", inputs: ["buttonAriaLabel", "formControlName", "isPassword", "isHighlight", "inverted", "labelInline", "state", "density", "buttonIcon", "label", "type", "placeholder", "icon"], outputs: ["onInput", "onIconClicked", "onIconSubmited"] }, { kind: "component", type: i19.ItemComponent, selector: "cfc-item", inputs: ["type", "disabled", "selected", "hasDivider", "url"], outputs: ["clickEvent"] }, { kind: "component", type: i20.ListComponent, selector: "cfc-list" }, { kind: "component", type: i21.LoadingComponent, selector: "cfc-loading", inputs: ["density", "progress", "minValue", "maxValue"] }, { kind: "component", type: i22.LogoComponent, selector: "cfc-logo", inputs: ["viewMode", "isClickable", "width", "imageUrl"], outputs: ["clickEvent"] }, { kind: "component", type: i23.MagicButtonComponent, selector: "cfc-magic-button" }, { kind: "component", type: i24.MenuComponent, selector: "cfc-menu", inputs: ["isMenuVisible", "menuItems"] }, { kind: "component", type: i25.MessageComponent, selector: "cfc-message", inputs: ["message", "description", "state", "type", "horizontalPosition", "verticalPosition", "verticalOffset", "horizontalOffset", "displayTime", "isTemporary"] }, { kind: "component", type: i26.ModalComponent, selector: "cfc-modal", inputs: ["type", "title", "isClosable", "density", "primaryActionLabel", "primaryActionIcon", "secondaryActionLabel", "secondaryActionIcon", "hasOverlay", "width", "height"], outputs: ["onPrimaryAction", "onSecondaryAction"] }, { kind: "component", type: i27.NotificationComponent, selector: "cfc-notification" }, { kind: "component", type: i28.NotificationPanelComponent, selector: "cfc-notification-panel" }, { kind: "component", type: i29.PageContentComponent, selector: "cfc-page-content" }, { kind: "component", type: i30.PaginationComponent, selector: "cfc-pagination", inputs: ["data", "itemsPerPageOptions", "allPages", "itemsPerPage", "allItems"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i31.RadioComponent, selector: "cfc-radio" }, { kind: "component", type: i32.ScrimComponent, selector: "cfc-scrim", inputs: ["isVisible", "isClosable"] }, { kind: "component", type: i33.SelectComponent, selector: "cfc-select", inputs: ["options", "id", "label", "value", "placeholder", "labelInline", "multiple"], outputs: ["onChange"] }, { kind: "component", type: i34.SignInComponent, selector: "cfc-sign-in", inputs: ["label", "type", "density", "mode", "disabled", "active", "block", "circle", "externalImageUrl", "externalLabel"], outputs: ["onClick", "onLogout"] }, { kind: "component", type: i35.SkiplinkComponent, selector: "cfc-skiplink" }, { kind: "component", type: i36.SliderComponent, selector: "cfc-slider" }, { kind: "component", type: i37.SwitchComponent, selector: "cfc-switch" }, { kind: "component", type: i38.TabComponent, selector: "cfc-tab" }, { kind: "component", type: i39.TableComponent, selector: "cfc-table" }, { kind: "component", type: i40.TagComponent, selector: "cfc-tag" }, { kind: "component", type: i41.TextareaComponent, selector: "cfc-textarea" }, { kind: "component", type: i42.TimerComponent, selector: "cfc-timer", inputs: ["type", "initialTime", "criticalTime", "isGlobal"], outputs: ["timeOutEvent", "timeEvent", "timeCriticalEvent"] }, { kind: "component", type: i43.TooltipComponent, selector: "cfc-tooltip" }, { kind: "component", type: i44.UploadComponent, selector: "cfc-upload" }, { kind: "component", type: i45.WizardComponent, selector: "cfc-wizard" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TestComponentComponent, decorators: [{
type: Component,
args: [{ selector: 'cfc-test-component', template: "<ng-container *ngIf=\"selectedComponent.name; else noComponentSelected\">\r\n <div\r\n fxFlex=\"grow\"\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"stretch center\"\r\n fxLayoutGap=\"1rem\">\r\n\r\n <h2 style=\"font-weight: 700;\">cfc-{{ selectedComponent.name }}</h2>\r\n\r\n <cfc-avatar\r\n *ngIf=\"selectedComponent.name === 'avatar'\"\r\n [type]=\"avatarType\"\r\n [name]=\"avatarName\"\r\n [density]=\"avatarDensity\"\r\n [imageUrl]=\"avatarImageUrl\"\r\n ></cfc-avatar>\r\n\r\n <cfc-breadcrumb\r\n *ngIf=\"selectedComponent.name === 'breadcrumb'\"\r\n [label]=\"breadcrumbLabel\"\r\n ></cfc-breadcrumb>\r\n\r\n <cfc-button\r\n *ngIf=\"selectedComponent.name === 'button'\"\r\n [label]=\"buttonLabel\"\r\n [type]=\"buttonType\"\r\n [submit]=\"buttonSubmit\"\r\n [circle]=\"buttonCircle\"\r\n [density]=\"buttonDensity\"\r\n [disabled]=\"buttonDisabled\"\r\n [block]=\"buttonBlock\"\r\n [icon]=\"buttonIcon\"\r\n [active]=\"buttonActive\"\r\n [inverted]=\"buttonInverted\"\r\n [loading]=\"buttonLoading\"\r\n (click)=\"buttonClickEvent()\"\r\n ></cfc-button>\r\n\r\n <cfc-card\r\n *ngIf=\"selectedComponent.name === 'card'\"\r\n [disabled]=\"cardDisabled\"\r\n [hover]=\"cardHover\"\r\n ></cfc-card>\r\n\r\n <cfc-carousel\r\n *ngIf=\"selectedComponent.name === 'carousel'\"\r\n ></cfc-carousel>\r\n\r\n <cfc-checkboxes\r\n *ngIf=\"selectedComponent.name === 'checkboxes'\"\r\n ></cfc-checkboxes>\r\n\r\n <cfc-checkbox-option\r\n *ngIf=\"selectedComponent.name === 'checkbox-option'\"\r\n [state]=\"checkboxOptionState\"\r\n [type]=\"checkboxOptionType\"\r\n [option]=\"checkboxOptionOption\"\r\n [(checked)]=\"checkboxOptionChecked\"\r\n ></cfc-checkbox-option>\r\n\r\n <cfc-collapse\r\n *ngIf=\"selectedComponent.name === 'collapse'\"\r\n ></cfc-collapse>\r\n\r\n <cfc-cookie-bar\r\n *ngIf=\"selectedComponent.name === 'cookie-bar'\"\r\n ></cfc-cookie-bar>\r\n\r\n <cfc-datetimer-picker\r\n *ngIf=\"selectedComponent.name === 'datetimer-picker'\"\r\n ></cfc-datetimer-picker>\r\n\r\n <div *ngIf=\"selectedComponent.name === 'divider'\"\r\n [fxLayout]=\"dividerAxis === 'horizontal' ? 'column' : 'row'\">\r\n <div>Uma coisa</div>\r\n <cfc-divider\r\n [mode]=\"dividerMode\"\r\n [type]=\"dividerType\"\r\n [axis]=\"dividerAxis\"\r\n [density]=\"dividerDensity\"\r\n ></cfc-divider>\r\n <div>Ou outra</div>\r\n </div>\r\n\r\n <cfc-footer\r\n *ngIf=\"selectedComponent.name === 'footer'\"\r\n [projectName]=\"footerProjectName\"\r\n [projectVersion]=\"footerProjectVersion\"\r\n ></cfc-footer>\r\n\r\n <cfc-header\r\n *ngIf=\"selectedComponent.name === 'header'\"\r\n [title]=\"headerTitle\"\r\n [description]=\"headerDescription\"\r\n [userName]=\"headerUserName\"\r\n [viewMode]=\"headerViewMode\"\r\n [hasMenu]=\"headerHasMenu\"\r\n [hasTimer]=\"headerHasTimer\"\r\n [hasBookIcon]=\"headerHasBookIcon\"\r\n [logoViewMode]=\"headerLogoViewMode\"\r\n [timeLogout]=\"headerTimeOut\"\r\n [timeCritical]=\"headerTimeCritical\"\r\n (criticalTimeEvent)=\"headerClickEvent()\"\r\n ></cfc-header>\r\n\r\n <cfc-icon\r\n *ngIf=\"selectedComponent.name === 'icon'\"\r\n [iconName]=\"iconName\"\r\n [familyName]=\"iconFamilyName\"\r\n [className]=\"iconClassName\"\r\n [size]=\"iconSize\"\r\n [color]=\"iconColor\"\r\n ></cfc-icon>\r\n\r\n <cfc-input\r\n *ngIf=\"selectedComponent.name === 'input'\"\r\n [disabled]=\"inputDisabled\"\r\n [density]=\"inputDensity\"\r\n [isPassword]=\"inputIsPassword\"\r\n [label]=\"inputLabel\"\r\n [type]=\"inputType\"\r\n [buttonIcon]=\"inputButtonIcon\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [labelInline]=\"inputLabelInline\"\r\n [state]=\"inputState\"\r\n [icon]=\"inputIcon\"\r\n (onChange)=\"inputOnChange()\"\r\n (onInput)=\"inputOnInput()\"\r\n (onIconClicked)=\"inputOnIconClicked()\"\r\n (onIconSubmited)=\"inputOnIconSubmited()\"\r\n ></cfc-input>\r\n\r\n <cfc-item\r\n *ngIf=\"selectedComponent.name === 'item'\"\r\n [type]=\"itemType\"\r\n [disabled]=\"itemDisabled\"\r\n [selected]=\"itemSelected\"\r\n [hasDivider]=\"itemHasDivider\"\r\n [url]=\"itemUrl\">\r\n <span default>\r\n {{ itemContent }}\r\n </span>\r\n <span button>\r\n {{ itemContent }}\r\n </span>\r\n <span link>\r\n {{ itemContent }}\r\n </span>\r\n </cfc-item>\r\n\r\n <cfc-loading\r\n *ngIf=\"selectedComponent.name === 'loading'\"\r\n [density]=\"loadingDensity\"\r\n [progress]=\"loadingProgress\"\r\n ></cfc-loading>\r\n\r\n <cfc-list\r\n *ngIf=\"selectedComponent.name === 'list'\"\r\n [title]=\"'Minha Lista'\">\r\n <cfc-list-item>\r\n Item 1\r\n </cfc-list-item>\r\n <cfc-list-item>\r\n Item 2\r\n </cfc-list-item>\r\n <cfc-list-item>\r\n <strong>Item 3 com conte\u00FAdo personalizado</strong>\r\n </cfc-list-item>\r\n </cfc-list>\r\n\r\n <cfc-logo\r\n *ngIf=\"selectedComponent.name === 'logo'\"\r\n [width]=\"logoWidth\"\r\n [viewMode]=\"logoViewMode\"\r\n [isClickable]=\"logoIsClickable\"\r\n (clickEvent)=\"logoClickEvent\"\r\n ></cfc-logo>\r\n\r\n <cfc-magic-button\r\n *ngIf=\"selectedComponent.name === 'magic-button'\"\r\n ></cfc-magic-button>\r\n\r\n <cfc-menu\r\n *ngIf=\"selectedComponent.name === 'menu'\"\r\n [menuItems]=\"menuItems\"\r\n ></cfc-menu>\r\n\r\n <cfc-message\r\n #message\r\n [hidden]=\"selectedComponent.name !== 'message'\"\r\n [type]=\"messageType\"\r\n [state]=\"messageState\"\r\n [message]=\"messageMessage\"\r\n [description]=\"messageDescription\"\r\n ></cfc-message>\r\n\r\n <cfc-modal\r\n *ngIf=\"selectedComponent.name === 'modal'\"\r\n ></cfc-modal>\r\n\r\n <cfc-notification\r\n *ngIf=\"selectedComponent.name === 'notification'\"\r\n ></cfc-notification>\r\n\r\n <cfc-notification-panel\r\n *ngIf=\"selectedComponent.name === 'notification-panel'\"\r\n ></cfc-notification-panel>\r\n\r\n <cfc-page-content\r\n *ngIf=\"selectedComponent.name === 'page-content'\"\r\n ></cfc-page-content>\r\n\r\n <cfc-pagination\r\n *ngIf=\"selectedComponent.name === 'pagination'\"\r\n ></cfc-pagination>\r\n\r\n <cfc-radio\r\n *ngIf=\"selectedComponent.name === 'radio'\"\r\n ></cfc-radio>\r\n\r\n <cfc-scrim\r\n *ngIf=\"selectedComponent.name === 'scrim'\"\r\n ></cfc-scrim>\r\n\r\n <cfc-select\r\n *ngIf=\"selectedComponent.name === 'select'\"\r\n [placeholder]=\"selectPlaceholder\"\r\n [label]=\"selectLabel\"\r\n [feedbackMessage]=\"selectFeedbackMessage\"\r\n [feedbackState]=\"selectFeedbackState\"\r\n ></cfc-select>\r\n\r\n <cfc-sign-in\r\n *ngIf=\"selectedComponent.name === 'sign-in'\"\r\n [label]=\"signInLabel\"\r\n [type]=\"signInType\"\r\n [density]=\"signInDensity\"\r\n [mode]=\"signInMode\"\r\n [disabled]=\"signInDisabled\"\r\n [block]=\"signInBlock\"\r\n [circle]=\"signInCircle\"\r\n [externalImageUrl]=\"signInExternalImageUrl\"\r\n [externalLabel]=\"signInExternalLabel\"\r\n ></cfc-sign-in>\r\n\r\n <cfc-skiplink\r\n *ngIf=\"selectedComponent.name === 'skiplink'\"\r\n ></cfc-skiplink>\r\n\r\n <cfc-slider\r\n *ngIf=\"selectedComponent.name === 'slider'\"\r\n ></cfc-slider>\r\n\r\n <cfc-switch\r\n *ngIf=\"selectedComponent.name === 'switch'\"\r\n ></cfc-switch>\r\n\r\n <cfc-tab\r\n *ngIf=\"selectedComponent.name === 'tab'\"\r\n ></cfc-tab>\r\n\r\n <cfc-table\r\n *ngIf=\"selectedComponent.name === 'table'\"\r\n ></cfc-table>\r\n\r\n <cfc-tag\r\n *ngIf=\"selectedComponent.name === 'tag'\"\r\n ></cfc-tag>\r\n\r\n <cfc-template-error\r\n *ngIf=\"selectedComponent.name === 'template-error'\"\r\n illustrationUrl=\"assets/illustrations/error19.png\"\r\n [principalText]=\"'Lorem Ipsum'\"\r\n [secondaryText]=\"'Lorem Ipsum'\"\r\n [suportText]=\"'Lorem Ipsum'\"\r\n ></cfc-template-error>\r\n\r\n <cfc-textarea\r\n *ngIf=\"selectedComponent.name === 'textarea'\"\r\n ></cfc-textarea>\r\n\r\n <cfc-timer\r\n *ngIf=\"selectedComponent.name === 'timer'\"\r\n [type]=\"timerType\"\r\n [initialTime]=\"timer\"\r\n [criticalTime]=\"timerCritical\"\r\n (timeEvent)=\"onTimeEvent()\"\r\n (timeOutEvent)=\"onTimeOutEvent()\"\r\n ></cfc-timer>\r\n\r\n <cfc-tooltip\r\n *ngIf=\"selectedComponent.name === 'tooltip'\"\r\n ></cfc-tooltip>\r\n\r\n <cfc-upload\r\n *ngIf=\"selectedComponent.name === 'upload'\"\r\n ></cfc-upload>\r\n\r\n <cfc-wizard\r\n *ngIf=\"selectedComponent.name === 'wizard'\"\r\n ></cfc-wizard>\r\n\r\n <div style=\"width: 100%;\">\r\n <cfc-divider></cfc-divider>\r\n </div>\r\n\r\n <form\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n\r\n <!-- avatar -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'avatar'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"avatarType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of avatarTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"name\">\r\n name\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"avatarName\"\r\n name=\"name\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"avatarDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of avatarDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"imageUrl\">\r\n imageUrl\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 300px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"avatarImageUrl\"\r\n name=\"imageUrl\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- breadcrumb -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'breadcrumb'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"breadcrumbLabel\"\r\n name=\"label\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- button -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'button'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"buttonLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"buttonType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of buttonTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"buttonDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of buttonDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"icon\">\r\n icon\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"buttonIcon\"\r\n name=\"icon\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"circle\">\r\n circle\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"circle\"\r\n [(ngModel)]=\"buttonCircle\"\r\n name=\"circle\">\r\n <option\r\n [value]=\"true\">\r\n circle\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not circle\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"submit\">\r\n submit\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"submit\"\r\n [(ngModel)]=\"buttonSubmit\"\r\n name=\"submit\">\r\n <option\r\n [value]=\"true\">\r\n submit\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not submit\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"buttonDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"block\">\r\n block\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"block\"\r\n [(ngModel)]=\"buttonBlock\"\r\n name=\"block\">\r\n <option\r\n [value]=\"true\">\r\n block\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not block\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"inverted\">\r\n inverted\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"inverted\"\r\n [(ngModel)]=\"buttonInverted\"\r\n name=\"inverted\">\r\n <option\r\n [value]=\"true\">\r\n inverted\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not inverted\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"actived\">\r\n active\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"active\"\r\n [(ngModel)]=\"buttonActive\"\r\n name=\"active\">\r\n <option\r\n [value]=\"true\">\r\n actived\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n inactived\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"loading\">\r\n loading\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"loading\"\r\n [(ngModel)]=\"buttonLoading\"\r\n name=\"loading\">\r\n <option\r\n [value]=\"true\">\r\n loading\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not loading\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- checkbox-option -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'checkbox-option'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"checkboxOptionState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let state of checkboxOptionStates\"\r\n [value]=\"state\">\r\n {{ state }}\r\n </option>\r\n </select>\r\n </div>\r\n <!-- <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"checkboxOptionType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of checkboxOptionTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div> -->\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"option\">\r\n option\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"height: 90px; white-space: pre-wrap; font-family: monospace;\"\r\n id=\"option\"\r\n name=\"option\"\r\n readonly>\r\n{\r\n name: {{ checkboxOptionOption.name }},\r\n value: {{ checkboxOptionOption.value }}\r\n}</textarea>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"checkedChange\">\r\n checkedChange\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"height: 70px; width: 220px; white-space: pre-wrap; font-family: monospace;\"\r\n type=\"text\"\r\n name=\"checkedChange\"\r\n readonly>\r\n{{ checkboxOptionChecked }}\r\n{{ checkboxOptionOption.value }}{{ !checkboxOptionChecked ? ' n\u00E3o' : '' }} selecionada.</textarea>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- divider -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'divider'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"mode\">\r\n mode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"mode\"\r\n [(ngModel)]=\"dividerMode\"\r\n name=\"mode\">\r\n <option\r\n *ngFor=\"let mode of dividerModes\"\r\n [value]=\"mode\">\r\n {{ mode }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"dividerType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of dividerTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"axis\">\r\n axis\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"axis\"\r\n [(ngModel)]=\"dividerAxis\"\r\n name=\"axis\">\r\n <option\r\n *ngFor=\"let axis of dividerAxises\"\r\n [value]=\"axis\">\r\n {{ axis }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"dividerDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of dividerDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- header -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'header'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"title\">\r\n title\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerTitle\"\r\n name=\"title\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"description\">\r\n description\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerDescription\"\r\n name=\"description\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"viewMode\">\r\n viewMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"headerViewMode\"\r\n name=\"viewMode\">\r\n <option\r\n *ngFor=\"let viewMode of headerViewModes\"\r\n [value]=\"viewMode\">\r\n {{ viewMode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"userName\">\r\n userName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"headerUserName\"\r\n name=\"userName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timeOut\">\r\n timeOut\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"headerTimeOut\"\r\n name=\"timeOut\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"logoMode\">\r\n logoMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"headerLogoViewMode\"\r\n name=\"logoMode\">\r\n <option\r\n *ngFor=\"let logoMode of headerLogoViewModes\"\r\n [value]=\"logoMode\">\r\n {{ logoMode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- icon -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'icon'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconName\">\r\n iconName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconName\"\r\n name=\"iconName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"familyName\">\r\n familyName\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconFamilyName\"\r\n name=\"familyName\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"className\">\r\n className\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconClassName\"\r\n name=\"className\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"size\">\r\n size\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconSize\"\r\n name=\"size\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"color\">\r\n color\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"iconColor\"\r\n name=\"color\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- input -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'input'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"inputState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let type of inputStates\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"inputDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of inputDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"placeholder\">\r\n placeholder\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputPlaceholder\"\r\n name=\"placeholder\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"ispassword\">\r\n ispassword\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"ispassword\"\r\n [(ngModel)]=\"inputIsPassword\"\r\n name=\"ispassword\">\r\n <option\r\n [value]=\"true\">\r\n ispassword\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not ispassword\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"inputDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"labelInline\">\r\n labelInline\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"labelInline\"\r\n [(ngModel)]=\"inputLabelInline\"\r\n name=\"labelInline\">\r\n <option\r\n [value]=\"true\">\r\n row\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n column\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconButton\">\r\n iconButton\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputButtonIcon\"\r\n name=\"iconButton\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"iconButton\">\r\n icon\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"inputIcon\"\r\n name=\"icon\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- item -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'item'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"content\">\r\n content\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"itemContent\"\r\n name=\"content\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"itemType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of itemTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"disabled\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"itemDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"url\">\r\n url\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"itemUrl\"\r\n name=\"url\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"selected\">\r\n selected\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"selected\"\r\n [(ngModel)]=\"itemSelected\"\r\n name=\"selected\">\r\n <option\r\n [value]=\"true\">\r\n selected\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not selected\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"hasDivider\">\r\n hasDivider\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"hasDivider\"\r\n [(ngModel)]=\"itemHasDivider\"\r\n name=\"hasDivider\">\r\n <option\r\n [value]=\"true\">\r\n divider\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not divider\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- loading -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'loading'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"loadingDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of loadingDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"progress\">\r\n progress\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"loadingProgress\"\r\n name=\"progress\">\r\n </div>\r\n </ng-container>\r\n\r\n <!-- logo -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'logo'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"viewMode\">\r\n viewMode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n [(ngModel)]=\"logoViewMode\"\r\n name=\"viewMode\">\r\n <option\r\n *ngFor=\"let viewMode of logoViewModes\"\r\n [value]=\"viewMode\">\r\n {{ viewMode }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"width\">\r\n width\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"number\"\r\n [(ngModel)]=\"logoWidth\"\r\n name=\"width\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"clickEvent\">\r\n clickEvent\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"logoIsClickable\"\r\n [(ngModel)]=\"logoIsClickable\"\r\n name=\"clickEvent\">\r\n <option\r\n [value]=\"true\">\r\n clic\u00E1vel\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n n\u00E3o clic\u00E1vel\r\n </option>\r\n </select>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- message -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'message'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"messageType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of messageTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"state\">\r\n state\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"state\"\r\n [(ngModel)]=\"messageState\"\r\n name=\"state\">\r\n <option\r\n *ngFor=\"let state of messageStates\"\r\n [value]=\"state\">\r\n {{ state }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"message\">\r\n message\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 200px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"messageMessage\"\r\n name=\"message\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"description\">\r\n description\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 200px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"messageDescription\"\r\n name=\"description\">\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <cfc-button (click)=\"message.openMessage()\" label=\"open\"></cfc-button>\r\n <cfc-button (click)=\"message.closeMessage()\" label=\"close\"></cfc-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- sign-in -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'sign-in'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"label\">\r\n label\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInLabel\"\r\n name=\"label\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"signInType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of signInTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"density\">\r\n density\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"density\"\r\n [(ngModel)]=\"signInDensity\"\r\n name=\"density\">\r\n <option\r\n *ngFor=\"let density of signInDensities\"\r\n [value]=\"density\">\r\n {{ density }}\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"mode\">\r\n mode\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"mode\"\r\n [(ngModel)]=\"signInMode\"\r\n name=\"mode\">\r\n <option\r\n *ngFor=\"let mode of signInModes\"\r\n [value]=\"mode\">\r\n {{ mode }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"hasDivider\">\r\n disabled\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"disabled\"\r\n [(ngModel)]=\"signInDisabled\"\r\n name=\"disabled\">\r\n <option\r\n [value]=\"true\">\r\n disabled\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n enabled\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"block\">\r\n block\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"block\"\r\n [(ngModel)]=\"signInBlock\"\r\n name=\"block\">\r\n <option\r\n [value]=\"true\">\r\n block\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not block\r\n </option>\r\n </select>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"circle\">\r\n circle\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"circle\"\r\n [(ngModel)]=\"signInCircle\"\r\n name=\"circle\">\r\n <option\r\n [value]=\"true\">\r\n circle\r\n </option>\r\n <option\r\n [value]=\"false\">\r\n not circle\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"externalImageUrl\">\r\n externalImageUrl\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 300px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInExternalImageUrl\"\r\n name=\"externalImageUrl\">\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"externalLabel\">\r\n externalLabel\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n type=\"text\"\r\n [(ngModel)]=\"signInExternalLabel\"\r\n name=\"externalLabel\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- timer -->\r\n <ng-container *ngIf=\"selectedComponent.name === 'timer'\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"type\">\r\n type\r\n </label>\r\n <select\r\n class=\"test-component__input\"\r\n id=\"type\"\r\n [(ngModel)]=\"timerType\"\r\n name=\"type\">\r\n <option\r\n *ngFor=\"let type of timerTypes\"\r\n [value]=\"type\">\r\n {{ type }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"0.5rem\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timer\">\r\n timer\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n [(ngModel)]=\"timer\"\r\n name=\"timer\"\r\n readonly>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timerCritical\">\r\n timerCritical\r\n </label>\r\n <input\r\n class=\"test-component__input\"\r\n style=\"width: 100px !important;\"\r\n [(ngModel)]=\"timerCritical\"\r\n name=\"timerCritical\"\r\n readonly>\r\n </div>\r\n </div>\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\">\r\n <label\r\n for=\"timer\">\r\n timer\r\n </label>\r\n <textarea\r\n class=\"test-component__input\"\r\n style=\"width: 400px !important; height: max-content;\"\r\n type=\"number\"\r\n name=\"timer\"\r\n readonly>\r\n timeEvent dispared in {{ timer }} seconds.\r\n </textarea>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </form>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #noComponentSelected>\r\n <div>\r\n <h4\r\n style=\"text-align: center;\">\r\n Nenhum componente selecionado ainda\r\n </h4>\r\n </div>\r\n</ng-template>\r\n", styles: [".test-component__divider{min-width:60vw}.test-component__input,.test-component__output{margin:0;width:fit-content!important;height:40px}\n"] }]
}], propDecorators: { selectedComponent: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2ZjLWRzL3NyYy9saWIvcGFnZXMvY2ZjLXRlc3QtcGFnZS90ZXN0LWNvbXBvbmVudC90ZXN0LWNvbXBvbmVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZmMtZHMvc3JjL2xpYi9wYWdlcy9jZmMtdGVzdC1wYWdlL3Rlc3QtY29tcG9uZW50L3Rlc3QtY29tcG9uZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8s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V0FBVyxHQUFpQixNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRELHFCQUFxQjtJQUNyQixhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFFakMsWUFBWTtJQUNaLFNBQVMsR0FBYyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3pDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixhQUFhLEdBQUcsR0FBRyxDQUFDO0lBRXBCLFVBQVUsR0FBZ0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVuRCxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUNGLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDcEIsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUM7d0dBbGlCUyxzQkFBc0I7NEZBQXRCLHNCQUFzQiw4R0NyQ25DLDZ1MURBdXlEQTs7NEZEbHdEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzhCQVFyQixpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nb1ZpZXdNb2RlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvbG9nby12aWV3LW1vZGUuZW51bSc7XHJcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9idXR0b24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgQnV0dG9uRGVuc2l0eSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2J1dHRvbi1kZW5zaXR5LmVudW0nO1xyXG5pbXBvcnQgeyBTaWduSW5UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvc2lnbi1pbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBTaWduSW5EZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvc2lnbi1pbi1kZW5zaXR5LmVudW0nO1xyXG5pbXBvcnQgeyBBdmF0YXJEZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvYXZhdGFyLWRlbnNpdHkuZW51bSc7XHJcbmltcG9ydCB7IFRvb2x0aXBQbGFjZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL3Rvb2x0aXAtcGxhY2UuZW51bSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJMaW5rIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWIubW9kZWwnO1xyXG5pbXBvcnQgeyBIZWFkZXJWaWV3TW9kZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2hlYWRlci12aWV3LW1vZGUuZW51bSc7XHJcbmltcG9ydCB7IElucHV0U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9pbnB1dC1zdGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgSW5wdXREZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvaW5wdXQtZGVuc2l0eS5lbnVtJztcclxuaW1wb3J0IHsgQXZhdGFyVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2F2YXRhci10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2RpdmlkZXItbW9kZS5lbnVtJztcclxuaW1wb3J0IHsgRGl2aWRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kaXZpZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IERpdmlkZXJBeGlzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvZGl2aWRlci1heGlzLmVudW0nO1xyXG5pbXBvcnQgeyBEaXZpZGVyRGVuc2l0eSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2RpdmlkZXItZGVuc2l0eS5lbnVtJztcclxuaW1wb3J0IHsgU2lnbkluTW9kZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL3NpZ24taW4tbW9kZS5lbnVtJztcclxuaW1wb3J0IHsgVGltZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvdGltZXItdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9tZXNzYWdlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL21lc3NhZ2Utc3RhdGUuZW51bSc7XHJcbmltcG9ydCB7IENoZWNrYm94T3B0aW9uU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jaGVja2JveC1vcHRpb24tc3RhdGUuZW51bSc7XHJcbmltcG9ydCB7IENoZWNrYm94T3B0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2NoZWNrYm94LW9wdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGVja2JveC5tb2RlbCc7XHJcbmltcG9ydCB7IExvYWRpbmdEZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvbG9hZGluZy1kZW5zaXR5LmVudW0nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMubW9kZWwnO1xyXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2l0ZW0tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgSWxsdXN0cmF0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2lsbHVzdHJhdGlvbi10eXBlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjZmMtdGVzdC1jb21wb25lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0LWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Rlc3QtY29tcG9uZW50LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlc3RDb21wb25lbnRDb21wb25lbnQge1xyXG5beDogc3RyaW5nXTogYW55O1xyXG5cclxuICAvLyBpbnB1dHMgYW5kIG91dHB1dHNcclxuICBASW5wdXQoKSBzZWxlY3RlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZSA9IHtcclxuICAgIGlkOiAwLFxyXG4gICAgbmFtZTogJycsXHJcbiAgICBjbGlja0V2ZW50TmFtZTogJ3NldENvbXBvbmVudCcsXHJcbiAgICBpc0FscmVhZHk6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgLy8gY2ZjLWF2YXRhclxyXG4gIGF2YXRhclR5cGU6IEF2YXRhclR5cGUgPSBBdmF0YXJUeXBlLmljb247XHJcbiAgYXZhdGFyTmFtZSA9ICdhdmF0YXInXHJcbiAgYXZhdGFyRGVuc2l0eTogQXZhdGFyRGVuc2l0eSA9IEF2YXRhckRlbnNpdHkubWVkaXVtO1xyXG4gIGF2YXRhckltYWdlVXJsID0gJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9pZC84MjMvNDAwJztcclxuXHJcbiAgYXZhdGFyVHlwZXM6IEF2YXRhclR5cGVbXSA9IE9iamVjdC52YWx1ZXMoQXZhdGFyVHlwZSk7XHJcbiAgYXZhdGFyRGVuc2l0aWVzOiBBdmF0YXJEZW5zaXR5W10gPSBPYmplY3QudmFsdWVzKEF2YXRhckRlbnNpdHkpO1xyXG4gIGF2YXRhclRvb2x0aXBQbGFjZXM6IFRvb2x0aXBQbGFjZVtdID0gT2JqZWN0LnZhbHVlcyhUb29sdGlwUGxhY2UpO1xyXG5cclxuICAvLyBjZmMtYnJlYWRjcnVtYlxyXG4gIGJyZWFkY3J1bWJMYWJlbCA9ICdicmVhZGNydW1iJztcclxuICBicmVhZGNydW1iTGlua3M6IEJyZWFkY3J1bWJMaW5rW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnUMOhZ2luYSBJbmljaWFsJyxcclxuICAgICAgdXJsOiAnLycsXHJcbiAgICAgIHRhcmdldDogJ19ibGFuaycsXHJcbiAgICAgIGhvbWU6IHRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnUMOhZ2luYSBBbmNlc3RyYWwgMDEnLFxyXG4gICAgICB1cmw6ICcjJyxcclxuICAgICAgdGFyZ2V0OiAnX2JsYW5rJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbGFiZWw6ICdQw6FnaW5hIEFuY2VzdHJhbCAwMicsXHJcbiAgICAgIHVybDogJyMnLFxyXG4gICAgICB0YXJnZXQ6ICdfYmxhbmsnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDogJ1DDoWdpbmEgQXR1YWwnLFxyXG4gICAgICBhY3RpdmU6IHRydWVcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBicmVhZGNydW1iTGlua3NTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmJyZWFkY3J1bWJMaW5rcywgbnVsbCwgMik7XHJcblxyXG4gIHVwZGF0ZUJyZWFkQ3J1bWJMaW5rcygpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRjcnVtYkxpbmtzID0gSlNPTi5wYXJzZSh0aGlzLmJyZWFkY3J1bWJMaW5rc1N0cmluZyk7XHJcbiAgfVxyXG5cclxuICAvLyBjZmMtYnV0dG9uXHJcbiAgYnV0dG9uTGFiZWwgPSAnYnV0dG9uJztcclxuICBidXR0b25UeXBlOiBCdXR0b25UeXBlID0gQnV0dG9uVHlwZS50ZXJ0aWFyeTtcclxuICBidXR0b25TdWJtaXQgPSBmYWxzZTtcclxuICBidXR0b25DaXJjbGUgPSBmYWxzZTtcclxuICBidXR0b25EZW5zaXR5OiBCdXR0b25EZW5zaXR5ID0gQnV0dG9uRGVuc2l0eS5taWRkbGU7XHJcbiAgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBidXR0b25CbG9jayA9IGZhbHNlO1xyXG4gIGJ1dHRvbkljb24gPSAnY2xvY2snO1xyXG4gIGJ1dHRvbkFjdGl2ZSA9IGZhbHNlO1xyXG4gIGJ1dHRvbkludmVydGVkID0gZmFsc2U7XHJcbiAgYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBidXR0b25UeXBlczogQnV0dG9uVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhCdXR0b25UeXBlKTtcclxuICBidXR0b25EZW5zaXRpZXM6IEJ1dHRvbkRlbnNpdHlbXSA9IE9iamVjdC52YWx1ZXMoQnV0dG9uRGVuc2l0eSk7XHJcblxyXG4gIGJ1dHRvbkNsaWNrRXZlbnQgPSAoKSA9PiBhbGVydCgnYnV0dG9uIGV2ZW50IGRpc3BhcmVkIScpO1xyXG5cclxuICAvLyBjZmMtY2FyZFxyXG4gIGNhcmREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNhcmRIb3ZlciA9IGZhbHNlO1xyXG5cclxuICAvLyBjZmMtY2hlY2tib3gtb3B0aW9uXHJcbiAgY2hlY2tib3hPcHRpb25TdGF0ZTogQ2hlY2tib3hPcHRpb25TdGF0ZSA9IENoZWNrYm94T3B0aW9uU3RhdGUuZGVmYXVsdDtcclxuICBjaGVja2JveE9wdGlvblR5cGU6IENoZWNrYm94T3B0aW9uVHlwZSA9IENoZWNrYm94T3B0aW9uVHlwZS53aXRoUmlnaHRMYWJlbDtcclxuICBjaGVja2JveE9wdGlvbkNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja2JveE9wdGlvbk9wdGlvbjogQ2hlY2tib3hPcHRpb24gPSB7XHJcbiAgICBuYW1lOiAnT1DDh8ODTzEnLFxyXG4gICAgdmFsdWU6ICdvcMOnw6NvIDEnLFxyXG4gICAgY2hlY2tlZDogZmFsc2VcclxuICB9O1xyXG5cclxuICBjaGVja2JveE9wdGlvblN0YXRlczogQ2hlY2tib3hPcHRpb25TdGF0ZVtdID0gT2JqZWN0LnZhbHVlcyhDaGVja2JveE9wdGlvblN0YXRlKTtcclxuICBjaGVja2JveE9wdGlvblR5cGVzOiBDaGVja2JveE9wdGlvblR5cGVbXSA9IE9iamVjdC52YWx1ZXMoQ2hlY2tib3hPcHRpb25UeXBlKTtcclxuXHJcbiAgLy8gY2ZjLWRpdmlkZXJcclxuICBkaXZpZGVyTW9kZTogRGl2aWRlck1vZGUgPSBEaXZpZGVyTW9kZS5saW5lO1xyXG4gIGRpdmlkZXJUeXBlOiBEaXZpZGVyVHlwZSA9IERpdmlkZXJUeXBlLnByaW1hcnk7XHJcbiAgZGl2aWRlckF4aXM6IERpdmlkZXJBeGlzID0gRGl2aWRlckF4aXMuaG9yaXpvbnRhbDtcclxuICBkaXZpZGVyRGVuc2l0eTogRGl2aWRlckRlbnNpdHkgPSBEaXZpZGVyRGVuc2l0eS5zbWFsbDtcclxuXHJcbiAgZGl2aWRlck1vZGVzOiBEaXZpZGVyTW9kZVtdID0gT2JqZWN0LnZhbHVlcyhEaXZpZGVyTW9kZSk7XHJcbiAgZGl2aWRlclR5cGVzOiBEaXZpZGVyVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhEaXZpZGVyVHlwZSk7XHJcbiAgZGl2aWRlckF4aXNlczogRGl2aWRlckF4aXNbXSA9IE9iamVjdC52YWx1ZXMoRGl2aWRlckF4aXMpO1xyXG4gIGRpdmlkZXJEZW5zaXRpZXM6IERpdmlkZXJEZW5zaXR5W10gPSBPYmplY3QudmFsdWVzKERpdmlkZXJEZW5zaXR5KTtcclxuXHJcbiAgLy8gY2ZjLWZvb3RlclxyXG4gIGZvb3RlclByb2plY3ROYW1lID0gJ0VQQydcclxuICBmb290ZXJQcm9qZWN0VmVyc2lvbjogc3RyaW5nID0gJzEuMC4wJztcclxuXHJcbiAgLy8gY2ZjLWhlYWRlclxyXG4gIGhlYWRlclRpdGxlID0gJ1Rlc3RhbmRvIEhlYWRlcic7XHJcbiAgaGVhZGVyRGVzY3JpcHRpb24gPSAnRXNzZSDDqSBhcGVuYXMgdW0gdGVzdGUnO1xyXG4gIGhlYWRlclVzZXJOYW1lID0gJ0FuYSBGcmVpdGFzJztcclxuICBoZWFkZXJIYXNNZW51ID0gZmFsc2U7XHJcbiAgaGVhZGVySGFzVGltZXIgPSB0cnVlO1xyXG4gIGhlYWRlckhhc0Jvb2tJY29uID0gdHJ1ZTtcclxuICBoZWFkZXJUaW1lT3V0ID0gMzA7XHJcbiAgaGVhZGVyVGltZUNyaXRpY2FsID0gMjA7XHJcbiAgaGVhZGVyTG9nb1ZpZXdNb2RlOiBMb2dvVmlld01vZGUgPSBMb2dvVmlld01vZGUuZGVmYXVsdFxyXG4gIGhlYWRlclZpZXdNb2RlOiBIZWFkZXJWaWV3TW9kZSA9IEhlYWRlclZpZXdNb2RlLmRlZmF1bHQ7XHJcblxyXG4gIGhlYWRlclZpZXdNb2RlczogSGVhZGVyVmlld01vZGVbXSA9IE9iamVjdC52YWx1ZXMoSGVhZGVyVmlld01vZGUpO1xyXG4gIGhlYWRlckxvZ29WaWV3TW9kZXM6IExvZ29WaWV3TW9kZVtdID0gT2JqZWN0LnZhbHVlcyhMb2dvVmlld01vZGUpO1xyXG5cclxuICBoZWFkZXJDbGlja0V2ZW50OiAoKSA9PiB2b2lkID0gKCkgPT4gYWxlcnQoJ2xvZ28gaXMgY2xpY2tlZCcpO1xyXG5cclxuICAvLyBjZmMtaWNvblxyXG4gIGljb25OYW1lID0gJ2hvbWUnO1xyXG4gIGljb25GYW1pbHlOYW1lID0gJ2Zhcyc7XHJcbiAgaWNvbkNsYXNzTmFtZSA9ICcnO1xyXG4gIGljb25TaXplID0gJzIwcHgnO1xyXG4gIGljb25Db2xvciA9ICdibHVlJztcclxuXHJcbiAgLy8gY2ZjLWlucHV0XHJcbiAgaW5wdXRMYWJlbCA9ICdpbnB1dC1sYWJlbCc7XHJcbiAgaW5wdXRUeXBlID0gJ3RleHQnO1xyXG4gIGlucHV0UGxhY2Vob2xkZXIgPSAncGxhY2Vob2xkZXInO1xyXG4gIGlucHV0U3RhdGU6IElucHV0U3RhdGUgPSBJbnB1dFN0YXRlLmluZm87XHJcbiAgaW5wdXREZW5zaXR5OiBJbnB1dERlbnNpdHkgPSBJbnB1dERlbnNpdHkubWVkaXVtO1xyXG4gIGlucHV0RGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbnB1dEJ1dHRvbkljb24gPSAnY2xvY2snO1xyXG4gIGlucHV0SXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIGlucHV0TGFiZWxJbmxpbmUgPSBmYWxzZTtcclxuICBpbnB1dEljb24gPSAndXNlcic7XHJcbiAgaW5wdXRWYWx1ZSA9ICd2YWx1ZSc7XHJcblxyXG4gIGlucHV0U3RhdGVzOiBJbnB1dFN0YXRlW10gPSBPYmplY3QudmFsdWVzKElucHV0U3RhdGUpO1xyXG4gIGlucHV0RGVuc2l0aWVzOiBJbnB1dERlbnNpdHlbXSA9IE9iamVjdC52YWx1ZXMoSW5wdXREZW5zaXR5KTtcclxuXHJcbiAgaW5wdXRPbkNoYW5nZTogKCkgPT4gdm9pZCA9ICgpID0+IGFsZXJ0KCdpbnB1dCB2YWx1ZSBpcyBjaGFuZ2VkJyk7XHJcbiAgaW5wdXRPbklucHV0OiAoKSA9PiB2b2lkID0gKCkgPT4gYWxlcnQoJ2lucHV0IHZhbHVlIGlzIHN1Ym1pdGVkJyk7XHJcbiAgaW5wdXRPbkljb25DbGlja2VkOiAoKSA9PiB2b2lkID0gKCkgPT4gYWxlcnQoJ2lucHV0IGljb24gb3MgY2xpY2tlZCcpO1xyXG4gIGlucHV0T25JY29uU3VibWl0ZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiBhbGVydCgnaW5wdXQgaWNvbiBzdWJtaXRlZCB0aGUgdmFsdWUnKTtcclxuXHJcbiAgLy8gY2ZjLWl0ZW1cclxuICBpdGVtVHlwZTogSXRlbVR5cGUgPSBJdGVtVHlwZS5kZWZhdWx0O1xyXG4gIGl0ZW1EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGl0ZW1TZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGl0ZW1IYXNEaXZpZGVyID0gdHJ1ZTtcclxuICBpdGVtQ29udGVudCA9ICdJdGVtIDEnO1xyXG4gIGl0ZW1VcmwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSc7XHJcblxyXG4gIGl0ZW1UeXBlczogSXRlbVR5cGVbXSA9IE9iamVjdC52YWx1ZXMoSXRlbVR5cGUpO1xyXG5cclxuICAvLyBjZmMtbG9hZGluZ1xyXG4gIGxvYWRpbmdEZW5zaXR5OiBMb2FkaW5nRGVuc2l0eSA9IExvYWRpbmdEZW5zaXR5Lm1lZGl1bTtcclxuICBsb2FkaW5nUHJvZ3Jlc3M/OiBudW1iZXI7XHJcblxyXG4gIGxvYWRpbmdEZW5zaXRpZXM6IExvYWRpbmdEZW5zaXR5W10gPSBPYmplY3QudmFsdWVzKExvYWRpbmdEZW5zaXR5KTtcclxuXHJcbiAgLy8gY2ZjLWxvZ29cclxuICBsb2dvV2lkdGggPSAxMDA7XHJcbiAgbG9nb0lzQ2xpY2thYmxlID0gZmFsc2U7XHJcbiAgbG9nb1ZpZXdNb2RlOiBMb2dvVmlld01vZGUgPSBMb2dvVmlld01vZGUuZGVmYXVsdDtcclxuXHJcbiAgbG9nb1ZpZXdNb2RlczogTG9nb1ZpZXdNb2RlW10gPSBPYmplY3QudmFsdWVzKExvZ29WaWV3TW9kZSk7XHJcblxyXG4gIGxvZ29DbGlja0V2ZW50PzogKCkgPT4gdm9pZCA9ICgpID0+IGFsZXJ0KCdhIGxvZ28gZXN0w6EgY2xpY8OhdmVsJyk7XHJcblxyXG4gIC8vIGNmYy1tZW51XHJcbiAgbWVudUl0ZW1zOiBhbnkgW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBpY29uTmFtZTogJ2ZvbGRlcicsXHJcbiAgICAgIG5hbWU6ICdDYXBhY2l0YWRvcmEnLFxyXG4gICAgICBsaXN0OiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdsYXB0b3AnLFxyXG4gICAgICAgICAgbmFtZTogJ0dlcmVuY2lhbWVudG8nLFxyXG4gICAgICAgICAgdXJsOiAnY2FwYWNpdGFkb3JhL2dlcmVuY2lhbWVudG8nLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjb21tZW50JyxcclxuICAgICAgICAgIG5hbWU6ICdIb21vbG9nYcOnw6NvJyxcclxuICAgICAgICAgIHVybDogJ2NhcGFjaXRhZG9yYS9ob21vbG9nYWNhbycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBpY29uTmFtZTogJ2ZvbGRlcicsXHJcbiAgICAgIG5hbWU6ICdNaW5oYXMgQXRpdmlkYWRlcycsXHJcbiAgICAgIGxpc3Q6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2xpc3QnLFxyXG4gICAgICAgICAgbmFtZTogJ0N1cnNvJyxcclxuICAgICAgICAgIHVybDogJ21pbmhhcy1hdGl2aWRhZGVzL2N1cnNvJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnbGlzdCcsXHJcbiAgICAgICAgICBuYW1lOiAnRXZlbnRvJyxcclxuICAgICAgICAgIHVybDogJ21pbmhhcy1hdGl2aWRhZGVzL2V2ZW50bycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2xpc3QnLFxyXG4gICAgICAgICAgbmFtZTogJ0RvY8OqbmNpYSBlIE9yaWVudGHDp8OjbycsXHJcbiAgICAgICAgICB1cmw6ICdtaW5oYXMtYXRpdmlkYWRlcy9kb2NlbmNpYScsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2xpc3QnLFxyXG4gICAgICAgICAgbmFtZTogJ1BhcnRpY2lwYcOnw6NvIGVtIGJhbmNhcycsXHJcbiAgICAgICAgICB1cmw6ICdtaW5oYXMtYXRpdmlkYWRlcy9iYW5jYXMnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdsaXN0JyxcclxuICAgICAgICAgIG5hbWU6ICdDb21pc3PDo28nLFxyXG4gICAgICAgICAgdXJsOiAnbWluaGFzLWF0aXZpZGFkZXMvY29taXNzYW8nLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdsaXN0JyxcclxuICAgICAgICAgIG5hbWU6ICdDdXJzbyBFeHRlcmlvcicsXHJcbiAgICAgICAgICB1cmw6ICdtaW5oYXMtYXRpdmlkYWRlcy9jdXJzby1leHRlcmlvcicsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2xpc3QnLFxyXG4gICAgICAgICAgbmFtZTogJ1Byb2R1w6fDo28gSW50ZWxlY3R1YWwnLFxyXG4gICAgICAgICAgdXJsOiAnbWluaGFzLWF0aXZpZGFkZXMvcHJvZHVjYW8taW50ZWxlY3R1YWwnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdsaXN0JyxcclxuICAgICAgICAgIG5hbWU6ICdQw7NzLCBHcmFkLiBlIEV4dGVuc8OjbycsXHJcbiAgICAgICAgICB1cmw6ICdtaW5oYXMtYXRpdmlkYWRlcy9wb3MtZ3JhZHVhY2FvJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDMsXHJcbiAgICAgIGljb25OYW1lOiAnZm9sZGVyJyxcclxuICAgICAgbmFtZTogJ0hvbW9sb2dhY2FvJyxcclxuICAgICAgbGlzdDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2xvbmUnLFxyXG4gICAgICAgICAgbmFtZTogJ0N1cnNvJyxcclxuICAgICAgICAgIHVybDogJ2hvbW9sb2dhY2FvL2N1cnNvJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2xvbmUnLFxyXG4gICAgICAgICAgbmFtZTogJ0V2ZW50bycsXHJcbiAgICAgICAgICB1cmw6ICdob21vbG9nYWNhby9ldmVudG8nLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjbG9uZScsXHJcbiAgICAgICAgICBuYW1lOiAnRG9jw6puY2lhIGUgT3JpZW50YcOnw6NvJyxcclxuICAgICAgICAgIHVybDogJ2hvbW9sb2dhY2FvL2RvY2VuY2lhJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2xvbmUnLFxyXG4gICAgICAgICAgbmFtZTogJ1BhcnRpY2lwYWNhbyBlbSBiYW5jYXMnLFxyXG4gICAgICAgICAgdXJsOiAnaG9tb2xvZ2FjYW8vYmFuY2EnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjbG9uZScsXHJcbiAgICAgICAgICBuYW1lOiAnQ29taXNzw6NvJyxcclxuICAgICAgICAgIHVybDogJ2hvbW9sb2dhY2FvL2NvbWlzc2FvJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2xvbmUnLFxyXG4gICAgICAgICAgbmFtZTogJ0N1cnNvIEV4dGVyaW9yJyxcclxuICAgICAgICAgIHVybDogJ2hvbW9sb2dhY2FvL2V4dGVyaW9yJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2xvbmUnLFxyXG4gICAgICAgICAgbmFtZTogJ1Byb2R1w6fDo28gSW50ZWxlY3R1YWwnLFxyXG4gICAgICAgICAgdXJsOiAnaG9tb2xvZ2FjYW8vcHJvZHVjYW8taW50ZWxlY3R1YWwnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjbG9uZScsXHJcbiAgICAgICAgICBuYW1lOiAnUMOzcywgR3JhZC4gZSBFeHRlbnPDo28nLFxyXG4gICAgICAgICAgdXJsOiAnaG9tb2xvZ2FjYW8vcG9zLWdyYWR1YWNhbycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2Jvb2snLFxyXG4gICAgICAgICAgbmFtZTogJ0PDom1hcmEgUGxlbsOhcmlhJyxcclxuICAgICAgICAgIHVybDogJ2hvbW9sb2dhY2FvL2NhbWFyYS1wbGVuYXJpYScsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiA0LFxyXG4gICAgICBpY29uTmFtZTogJ2ZvbGRlcicsXHJcbiAgICAgIG5hbWU6ICdDYWRhc3Ryb3MnLFxyXG4gICAgICBsaXN0OiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICd1c2VyLXBsdXMnLFxyXG4gICAgICAgICAgbmFtZTogJ0FicmFuZ8OqbmNpYScsXHJcbiAgICAgICAgICB1cmw6ICdjYWRhc3Ryby9hYnJhbmdlbmNpYScsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2NhbGVuZGFyLWNoZWNrJyxcclxuICAgICAgICAgIG5hbWU6ICfDgXJlYScsXHJcbiAgICAgICAgICB1cmw6ICdjYWRhc3Ryby9hcmVhJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnYm9vaycsXHJcbiAgICAgICAgICBuYW1lOiAnw4FyZWEgVGVtw6F0aWNhJyxcclxuICAgICAgICAgIHVybDogJ2NhZGFzdHJvL2FyZWEtdGVtYXRpY2EnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjYWxlbmRhci1jaGVjaycsXHJcbiAgICAgICAgICBuYW1lOiAnQ3JpdMOpcmlvIGRlIEF2YWxpYcOnw6NvJyxcclxuICAgICAgICAgIHVybDogJ2NhZGFzdHJvL2NyaXRlcmlvLWF2YWxpYWNhbycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2NhbGVuZGFyLWNoZWNrJyxcclxuICAgICAgICAgIG5hbWU6ICdGb3JtYcOnw6NvIEFjYWTDqm1pY2EnLFxyXG4gICAgICAgICAgdXJsOiAnY2FkYXN0cm8vZm9ybWFjYW8tYWNhZGVtaWNhJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnY2FsZW5kYXItY2hlY2snLFxyXG4gICAgICAgICAgbmFtZTogJ0luc3RpdHVpw6fDo28nLFxyXG4gICAgICAgICAgdXJsOiAnY2FkYXN0cm8vaW5zdGl0dWljYW8nLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICdjYWxlbmRhci1jaGVjaycsXHJcbiAgICAgICAgICBuYW1lOiAnSW5zdHJ1dG9yJyxcclxuICAgICAgICAgIHVybDogJ2NhZGFzdHJvL2luc3RydXRvcicsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2JhcnMnLFxyXG4gICAgICAgICAgbmFtZTogJ01vZGFsaWRhZGUnLFxyXG4gICAgICAgICAgdXJsOiAnY2FkYXN0cm8vbW9kYWxpZGFkZScsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2JyaWVmY2FzZScsXHJcbiAgICAgICAgICBuYW1lOiAnUMO6YmxpY28gQWx2bycsXHJcbiAgICAgICAgICB1cmw6ICdjYWRhc3Ryby9wdWJsaWNvLWFsdm8nLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogNSxcclxuICAgICAgaWNvbk5hbWU6ICdmb2xkZXInLFxyXG4gICAgICBuYW1lOiAnUHJlc3Rhw6fDo28gZGUgQ29udGFzJyxcclxuICAgICAgbGlzdDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIEF0aXZpZGFkZXMnLFxyXG4gICAgICAgICAgdXJsOiAncHJlc3RhY2FvL2F0aXZpZGFkZXMnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICd3YWxsZXQnLFxyXG4gICAgICAgICAgbmFtZTogJ1JlbC4gUHJvZmlzc2lvbmFpcycsXHJcbiAgICAgICAgICB1cmw6ICdwcmVzdGFjYW8vcHJvZmlzc2lvbmFpcycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyB7XHJcbiAgICAgICAgLy8gICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgLy8gICBuYW1lOiAnUmVsLiBQcm9maXNzaW9uYWlzIDIwMTcnLFxyXG4gICAgICAgIC8vICAgdXJsOiAnIycsXHJcbiAgICAgICAgLy8gICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsLiBBdGl2aWRhZGVzIEbDrXNpY28nLFxyXG4gICAgICAgICAgdXJsOiAncHJlc3RhY2FvL2F0aXZpZGFkZXMtZmlzaWNvJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDYsXHJcbiAgICAgIGljb25OYW1lOiAnZm9sZGVyJyxcclxuICAgICAgbmFtZTogJ1JlbGF0w7NyaW8gR2VyZW5jaWFsJyxcclxuICAgICAgbGlzdDogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIFByZXN0YcOnw6NvIGRlIENvbnRhJyxcclxuICAgICAgICAgIHVybDogJ3JlbGF0b3Jpby9wcmVzdGFjYW8tY29udGEnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICd3YWxsZXQnLFxyXG4gICAgICAgICAgbmFtZTogJ1JlbC4gQXRpdmlkYWRlcyBKdWxnYWRhcycsXHJcbiAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIEF0aXZpZGFkZXMgcG9yIEF0YXMnLFxyXG4gICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsLiBQcm9mLiBDTkFJIGUgQ05QQycsXHJcbiAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIFBhcnQuIHBvciBDdXJzbycsXHJcbiAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIFR1cm1hIHBvciBDdXJzbycsXHJcbiAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgIGNsaWNrRXZlbnRsYWJlbDogJ25hdmlnYXRlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGljb25OYW1lOiAnd2FsbGV0JyxcclxuICAgICAgICAgIG5hbWU6ICdSZWwuIEN1cnNvIHBvciBDYXBhYy4nLFxyXG4gICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsLiBQYXJ0LiBwb3IgRXZlbnRvJyxcclxuICAgICAgICAgIHVybDogJyMnLFxyXG4gICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWNvbk5hbWU6ICd3YWxsZXQnLFxyXG4gICAgICAgICAgbmFtZTogJ1JlbC4gRXZlbnRvIHBvciBDYXAnLFxyXG4gICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsLiBFZGnDp8OjbyBkZSBFdmVudG8nLFxyXG4gICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsLiBFZGnDp8OjbyBkZSBFdmVudG8nLFxyXG4gICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpY29uTmFtZTogJ2ZvbGRlcicsXHJcbiAgICAgICAgICBuYW1lOiAnUmVsYXTDs3JpbyBkZSBHZXN0b3InLFxyXG4gICAgICAgICAgbGlzdDogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWNvbk5hbWU6ICd3YWxsZXQnLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdBdGl2LiBBZ3VhcmQuIEFuw6FsaXNlJyxcclxuICAgICAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ0F0aXYuIGVtIEFuw6FsaXNlJyxcclxuICAgICAgICAgICAgICB1cmw6ICcjJyxcclxuICAgICAgICAgICAgICBjbGlja0V2ZW50bGFiZWw6ICduYXZpZ2F0ZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpY29uTmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ0F0aXYuIEp1bGcuIE1lbWJybycsXHJcbiAgICAgICAgICAgICAgdXJsOiAnIycsXHJcbiAgICAgICAgICAgICAgY2xpY2tFdmVudGxhYmVsOiAnbmF2aWdhdGUnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICAvLyBjZmMtbWVzc2FnZVxyXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VUeXBlLmZlZWRiYWNrO1xyXG4gIG1lc3NhZ2VTdGF0ZTogTWVzc2FnZVN0YXRlID0gTWVzc2FnZVN0YXRlLndhcm5pbmc7XHJcbiAgbWVzc2FnZU1lc3NhZ2UgPSAnTWVuc2FnZW0gZGUgYWxlcnRhLic7XHJcbiAgbWVzc2FnZURlc2NyaXB0aW9uID0gJ0Rlc2NyacOnw6NvIGRhIG1lbnNhZ2VtIGRlIGFsZXJ0YSc7XHJcblxyXG4gIG1lc3NhZ2VUeXBlczogTWVzc2FnZVR5cGVbXSA9IE9iamVjdC52YWx1ZXMoTWVzc2FnZVR5cGUpO1xyXG4gIG1lc3NhZ2VTdGF0ZXM6IE1lc3NhZ2VTdGF0ZVtdID0gT2JqZWN0LnZhbHVlcyhNZXNzYWdlU3RhdGUpO1xyXG5cclxuICAvLyBjZmMtc2VsZWN0XHJcbiAgc2VsZWN0TGFiZWwgPSAnU2VsZWN0IExhYmVsJztcclxuICBzZWxlY3RQbGFjZWhvbGRlciA9ICdzZWxlY2lvbmUgbyBpdGVtJ1xyXG4gIHNlbGVjdEZlZWRiYWNrTWVzc2FnZSA9ICdmZWVkYmFjayBhdXhpbGlhciBkZSBjb250cm9sZSdcclxuICBzZWxlY3RGZWVkYmFja1N0YXRlOiBNZXNzYWdlU3RhdGUgPSBNZXNzYWdlU3RhdGUud2FybmluZztcclxuXHJcbiAgLy8gY2ZjLXNpZ24taW5cclxuICBzaWduSW5MYWJlbCA9ICdjZmMgbGFiZWwnO1xyXG4gIHNpZ25JblR5cGU6IFNpZ25JblR5cGUgPSBTaWduSW5UeXBlLnByaW1hcnk7XHJcbiAgc2lnbkluRGVuc2l0eTogU2lnbkluRGVuc2l0eSA9IFNpZ25JbkRlbnNpdHkubWlkZGxlO1xyXG4gIHNpZ25Jbk1vZGU6IFNpZ25Jbk1vZGUgPSBTaWduSW5Nb2RlLmludGVybmFsO1xyXG4gIHNpZ25JbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgc2lnbkluQmxvY2sgPSBmYWxzZTtcclxuICBzaWduSW5DaXJjbGUgPSBmYWxzZTtcclxuICBzaWduSW5FeHRlcm5hbExhYmVsID0gJ2dvdi5icic7XHJcbiAgc2lnbkluRXh0ZXJuYWxJbWFnZVVybCA9ICdodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL2MvYzEvR29vZ2xlXyUyMkclMjJfbG9nby5zdmcnO1xyXG5cclxuICBzaWduSW5UeXBlczogU2lnbkluVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhTaWduSW5UeXBlKTtcclxuICBzaWduSW5EZW5zaXRpZXM6IFNpZ25JbkRlbnNpdHlbXSA9IE9iamVjdC52YWx1ZXMoU2lnbkluRGVuc2l0eSk7XHJcbiAgc2lnbkluTW9kZXM6IFNpZ25Jbk1vZGVbXSA9IE9iamVjdC52YWx1ZXMoU2lnbkluTW9kZSk7XHJcblxyXG4gIC8vIGNmYy10ZW1wbGF0ZS1lcnJvclxyXG4gIGlsbHVzdHJhdGlvbnMgPSBJbGx1c3RyYXRpb25UeXBlO1xyXG5cclxuICAvLyBjZmMtdGltZXJcclxuICB0aW1lclR5cGU6IFRpbWVyVHlwZSA9IFRpbWVyVHlwZS5wcmltYXJ5O1xyXG4gIHRpbWVyID0gMTIwO1xyXG4gIHRpbWVyQ3JpdGljYWwgPSAxMTU7XHJcblxyXG4gIHRpbWVyVHlwZXM6IFRpbWVyVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhUaW1lclR5cGUpO1xyXG5cclxuICBvblRpbWVFdmVudCA9ICgpID0+IHtcclxuICAgIHRoaXMudGltZXItLTtcclxuICB9O1xyXG4gIG9uVGltZU91dEV2ZW50ID0gKCkgPT4ge1xyXG4gICAgYWxlcnQoJ2VuY2Vycm91IGEgY29udGFnZW0gcmVncmVzc2l2YScpO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH07XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lOyBlbHNlIG5vQ29tcG9uZW50U2VsZWN0ZWRcIj5cclxuICA8ZGl2XHJcbiAgICBmeEZsZXg9XCJncm93XCJcclxuICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgIGZ4TGF5b3V0QWxpZ249XCJzdHJldGNoIGNlbnRlclwiXHJcbiAgICBmeExheW91dEdhcD1cIjFyZW1cIj5cclxuXHJcbiAgICA8aDIgc3R5bGU9XCJmb250LXdlaWdodDogNzAwO1wiPmNmYy17eyBzZWxlY3RlZENvbXBvbmVudC5uYW1lIH19PC9oMj5cclxuXHJcbiAgICA8Y2ZjLWF2YXRhclxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdhdmF0YXInXCJcclxuICAgICAgW3R5cGVdPVwiYXZhdGFyVHlwZVwiXHJcbiAgICAgIFtuYW1lXT1cImF2YXRhck5hbWVcIlxyXG4gICAgICBbZGVuc2l0eV09XCJhdmF0YXJEZW5zaXR5XCJcclxuICAgICAgW2ltYWdlVXJsXT1cImF2YXRhckltYWdlVXJsXCJcclxuICAgID48L2NmYy1hdmF0YXI+XHJcblxyXG4gICAgPGNmYy1icmVhZGNydW1iXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2JyZWFkY3J1bWInXCJcclxuICAgICAgW2xhYmVsXT1cImJyZWFkY3J1bWJMYWJlbFwiXHJcbiAgICA+PC9jZmMtYnJlYWRjcnVtYj5cclxuXHJcbiAgICA8Y2ZjLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdidXR0b24nXCJcclxuICAgICAgW2xhYmVsXT1cImJ1dHRvbkxhYmVsXCJcclxuICAgICAgW3R5cGVdPVwiYnV0dG9uVHlwZVwiXHJcbiAgICAgIFtzdWJtaXRdPVwiYnV0dG9uU3VibWl0XCJcclxuICAgICAgW2NpcmNsZV09XCJidXR0b25DaXJjbGVcIlxyXG4gICAgICBbZGVuc2l0eV09XCJidXR0b25EZW5zaXR5XCJcclxuICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgW2Jsb2NrXT1cImJ1dHRvbkJsb2NrXCJcclxuICAgICAgW2ljb25dPVwiYnV0dG9uSWNvblwiXHJcbiAgICAgIFthY3RpdmVdPVwiYnV0dG9uQWN0aXZlXCJcclxuICAgICAgW2ludmVydGVkXT1cImJ1dHRvbkludmVydGVkXCJcclxuICAgICAgW2xvYWRpbmddPVwiYnV0dG9uTG9hZGluZ1wiXHJcbiAgICAgIChjbGljayk9XCJidXR0b25DbGlja0V2ZW50KClcIlxyXG4gICAgPjwvY2ZjLWJ1dHRvbj5cclxuXHJcbiAgICA8Y2ZjLWNhcmRcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnY2FyZCdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiY2FyZERpc2FibGVkXCJcclxuICAgICAgW2hvdmVyXT1cImNhcmRIb3ZlclwiXHJcbiAgICA+PC9jZmMtY2FyZD5cclxuXHJcbiAgICA8Y2ZjLWNhcm91c2VsXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2Nhcm91c2VsJ1wiXHJcbiAgICA+PC9jZmMtY2Fyb3VzZWw+XHJcblxyXG4gICAgPGNmYy1jaGVja2JveGVzXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2NoZWNrYm94ZXMnXCJcclxuICAgID48L2NmYy1jaGVja2JveGVzPlxyXG5cclxuICAgIDxjZmMtY2hlY2tib3gtb3B0aW9uXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2NoZWNrYm94LW9wdGlvbidcIlxyXG4gICAgICBbc3RhdGVdPVwiY2hlY2tib3hPcHRpb25TdGF0ZVwiXHJcbiAgICAgIFt0eXBlXT1cImNoZWNrYm94T3B0aW9uVHlwZVwiXHJcbiAgICAgIFtvcHRpb25dPVwiY2hlY2tib3hPcHRpb25PcHRpb25cIlxyXG4gICAgICBbKGNoZWNrZWQpXT1cImNoZWNrYm94T3B0aW9uQ2hlY2tlZFwiXHJcbiAgICA+PC9jZmMtY2hlY2tib3gtb3B0aW9uPlxyXG5cclxuICAgIDxjZmMtY29sbGFwc2VcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnY29sbGFwc2UnXCJcclxuICAgID48L2NmYy1jb2xsYXBzZT5cclxuXHJcbiAgICA8Y2ZjLWNvb2tpZS1iYXJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnY29va2llLWJhcidcIlxyXG4gICAgPjwvY2ZjLWNvb2tpZS1iYXI+XHJcblxyXG4gICAgPGNmYy1kYXRldGltZXItcGlja2VyXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2RhdGV0aW1lci1waWNrZXInXCJcclxuICAgID48L2NmYy1kYXRldGltZXItcGlja2VyPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnZGl2aWRlcidcIlxyXG4gICAgICBbZnhMYXlvdXRdPVwiZGl2aWRlckF4aXMgPT09ICdob3Jpem9udGFsJyA/ICdjb2x1bW4nIDogJ3JvdydcIj5cclxuICAgICAgPGRpdj5VbWEgY29pc2E8L2Rpdj5cclxuICAgICAgPGNmYy1kaXZpZGVyXHJcbiAgICAgICAgW21vZGVdPVwiZGl2aWRlck1vZGVcIlxyXG4gICAgICAgIFt0eXBlXT1cImRpdmlkZXJUeXBlXCJcclxuICAgICAgICBbYXhpc109XCJkaXZpZGVyQXhpc1wiXHJcbiAgICAgICAgW2RlbnNpdHldPVwiZGl2aWRlckRlbnNpdHlcIlxyXG4gICAgICA+PC9jZmMtZGl2aWRlcj5cclxuICAgICAgPGRpdj5PdSBvdXRyYTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNmYy1mb290ZXJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnZm9vdGVyJ1wiXHJcbiAgICAgIFtwcm9qZWN0TmFtZV09XCJmb290ZXJQcm9qZWN0TmFtZVwiXHJcbiAgICAgIFtwcm9qZWN0VmVyc2lvbl09XCJmb290ZXJQcm9qZWN0VmVyc2lvblwiXHJcbiAgICA+PC9jZmMtZm9vdGVyPlxyXG5cclxuICAgIDxjZmMtaGVhZGVyXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2hlYWRlcidcIlxyXG4gICAgICBbdGl0bGVdPVwiaGVhZGVyVGl0bGVcIlxyXG4gICAgICBbZGVzY3JpcHRpb25dPVwiaGVhZGVyRGVzY3JpcHRpb25cIlxyXG4gICAgICBbdXNlck5hbWVdPVwiaGVhZGVyVXNlck5hbWVcIlxyXG4gICAgICBbdmlld01vZGVdPVwiaGVhZGVyVmlld01vZGVcIlxyXG4gICAgICBbaGFzTWVudV09XCJoZWFkZXJIYXNNZW51XCJcclxuICAgICAgW2hhc1RpbWVyXT1cImhlYWRlckhhc1RpbWVyXCJcclxuICAgICAgW2hhc0Jvb2tJY29uXT1cImhlYWRlckhhc0Jvb2tJY29uXCJcclxuICAgICAgW2xvZ29WaWV3TW9kZV09XCJoZWFkZXJMb2dvVmlld01vZGVcIlxyXG4gICAgICBbdGltZUxvZ291dF09XCJoZWFkZXJUaW1lT3V0XCJcclxuICAgICAgW3RpbWVDcml0aWNhbF09XCJoZWFkZXJUaW1lQ3JpdGljYWxcIlxyXG4gICAgICAoY3JpdGljYWxUaW1lRXZlbnQpPVwiaGVhZGVyQ2xpY2tFdmVudCgpXCJcclxuICAgID48L2NmYy1oZWFkZXI+XHJcblxyXG4gICAgPGNmYy1pY29uXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2ljb24nXCJcclxuICAgICAgW2ljb25OYW1lXT1cImljb25OYW1lXCJcclxuICAgICAgW2ZhbWlseU5hbWVdPVwiaWNvbkZhbWlseU5hbWVcIlxyXG4gICAgICBbY2xhc3NOYW1lXT1cImljb25DbGFzc05hbWVcIlxyXG4gICAgICBbc2l6ZV09XCJpY29uU2l6ZVwiXHJcbiAgICAgIFtjb2xvcl09XCJpY29uQ29sb3JcIlxyXG4gICAgPjwvY2ZjLWljb24+XHJcblxyXG4gICAgPGNmYy1pbnB1dFxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdpbnB1dCdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaW5wdXREaXNhYmxlZFwiXHJcbiAgICAgIFtkZW5zaXR5XT1cImlucHV0RGVuc2l0eVwiXHJcbiAgICAgIFtpc1Bhc3N3b3JkXT1cImlucHV0SXNQYXNzd29yZFwiXHJcbiAgICAgIFtsYWJlbF09XCJpbnB1dExhYmVsXCJcclxuICAgICAgW3R5cGVdPVwiaW5wdXRUeXBlXCJcclxuICAgICAgW2J1dHRvbkljb25dPVwiaW5wdXRCdXR0b25JY29uXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImlucHV0UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbbGFiZWxJbmxpbmVdPVwiaW5wdXRMYWJlbElubGluZVwiXHJcbiAgICAgIFtzdGF0ZV09XCJpbnB1dFN0YXRlXCJcclxuICAgICAgW2ljb25dPVwiaW5wdXRJY29uXCJcclxuICAgICAgKG9uQ2hhbmdlKT1cImlucHV0T25DaGFuZ2UoKVwiXHJcbiAgICAgIChvbklucHV0KT1cImlucHV0T25JbnB1dCgpXCJcclxuICAgICAgKG9uSWNvbkNsaWNrZWQpPVwiaW5wdXRPbkljb25DbGlja2VkKClcIlxyXG4gICAgICAob25JY29uU3VibWl0ZWQpPVwiaW5wdXRPbkljb25TdWJtaXRlZCgpXCJcclxuICAgID48L2NmYy1pbnB1dD5cclxuXHJcbiAgICA8Y2ZjLWl0ZW1cclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnaXRlbSdcIlxyXG4gICAgICBbdHlwZV09XCJpdGVtVHlwZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpdGVtRGlzYWJsZWRcIlxyXG4gICAgICBbc2VsZWN0ZWRdPVwiaXRlbVNlbGVjdGVkXCJcclxuICAgICAgW2hhc0RpdmlkZXJdPVwiaXRlbUhhc0RpdmlkZXJcIlxyXG4gICAgICBbdXJsXT1cIml0ZW1VcmxcIj5cclxuICAgICAgPHNwYW4gZGVmYXVsdD5cclxuICAgICAgICB7eyBpdGVtQ29udGVudCB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGJ1dHRvbj5cclxuICAgICAgICB7eyBpdGVtQ29udGVudCB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGxpbms+XHJcbiAgICAgICAge3sgaXRlbUNvbnRlbnQgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9jZmMtaXRlbT5cclxuXHJcbiAgICA8Y2ZjLWxvYWRpbmdcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnbG9hZGluZydcIlxyXG4gICAgICBbZGVuc2l0eV09XCJsb2FkaW5nRGVuc2l0eVwiXHJcbiAgICAgIFtwcm9ncmVzc109XCJsb2FkaW5nUHJvZ3Jlc3NcIlxyXG4gICAgPjwvY2ZjLWxvYWRpbmc+XHJcblxyXG4gICAgPGNmYy1saXN0XHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2xpc3QnXCJcclxuICAgICAgW3RpdGxlXT1cIidNaW5oYSBMaXN0YSdcIj5cclxuICAgICAgPGNmYy1saXN0LWl0ZW0+XHJcbiAgICAgICAgSXRlbSAxXHJcbiAgICAgIDwvY2ZjLWxpc3QtaXRlbT5cclxuICAgICAgPGNmYy1saXN0LWl0ZW0+XHJcbiAgICAgICAgSXRlbSAyXHJcbiAgICAgIDwvY2ZjLWxpc3QtaXRlbT5cclxuICAgICAgPGNmYy1saXN0LWl0ZW0+XHJcbiAgICAgICAgPHN0cm9uZz5JdGVtIDMgY29tIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvPC9zdHJvbmc+XHJcbiAgICAgIDwvY2ZjLWxpc3QtaXRlbT5cclxuICAgIDwvY2ZjLWxpc3Q+XHJcblxyXG4gICAgPGNmYy1sb2dvXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2xvZ28nXCJcclxuICAgICAgW3dpZHRoXT1cImxvZ29XaWR0aFwiXHJcbiAgICAgIFt2aWV3TW9kZV09XCJsb2dvVmlld01vZGVcIlxyXG4gICAgICBbaXNDbGlja2FibGVdPVwibG9nb0lzQ2xpY2thYmxlXCJcclxuICAgICAgKGNsaWNrRXZlbnQpPVwibG9nb0NsaWNrRXZlbnRcIlxyXG4gICAgPjwvY2ZjLWxvZ28+XHJcblxyXG4gICAgPGNmYy1tYWdpYy1idXR0b25cclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnbWFnaWMtYnV0dG9uJ1wiXHJcbiAgICA+PC9jZmMtbWFnaWMtYnV0dG9uPlxyXG5cclxuICAgIDxjZmMtbWVudVxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdtZW51J1wiXHJcbiAgICAgIFttZW51SXRlbXNdPVwibWVudUl0ZW1zXCJcclxuICAgID48L2NmYy1tZW51PlxyXG5cclxuICAgIDxjZmMtbWVzc2FnZVxyXG4gICAgICAjbWVzc2FnZVxyXG4gICAgICBbaGlkZGVuXT1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgIT09ICdtZXNzYWdlJ1wiXHJcbiAgICAgIFt0eXBlXT1cIm1lc3NhZ2VUeXBlXCJcclxuICAgICAgW3N0YXRlXT1cIm1lc3NhZ2VTdGF0ZVwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VNZXNzYWdlXCJcclxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIm1lc3NhZ2VEZXNjcmlwdGlvblwiXHJcbiAgICA+PC9jZmMtbWVzc2FnZT5cclxuXHJcbiAgICA8Y2ZjLW1vZGFsXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ21vZGFsJ1wiXHJcbiAgICA+PC9jZmMtbW9kYWw+XHJcblxyXG4gICAgPGNmYy1ub3RpZmljYXRpb25cclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnbm90aWZpY2F0aW9uJ1wiXHJcbiAgICA+PC9jZmMtbm90aWZpY2F0aW9uPlxyXG5cclxuICAgIDxjZmMtbm90aWZpY2F0aW9uLXBhbmVsXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ25vdGlmaWNhdGlvbi1wYW5lbCdcIlxyXG4gICAgPjwvY2ZjLW5vdGlmaWNhdGlvbi1wYW5lbD5cclxuXHJcbiAgICA8Y2ZjLXBhZ2UtY29udGVudFxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdwYWdlLWNvbnRlbnQnXCJcclxuICAgID48L2NmYy1wYWdlLWNvbnRlbnQ+XHJcblxyXG4gICAgPGNmYy1wYWdpbmF0aW9uXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ3BhZ2luYXRpb24nXCJcclxuICAgID48L2NmYy1wYWdpbmF0aW9uPlxyXG5cclxuICAgIDxjZmMtcmFkaW9cclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAncmFkaW8nXCJcclxuICAgID48L2NmYy1yYWRpbz5cclxuXHJcbiAgICA8Y2ZjLXNjcmltXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ3NjcmltJ1wiXHJcbiAgICA+PC9jZmMtc2NyaW0+XHJcblxyXG4gICAgPGNmYy1zZWxlY3RcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnc2VsZWN0J1wiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtsYWJlbF09XCJzZWxlY3RMYWJlbFwiXHJcbiAgICAgIFtmZWVkYmFja01lc3NhZ2VdPVwic2VsZWN0RmVlZGJhY2tNZXNzYWdlXCJcclxuICAgICAgW2ZlZWRiYWNrU3RhdGVdPVwic2VsZWN0RmVlZGJhY2tTdGF0ZVwiXHJcbiAgICA+PC9jZmMtc2VsZWN0PlxyXG5cclxuICAgIDxjZmMtc2lnbi1pblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdzaWduLWluJ1wiXHJcbiAgICAgIFtsYWJlbF09XCJzaWduSW5MYWJlbFwiXHJcbiAgICAgIFt0eXBlXT1cInNpZ25JblR5cGVcIlxyXG4gICAgICBbZGVuc2l0eV09XCJzaWduSW5EZW5zaXR5XCJcclxuICAgICAgW21vZGVdPVwic2lnbkluTW9kZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJzaWduSW5EaXNhYmxlZFwiXHJcbiAgICAgIFtibG9ja109XCJzaWduSW5CbG9ja1wiXHJcbiAgICAgIFtjaXJjbGVdPVwic2lnbkluQ2lyY2xlXCJcclxuICAgICAgW2V4dGVybmFsSW1hZ2VVcmxdPVwic2lnbkluRXh0ZXJuYWxJbWFnZVVybFwiXHJcbiAgICAgIFtleHRlcm5hbExhYmVsXT1cInNpZ25JbkV4dGVybmFsTGFiZWxcIlxyXG4gICAgPjwvY2ZjLXNpZ24taW4+XHJcblxyXG4gICAgPGNmYy1za2lwbGlua1xyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdza2lwbGluaydcIlxyXG4gICAgPjwvY2ZjLXNraXBsaW5rPlxyXG5cclxuICAgIDxjZmMtc2xpZGVyXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ3NsaWRlcidcIlxyXG4gICAgPjwvY2ZjLXNsaWRlcj5cclxuXHJcbiAgICA8Y2ZjLXN3aXRjaFxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdzd2l0Y2gnXCJcclxuICAgID48L2NmYy1zd2l0Y2g+XHJcblxyXG4gICAgPGNmYy10YWJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAndGFiJ1wiXHJcbiAgICA+PC9jZmMtdGFiPlxyXG5cclxuICAgIDxjZmMtdGFibGVcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAndGFibGUnXCJcclxuICAgID48L2NmYy10YWJsZT5cclxuXHJcbiAgICA8Y2ZjLXRhZ1xyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICd0YWcnXCJcclxuICAgID48L2NmYy10YWc+XHJcblxyXG4gICAgPGNmYy10ZW1wbGF0ZS1lcnJvclxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICd0ZW1wbGF0ZS1lcnJvcidcIlxyXG4gICAgICBpbGx1c3RyYXRpb25Vcmw9XCJhc3NldHMvaWxsdXN0cmF0aW9ucy9lcnJvcjE5LnBuZ1wiXHJcbiAgICAgIFtwcmluY2lwYWxUZXh0XT1cIidMb3JlbSBJcHN1bSdcIlxyXG4gICAgICBbc2Vjb25kYXJ5VGV4dF09XCInTG9yZW0gSXBzdW0nXCJcclxuICAgICAgW3N1cG9ydFRleHRdPVwiJ0xvcmVtIElwc3VtJ1wiXHJcbiAgICA+PC9jZmMtdGVtcGxhdGUtZXJyb3I+XHJcblxyXG4gICAgPGNmYy10ZXh0YXJlYVxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICd0ZXh0YXJlYSdcIlxyXG4gICAgPjwvY2ZjLXRleHRhcmVhPlxyXG5cclxuICAgIDxjZmMtdGltZXJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAndGltZXInXCJcclxuICAgICAgW3R5cGVdPVwidGltZXJUeXBlXCJcclxuICAgICAgW2luaXRpYWxUaW1lXT1cInRpbWVyXCJcclxuICAgICAgW2NyaXRpY2FsVGltZV09XCJ0aW1lckNyaXRpY2FsXCJcclxuICAgICAgKHRpbWVFdmVudCk9XCJvblRpbWVFdmVudCgpXCJcclxuICAgICAgKHRpbWVPdXRFdmVudCk9XCJvblRpbWVPdXRFdmVudCgpXCJcclxuICAgID48L2NmYy10aW1lcj5cclxuXHJcbiAgICA8Y2ZjLXRvb2x0aXBcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAndG9vbHRpcCdcIlxyXG4gICAgPjwvY2ZjLXRvb2x0aXA+XHJcblxyXG4gICAgPGNmYy11cGxvYWRcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAndXBsb2FkJ1wiXHJcbiAgICA+PC9jZmMtdXBsb2FkPlxyXG5cclxuICAgIDxjZmMtd2l6YXJkXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ3dpemFyZCdcIlxyXG4gICAgPjwvY2ZjLXdpemFyZD5cclxuXHJcbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgIDxjZmMtZGl2aWRlcj48L2NmYy1kaXZpZGVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGZvcm1cclxuICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcblxyXG4gICAgICA8IS0tIGF2YXRhciAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdhdmF0YXInXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwidHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImF2YXRhclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2YgYXZhdGFyVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0eXBlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cIm5hbWVcIj5cclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhdmF0YXJOYW1lXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkZW5zaXR5XCI+XHJcbiAgICAgICAgICAgICAgICBkZW5zaXR5XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cImRlbnNpdHlcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhdmF0YXJEZW5zaXR5XCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJkZW5zaXR5XCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkZW5zaXR5IG9mIGF2YXRhckRlbnNpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkZW5zaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRlbnNpdHkgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgIGltYWdlVXJsXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXZhdGFySW1hZ2VVcmxcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImltYWdlVXJsXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBicmVhZGNydW1iIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2JyZWFkY3J1bWInXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICBsYWJlbFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImJyZWFkY3J1bWJMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibGFiZWxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIGJ1dHRvbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdidXR0b24nXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICBsYWJlbFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImJ1dHRvbkxhYmVsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYnV0dG9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdHlwZSBvZiBidXR0b25UeXBlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgZGVuc2l0eVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJkZW5zaXR5XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYnV0dG9uRGVuc2l0eVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGVuc2l0eSBvZiBidXR0b25EZW5zaXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBkZW5zaXR5IH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImljb25cIj5cclxuICAgICAgICAgICAgICAgIGljb25cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJidXR0b25JY29uXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJjaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIGNpcmNsZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJidXR0b25DaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBjaXJjbGVcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgbm90IGNpcmNsZVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICAgIHN1Ym1pdFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJidXR0b25TdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInN1Ym1pdFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBzdWJtaXRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgbm90IHN1Ym1pdFxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJidXR0b25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgYmxvY2tcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiYmxvY2tcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJidXR0b25CbG9ja1wiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgYmxvY2tcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgbm90IGJsb2NrXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImludmVydGVkXCI+XHJcbiAgICAgICAgICAgICAgICBpbnZlcnRlZFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpbnZlcnRlZFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImJ1dHRvbkludmVydGVkXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpbnZlcnRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBpbnZlcnRlZFxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICBub3QgaW52ZXJ0ZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiYWN0aXZlZFwiPlxyXG4gICAgICAgICAgICAgICAgYWN0aXZlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cImFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImJ1dHRvbkFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIGFjdGl2ZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmVkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIGxvYWRpbmdcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImJ1dHRvbkxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgbG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICBub3QgbG9hZGluZ1xyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBjaGVja2JveC1vcHRpb24gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnY2hlY2tib3gtb3B0aW9uJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJzdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgc3RhdGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwic3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja2JveE9wdGlvblN0YXRlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RhdGUgb2YgY2hlY2tib3hPcHRpb25TdGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgc3RhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICB0eXBlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInR5cGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja2JveE9wdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2YgY2hlY2tib3hPcHRpb25UeXBlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cIm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA5MHB4OyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XCJcclxuICAgICAgICAgICAgICAgIGlkPVwib3B0aW9uXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHk+XHJcbntcclxuICBuYW1lOiB7eyBjaGVja2JveE9wdGlvbk9wdGlvbi5uYW1lIH19LFxyXG4gIHZhbHVlOiB7eyBjaGVja2JveE9wdGlvbk9wdGlvbi52YWx1ZSB9fVxyXG59PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImNoZWNrZWRDaGFuZ2VcIj5cclxuICAgICAgICAgICAgICAgIGNoZWNrZWRDaGFuZ2VcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDcwcHg7IHdpZHRoOiAyMjBweDsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyBmb250LWZhbWlseTogbW9ub3NwYWNlO1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY2hlY2tlZENoYW5nZVwiXHJcbiAgICAgICAgICAgICAgICByZWFkb25seT5cclxue3sgY2hlY2tib3hPcHRpb25DaGVja2VkIH19XHJcbnt7IGNoZWNrYm94T3B0aW9uT3B0aW9uLnZhbHVlIH19e3sgIWNoZWNrYm94T3B0aW9uQ2hlY2tlZCA/ICcgbsOjbycgOiAnJyB9fSBzZWxlY2lvbmFkYS48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gZGl2aWRlciAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdkaXZpZGVyJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJtb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBtb2RlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkaXZpZGVyTW9kZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9kZSBvZiBkaXZpZGVyTW9kZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBtb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwidHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRpdmlkZXJUeXBlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0eXBlIG9mIGRpdmlkZXJUeXBlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiYXhpc1wiPlxyXG4gICAgICAgICAgICAgICAgYXhpc1xyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJheGlzXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGl2aWRlckF4aXNcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImF4aXNcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGF4aXMgb2YgZGl2aWRlckF4aXNlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJheGlzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGF4aXMgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgZGVuc2l0eVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJkZW5zaXR5XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGl2aWRlckRlbnNpdHlcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRlbnNpdHkgb2YgZGl2aWRlckRlbnNpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkZW5zaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRlbnNpdHkgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gaGVhZGVyIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2hlYWRlcidcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHRpdGxlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGVhZGVyVGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInZpZXdNb2RlXCI+XHJcbiAgICAgICAgICAgICAgICB2aWV3TW9kZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJWaWV3TW9kZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidmlld01vZGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZpZXdNb2RlIG9mIGhlYWRlclZpZXdNb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2aWV3TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB2aWV3TW9kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJ1c2VyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgdXNlck5hbWVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJVc2VyTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlck5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInRpbWVPdXRcIj5cclxuICAgICAgICAgICAgICAgIHRpbWVPdXRcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlclRpbWVPdXRcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInRpbWVPdXRcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImxvZ29Nb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBsb2dvTW9kZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJMb2dvVmlld01vZGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImxvZ29Nb2RlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsb2dvTW9kZSBvZiBoZWFkZXJMb2dvVmlld01vZGVzXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ29Nb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGxvZ29Nb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIGljb24gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZENvbXBvbmVudC5uYW1lID09PSAnaWNvbidcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiaWNvbk5hbWVcIj5cclxuICAgICAgICAgICAgICAgIGljb25OYW1lXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaWNvbk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImljb25OYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJmYW1pbHlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICBmYW1pbHlOYW1lXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaWNvbkZhbWlseU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImZhbWlseU5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImNsYXNzTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaWNvbkNsYXNzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NOYW1lXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJzaXplXCI+XHJcbiAgICAgICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaWNvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInNpemVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImljb25Db2xvclwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY29sb3JcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIGlucHV0IC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2lucHV0J1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgbGFiZWxcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dExhYmVsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwic3RhdGVcIj5cclxuICAgICAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInN0YXRlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwic3RhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2YgaW5wdXRTdGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0eXBlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICAgIGRlbnNpdHlcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZGVuc2l0eVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0RGVuc2l0eVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGVuc2l0eSBvZiBpbnB1dERlbnNpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkZW5zaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRlbnNpdHkgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImlzcGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICAgIGlzcGFzc3dvcmRcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0SXNQYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaXNwYXNzd29yZFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBpc3Bhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIG5vdCBpc3Bhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0RGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwibGFiZWxJbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgIGxhYmVsSW5saW5lXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cImxhYmVsSW5saW5lXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRMYWJlbElubGluZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibGFiZWxJbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgcm93XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtblxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJpY29uQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICBpY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRCdXR0b25JY29uXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpY29uQnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJpY29uQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICBpY29uXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRJY29uXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpY29uXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBpdGVtIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2l0ZW0nXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIGNvbnRlbnRcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtQ29udGVudFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2YgaXRlbVR5cGVzXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgdHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwidXJsXCI+XHJcbiAgICAgICAgICAgICAgICB1cmxcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtVXJsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1cmxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW1TZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgbm90IHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImhhc0RpdmlkZXJcIj5cclxuICAgICAgICAgICAgICAgIGhhc0RpdmlkZXJcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaGFzRGl2aWRlclwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW1IYXNEaXZpZGVyXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJoYXNEaXZpZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIGRpdmlkZXJcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgbm90IGRpdmlkZXJcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gbG9hZGluZyAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdsb2FkaW5nJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgZm9yPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICBkZW5zaXR5XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9hZGluZ0RlbnNpdHlcIlxyXG4gICAgICAgICAgICBuYW1lPVwiZGVuc2l0eVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRlbnNpdHkgb2YgbG9hZGluZ0RlbnNpdGllc1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICB7eyBkZW5zaXR5IH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBmb3I9XCJwcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICBwcm9ncmVzc1xyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9hZGluZ1Byb2dyZXNzXCJcclxuICAgICAgICAgICAgbmFtZT1cInByb2dyZXNzXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBsb2dvIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ2xvZ28nXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBmb3I9XCJ2aWV3TW9kZVwiPlxyXG4gICAgICAgICAgICB2aWV3TW9kZVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ29WaWV3TW9kZVwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJ2aWV3TW9kZVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZpZXdNb2RlIG9mIGxvZ29WaWV3TW9kZXNcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ2aWV3TW9kZVwiPlxyXG4gICAgICAgICAgICAgIHt7IHZpZXdNb2RlIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBmb3I9XCJ3aWR0aFwiPlxyXG4gICAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nb1dpZHRoXCJcclxuICAgICAgICAgICAgbmFtZT1cIndpZHRoXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBmb3I9XCJjbGlja0V2ZW50XCI+XHJcbiAgICAgICAgICAgIGNsaWNrRXZlbnRcclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgaWQ9XCJsb2dvSXNDbGlja2FibGVcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ29Jc0NsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJjbGlja0V2ZW50XCI+XHJcbiAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIGNsaWPDoXZlbFxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgIG7Do28gY2xpY8OhdmVsXHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBtZXNzYWdlIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRDb21wb25lbnQubmFtZSA9PT0gJ21lc3NhZ2UnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwidHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VUeXBlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0eXBlIG9mIG1lc3NhZ2VUeXBlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwic3RhdGVcIj5cclxuICAgICAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cInN0YXRlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVN0YXRlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RhdGUgb2YgbWVzc2FnZVN0YXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBzdGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJtZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZU1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cIm1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxjZmMtYnV0dG9uIChjbGljayk9XCJtZXNzYWdlLm9wZW5NZXNzYWdlKClcIiBsYWJlbD1cIm9wZW5cIj48L2NmYy1idXR0b24+XHJcbiAgICAgICAgICAgIDxjZmMtYnV0dG9uIChjbGljayk9XCJtZXNzYWdlLmNsb3NlTWVzc2FnZSgpXCIgbGFiZWw9XCJjbG9zZVwiPjwvY2ZjLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gc2lnbi1pbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICdzaWduLWluJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgbGFiZWxcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaWduSW5MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwibGFiZWxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIHR5cGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwidHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNpZ25JblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2Ygc2lnbkluVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0eXBlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICAgIGRlbnNpdHlcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiZGVuc2l0eVwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNpZ25JbkRlbnNpdHlcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRlbnNpdHkgb2Ygc2lnbkluRGVuc2l0aWVzXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRlbnNpdHlcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZGVuc2l0eSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJtb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBtb2RlXHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBpZD1cIm1vZGVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaWduSW5Nb2RlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJtb2RlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtb2RlIG9mIHNpZ25Jbk1vZGVzXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgbW9kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJoYXNEaXZpZGVyXCI+XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNpZ25JbkRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICBibG9ja1xyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJibG9ja1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNpZ25JbkJsb2NrXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICBibG9ja1xyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICBub3QgYmxvY2tcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICBjaXJjbGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGVzdC1jb21wb25lbnRfX2lucHV0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2lnbkluQ2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJjaXJjbGVcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgY2lyY2xlXHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIG5vdCBjaXJjbGVcclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiZXh0ZXJuYWxJbWFnZVVybFwiPlxyXG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxJbWFnZVVybFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNpZ25JbkV4dGVybmFsSW1hZ2VVcmxcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImV4dGVybmFsSW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImV4dGVybmFsTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIGV4dGVybmFsTGFiZWxcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzaWduSW5FeHRlcm5hbExhYmVsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJleHRlcm5hbExhYmVsXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSB0aW1lciAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Lm5hbWUgPT09ICd0aW1lcidcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGltZXJUeXBlXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0eXBlIG9mIHRpbWVyVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyB0eXBlIH19XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInRpbWVyXCI+XHJcbiAgICAgICAgICAgICAgICB0aW1lclxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRlc3QtY29tcG9uZW50X19pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDBweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRpbWVyXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0aW1lclwiXHJcbiAgICAgICAgICAgICAgICByZWFkb25seT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cInRpbWVyQ3JpdGljYWxcIj5cclxuICAgICAgICAgICAgICAgIHRpbWVyQ3JpdGljYWxcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aW1lckNyaXRpY2FsXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0aW1lckNyaXRpY2FsXCJcclxuICAgICAgICAgICAgICAgIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgIGZvcj1cInRpbWVyXCI+XHJcbiAgICAgICAgICAgICAgdGltZXJcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0LWNvbXBvbmVudF9faW5wdXRcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDQwMHB4ICFpbXBvcnRhbnQ7IGhlaWdodDogbWF4LWNvbnRlbnQ7XCJcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBuYW1lPVwidGltZXJcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgIHRpbWVFdmVudCBkaXNwYXJlZCBpbiB7eyB0aW1lciB9fSBzZWNvbmRzLlxyXG4gICAgICAgICAgICA8L3RleHRhcmVhPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbm9Db21wb25lbnRTZWxlY3RlZD5cclxuICA8ZGl2PlxyXG4gICAgPGg0XHJcbiAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICBOZW5odW0gY29tcG9uZW50ZSBzZWxlY2lvbmFkbyBhaW5kYVxyXG4gICAgPC9oND5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19