keevo-components 2.0.149 → 2.0.150

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,175 @@
1
+ import { Component, computed, EventEmitter, input, Input, Output, signal } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PdfViewerModule } from 'ng2-pdf-viewer';
4
+ import { KvFileViewerNovoModule } from '../kv-file-viewer-novo/kv-file-viewer-novo.module';
5
+ import { NgxLoadingModule } from 'ngx-loading';
6
+ import { PrimeNgModule } from '../../api/modules/primeng.module';
7
+ import { KvButtonModule } from '../kv-button/kv-button.module';
8
+ import { KvButtonsModule } from '../kv-buttons/kv-button.module';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../api/services/notification.service";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "primeng/autofocus";
13
+ import * as i4 from "primeng/inputtext";
14
+ import * as i5 from "primeng/skeleton";
15
+ import * as i6 from "../kv-file-viewer-novo/kv-file-viewer-novo.component";
16
+ import * as i7 from "ngx-loading";
17
+ import * as i8 from "../kv-button/kv-button.component";
18
+ export class KvDetailedListComponent {
19
+ constructor(notificationService) {
20
+ this.notificationService = notificationService;
21
+ // #region Signals
22
+ this.dataSource = input([]);
23
+ this.paginaInicial = signal(1);
24
+ this.arquivo = input(undefined);
25
+ this.arquivoPreview = signal(undefined);
26
+ this.nomeArquivo = signal('');
27
+ this.type = input(undefined);
28
+ this.blob = input('');
29
+ this.idarquivo = signal(undefined);
30
+ this.ekpContent = input(undefined);
31
+ this.totalItensCarregado = computed(() => this.dataSource()?.length || 0);
32
+ this.widthPage = signal(0);
33
+ this.previewOn = false;
34
+ this.selectedItem = {};
35
+ this.totalRecords = 0;
36
+ this.isLoading = false;
37
+ this.displaySidebar = false;
38
+ this.isSelected = false;
39
+ this.visualizadorDocumentos = false;
40
+ this.indvisualizado = false;
41
+ this.isLoadingSkeleton = false;
42
+ this.borderCardNaoVisualizado = true;
43
+ this.contentForm = false;
44
+ this.enableSearch = false;
45
+ this.searchPlaceholder = 'Pesquisar...';
46
+ this.listTitle = '';
47
+ this.contentViewer = false;
48
+ this.keyVisualizado = 'indvisualizado';
49
+ // #endregion
50
+ // #region Outputs
51
+ this.onScrollHandler = new EventEmitter();
52
+ this.onSelectFile = new EventEmitter();
53
+ this.onSave = new EventEmitter();
54
+ this.onCancel = new EventEmitter();
55
+ this.onSearch = new EventEmitter();
56
+ }
57
+ todayDate() {
58
+ const today = new Date();
59
+ return today.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit', year: 'numeric' });
60
+ }
61
+ // #endregion
62
+ trackByFn(index, item) {
63
+ return item.idarquivo;
64
+ }
65
+ isVisualizado(option) {
66
+ return option[this.keyVisualizado] || false;
67
+ }
68
+ visualizarPreview(arquivo, buttonTemplate) {
69
+ if (buttonTemplate) {
70
+ this.contentViewer = true;
71
+ }
72
+ else {
73
+ arquivo[this.keyVisualizado] = true;
74
+ this.contentViewer = true;
75
+ this.arquivoPreview.set(arquivo);
76
+ }
77
+ this.onSelectFile.emit(arquivo);
78
+ }
79
+ OnSave() {
80
+ this.onSave.emit();
81
+ this.contentViewer = false;
82
+ this.arquivoPreview.set(undefined);
83
+ }
84
+ OnCancel() {
85
+ this.notificationService.question({
86
+ type: 'question',
87
+ message: 'Você fez alterações que não foram salvas. Tem certeza que deseja cancelar?',
88
+ accept: () => {
89
+ this.onCancel.emit();
90
+ this.contentViewer = false;
91
+ this.arquivoPreview.set(undefined);
92
+ },
93
+ });
94
+ }
95
+ onGlobalFilter(event) {
96
+ this.onSearch.emit(event.target.value);
97
+ }
98
+ ngOnInit() {
99
+ this.widthPage.set(window.innerWidth);
100
+ document.addEventListener('fullscreenchange', () => {
101
+ const button = document.getElementById('fullscreenBtn');
102
+ if (button) {
103
+ if (!document.fullscreenElement) {
104
+ button.textContent = 'open_in_full';
105
+ }
106
+ else {
107
+ button.textContent = 'close_fullscreen';
108
+ }
109
+ }
110
+ });
111
+ }
112
+ scrollHandler($event) {
113
+ const element = $event.target;
114
+ //se o escroll chegar até o final
115
+ if (element.scrollHeight - element.scrollTop === element.clientHeight) {
116
+ // this.buscarProximosDocumentos();
117
+ this.onScrollHandler.emit($event);
118
+ }
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvDetailedListComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvDetailedListComponent, isStandalone: true, selector: "kv-detailed-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: false, isRequired: false, transformFunction: null }, listBottomTemplate: { classPropertyName: "listBottomTemplate", publicName: "listBottomTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null }, isLoadingSkeleton: { classPropertyName: "isLoadingSkeleton", publicName: "isLoadingSkeleton", isSignal: false, isRequired: false, transformFunction: null }, borderCardNaoVisualizado: { classPropertyName: "borderCardNaoVisualizado", publicName: "borderCardNaoVisualizado", isSignal: false, isRequired: false, transformFunction: null }, contentForm: { classPropertyName: "contentForm", publicName: "contentForm", isSignal: false, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: false, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile", onSave: "onSave", onCancel: "onCancel", onSearch: "onSearch" }, ngImport: i0, template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 custom-max-height \"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\r\n >\r\n \r\n <div class=\"col-12\">\r\n <div class=\"flex align-items-center\">\r\n @if(listTitle) {\r\n <p class=\"w-full flex align-items-start font-semibold text-md\">{{listTitle}}</p>\r\n }\r\n @if(enableSearch) {\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"widthPage() > 800\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter($event)\"\r\n [placeholder]=\"searchPlaceholder\"\r\n autocomplete=\"off\"\r\n #inputField\r\n class=\"text-sm col-6\"\r\n style=\"height: 2rem;\"/>\r\n }\r\n </div>\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"mt-2\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-detailed-list aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\r\n } @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\"flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-visualizador col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative;\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\"\r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n style=\"max-height: 100%\"\r\n >\r\n </kv-file-viewer-novo>\r\n\r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%; overflow-y: auto\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Sem_Dados.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil,.card-visualizador{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}@media (max-width: 768px){.card-perfil{max-height:20rem;overflow-y:auto}}@media (max-width: 768px){.card-visualizador{max-height:100%;overflow-y:auto}}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{height:100%}@media (max-height: 768px){.custom-max-height{height:auto;min-height:100vh}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "ngmodule", type: PrimeNgModule }, { kind: "directive", type: i3.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i5.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: KvFileViewerNovoModule }, { kind: "component", type: i6.KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "ngmodule", type: NgxLoadingModule }, { kind: "component", type: i7.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }, { kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i8.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup", "popupIcon"], outputs: ["iconChange", "onClick"] }, { kind: "ngmodule", type: KvButtonsModule }] }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvDetailedListComponent, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'kv-detailed-list', standalone: true, imports: [CommonModule,
126
+ PdfViewerModule,
127
+ PrimeNgModule,
128
+ KvFileViewerNovoModule,
129
+ NgxLoadingModule,
130
+ KvButtonModule,
131
+ KvButtonsModule], template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 custom-max-height \"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\r\n >\r\n \r\n <div class=\"col-12\">\r\n <div class=\"flex align-items-center\">\r\n @if(listTitle) {\r\n <p class=\"w-full flex align-items-start font-semibold text-md\">{{listTitle}}</p>\r\n }\r\n @if(enableSearch) {\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"widthPage() > 800\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter($event)\"\r\n [placeholder]=\"searchPlaceholder\"\r\n autocomplete=\"off\"\r\n #inputField\r\n class=\"text-sm col-6\"\r\n style=\"height: 2rem;\"/>\r\n }\r\n </div>\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"mt-2\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-detailed-list aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\r\n } @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\"flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-visualizador col-12 md:col-8 lg:col-9 flex-1\"\r\n style=\"position: relative;\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\"\r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n style=\"max-height: 100%\"\r\n >\r\n </kv-file-viewer-novo>\r\n\r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 92%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%; overflow-y: auto\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Sem_Dados.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil,.card-visualizador{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}@media (max-width: 768px){.card-perfil{max-height:20rem;overflow-y:auto}}@media (max-width: 768px){.card-visualizador{max-height:100%;overflow-y:auto}}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{height:100%}@media (max-height: 768px){.custom-max-height{height:auto;min-height:100vh}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
132
+ }], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { extencaoDocumento: [{
133
+ type: Input
134
+ }], totalRecords: [{
135
+ type: Input
136
+ }], visualizadorDocumentos: [{
137
+ type: Input
138
+ }], cardTemplate: [{
139
+ type: Input
140
+ }], contentTemplate: [{
141
+ type: Input
142
+ }], noDocumentSelectedTemplate: [{
143
+ type: Input
144
+ }], noDocumentListTemplate: [{
145
+ type: Input
146
+ }], buttonTemplate: [{
147
+ type: Input
148
+ }], listBottomTemplate: [{
149
+ type: Input
150
+ }], indvisualizado: [{
151
+ type: Input
152
+ }], isLoadingSkeleton: [{
153
+ type: Input
154
+ }], borderCardNaoVisualizado: [{
155
+ type: Input
156
+ }], contentForm: [{
157
+ type: Input
158
+ }], enableSearch: [{
159
+ type: Input
160
+ }], searchPlaceholder: [{
161
+ type: Input
162
+ }], listTitle: [{
163
+ type: Input
164
+ }], onScrollHandler: [{
165
+ type: Output
166
+ }], onSelectFile: [{
167
+ type: Output
168
+ }], onSave: [{
169
+ type: Output
170
+ }], onCancel: [{
171
+ type: Output
172
+ }], onSearch: [{
173
+ type: Output
174
+ }] } });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZGV0YWlsZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1kZXRhaWxlZC1saXN0L2t2LWRldGFpbGVkLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZGV0YWlsZWQtbGlzdC9rdi1kZXRhaWxlZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7QUFlakUsTUFBTSxPQUFPLHVCQUF1QjtJQStDN0IsWUFDUyxtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTVDcEQsa0JBQWtCO1FBQ25CLGVBQVUsR0FBdUIsS0FBSyxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELGtCQUFhLEdBQUcsTUFBTSxDQUFTLENB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QUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBJbnB1dFNpZ25hbCwgT3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQZGZWaWV3ZXJNb2R1bGUgfSBmcm9tICduZzItcGRmLXZpZXdlcic7XHJcbmltcG9ydCB7IEt2RmlsZVZpZXdlck5vdm9Nb2R1bGUgfSBmcm9tICcuLi9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8ubW9kdWxlJztcclxuaW1wb3J0IHsgTmd4TG9hZGluZ01vZHVsZSB9IGZyb20gJ25neC1sb2FkaW5nJztcclxuaW1wb3J0IHsgUHJpbWVOZ01vZHVsZSB9IGZyb20gJy4uLy4uL2FwaS9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9rdi1idXR0b24va3YtYnV0dG9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2QnV0dG9uc01vZHVsZSB9IGZyb20gJy4uL2t2LWJ1dHRvbnMva3YtYnV0dG9uLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWRldGFpbGVkLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxcclxuICAgIFBkZlZpZXdlck1vZHVsZSxcclxuICAgIFByaW1lTmdNb2R1bGUsXHJcbiAgICBLdkZpbGVWaWV3ZXJOb3ZvTW9kdWxlLFxyXG4gICAgTmd4TG9hZGluZ01vZHVsZSxcclxuICAgIEt2QnV0dG9uTW9kdWxlLFxyXG4gICAgS3ZCdXR0b25zTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZGV0YWlsZWQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWRldGFpbGVkLWxpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkRldGFpbGVkTGlzdENvbXBvbmVudCB7XHJcblxyXG4gIFxyXG4gIFxyXG4gICAgLy8gI3JlZ2lvbiBTaWduYWxzXHJcbiAgIGRhdGFTb3VyY2U6IElucHV0U2lnbmFsPGFueVtdPiA9IGlucHV0PGFueVtdPihbXSk7XHJcbiAgIHBhZ2luYUluaWNpYWwgPSBzaWduYWw8bnVtYmVyPigxKTtcclxuICAgYXJxdWl2byA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgYXJxdWl2b1ByZXZpZXcgPSBzaWduYWw8YW55Pih1bmRlZmluZWQpO1xyXG4gICBub21lQXJxdWl2byA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICAgdHlwZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgYmxvYiA9IGlucHV0PEJsb2I+KCcnIGFzIGFueSk7XHJcbiAgIGlkYXJxdWl2byA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgIGVrcENvbnRlbnQgPSBpbnB1dDxTYWZlSHRtbCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgdG90YWxJdGVuc0NhcnJlZ2FkbyA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT4gdGhpcy5kYXRhU291cmNlKCk/Lmxlbmd0aCB8fCAwXHJcbiAgKTtcclxuICB3aWR0aFBhZ2UgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuICAvLyAjZW5kcmVnaW9uXHJcbiAgXHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcbiAgZW1wcmVzYVNlbGVjaW9uYWRhITogYW55O1xyXG4gIGlkdGlwb2RvY3VtZW50byE6IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGV4dGVuY2FvRG9jdW1lbnRvITogc3RyaW5nO1xyXG4gIHByZXZpZXdPbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSXRlbTogYW55ID0ge307XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXIgPSAwO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlTaWRlYmFyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZpc3VhbGl6YWRvckRvY3VtZW50b3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjYXJkVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbm9Eb2N1bWVudFNlbGVjdGVkVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIG5vRG9jdW1lbnRMaXN0VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGJ1dHRvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBsaXN0Qm90dG9tVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGluZHZpc3VhbGl6YWRvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nU2tlbGV0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBib3JkZXJDYXJkTmFvVmlzdWFsaXphZG86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyA9ICdQZXNxdWlzYXIuLi4nO1xyXG4gIEBJbnB1dCgpIGxpc3RUaXRsZTogc3RyaW5nID0gJyc7XHJcbiAgY29udGVudFZpZXdlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGtleVZpc3VhbGl6YWRvOiBzdHJpbmcgPSAnaW5kdmlzdWFsaXphZG8nOyBcclxuICBcclxuICAgICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICkge1xyXG4gIFxyXG4gICAgICAgfVxyXG4gIFxyXG4gIHRvZGF5RGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygncHQtQlInLCB7IGRheTogJzItZGlnaXQnLCBtb250aDogJzItZGlnaXQnLCB5ZWFyOiAnbnVtZXJpYycgfSk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuICBcclxuICAvLyAjcmVnaW9uIE91dHB1dHNcclxuICBAT3V0cHV0KCkgb25TY3JvbGxIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TZWxlY3RGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG4gIFxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWRhcnF1aXZvOyBcclxuICB9XHJcbiAgXHJcbiAgaXNWaXN1YWxpemFkbyhvcHRpb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9wdGlvblt0aGlzLmtleVZpc3VhbGl6YWRvXSB8fCBmYWxzZTtcclxuICB9XHJcbiAgXHJcbiAgdmlzdWFsaXphclByZXZpZXcoYXJxdWl2bzogYW55LCBidXR0b25UZW1wbGF0ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIFxyXG4gICAgaWYgKGJ1dHRvblRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhcnF1aXZvW3RoaXMua2V5VmlzdWFsaXphZG9dID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb250ZW50Vmlld2VyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hcnF1aXZvUHJldmlldy5zZXQoYXJxdWl2byk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICB0aGlzLm9uU2VsZWN0RmlsZS5lbWl0KGFycXVpdm8pO1xyXG4gICAgXHJcbiAgfVxyXG4gIFxyXG4gICAgT25TYXZlKCkge1xyXG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KCk7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFycXVpdm9QcmV2aWV3LnNldCh1bmRlZmluZWQpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgT25DYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5xdWVzdGlvbih7XHJcbiAgICAgICAgdHlwZTogJ3F1ZXN0aW9uJyxcclxuICAgICAgICBtZXNzYWdlOiAnVm9jw6ogZmV6IGFsdGVyYcOnw7VlcyBxdWUgbsOjbyBmb3JhbSBzYWx2YXMuIFRlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgY2FuY2VsYXI/JyxcclxuICAgICAgICBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xyXG4gICAgICAgICAgdGhpcy5jb250ZW50Vmlld2VyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFycXVpdm9QcmV2aWV3LnNldCh1bmRlZmluZWQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIFxyXG4gIHB1YmxpYyBvbkdsb2JhbEZpbHRlcihldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy53aWR0aFBhZ2Uuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnVsbHNjcmVlbkJ0bicpO1xyXG4gICAgICBcclxuICAgICAgaWYgKGJ1dHRvbikge1xyXG4gICAgICAgIGlmICghZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcclxuICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICdvcGVuX2luX2Z1bGwnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBidXR0b24udGV4dENvbnRlbnQgPSAnY2xvc2VfZnVsbHNjcmVlbic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgc2Nyb2xsSGFuZGxlcigkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICBcclxuICAgIC8vc2UgbyBlc2Nyb2xsIGNoZWdhciBhdMOpIG8gZmluYWxcclxuICAgIGlmIChlbGVtZW50LnNjcm9sbEhlaWdodCAtIGVsZW1lbnQuc2Nyb2xsVG9wID09PSBlbGVtZW50LmNsaWVudEhlaWdodCkge1xyXG4gICAgICAvLyB0aGlzLmJ1c2NhclByb3hpbW9zRG9jdW1lbnRvcygpO1xyXG4gICAgICB0aGlzLm9uU2Nyb2xsSGFuZGxlci5lbWl0KCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1kOmZsZXgtcm93IGdhcC0yIGN1c3RvbS1tYXgtaGVpZ2h0IFwiXHJcbiAgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIlxyXG4+XHJcbiAgPCEtLSBMaXN0YSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNhcmQtcGVyZmlsIGNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtMyBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgIChzY3JvbGwpPVwic2Nyb2xsSGFuZGxlcigkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ292ZXJmbG93LXktYXV0byc6IGRhdGFTb3VyY2UoKS5sZW5ndGggPiAwLFxyXG4gICAgICAnb3ZlcmZsb3cteS1oaWRkZW4nOiBkYXRhU291cmNlKCkubGVuZ3RoID09PSAwXHJcbiAgICB9XCJcclxuICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDEwMCU7IG1pbi1oZWlnaHQ6IDE1cmVtXCJcclxuICA+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIEBpZihsaXN0VGl0bGUpIHtcclxuICAgICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIGZsZXggYWxpZ24taXRlbXMtc3RhcnQgZm9udC1zZW1pYm9sZCB0ZXh0LW1kXCI+e3tsaXN0VGl0bGV9fTwvcD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmKGVuYWJsZVNlYXJjaCkge1xyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgcEF1dG9Gb2N1c1xyXG4gICAgICAgICAgICBbYXV0b2ZvY3VzXT1cIndpZHRoUGFnZSgpID4gODAwXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwib25HbG9iYWxGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICNpbnB1dEZpZWxkXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBjb2wtNlwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAycmVtO1wiLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFTb3VyY2UoKS5sZW5ndGggPiAwOyBlbHNlIGVtcHR5RG9jdW1lbnRMaXN0XCIgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICA8IS0tIExpc3RhIGRlIGNhcmRzIC0tPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRhdGFTb3VyY2UoKTsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJjYXJkLW5vcm1hbCBvdXRsaW5lLW5vbmUgYm9yZGVyLXJvdW5kLXhsIHctZnVsbCBwLTIgbS0xIGdyaWQgcC1mbHVpZCBmbGV4IGZsZXgtcm93IGZsZXgtbm93cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInZpc3VhbGl6YXJQcmV2aWV3KG9wdGlvbilcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdjYXJkLXNlbGVjdGVkJzogb3B0aW9uID09PSBhcnF1aXZvUHJldmlldygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnY2FyZC1ub3JtYWwnOiBvcHRpb24gIT09IGFycXVpdm9QcmV2aWV3KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtZ3Jvdy0xIG1sLTIgZmxleC1jb2x1bW4gZ2FwLTEgbS0wIHAtMCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1vdmVyZmxvdy1lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcmRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtY29tbW9uLXN0eWxlIGRlZmF1bHQtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtYmFzZSBwLTAgbS0wXCI+QmVtLXZpbmRvITwvaDE+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICBLdi1kZXRhaWxlZC1saXN0IGFndWFyZGFuZG8gdW0gdGVtcGxhdGUuLi5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gcC0wIG0tMFwiPkRhdGE6IHt7IHRvZGF5RGF0ZSgpIH19PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eURvY3VtZW50TGlzdD5cclxuICAgICAgQGlmKGlzTG9hZGluZ1NrZWxldG9uKXtcclxuICAgICAgPHAtc2tlbGV0b24gXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGkgb2YgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldXCIgXHJcbiAgICAgICAgaGVpZ2h0PVwiNXJlbVwiIFxyXG4gICAgICAgIFtzdHlsZV09XCJ7ICdtYXJnaW4tYm90dG9tJzogJzAuMjVyZW0nLCAnYm9yZGVyUmFkaXVzJzogJzAuNzVyZW0nIH1cIlxyXG4gICAgICA+PC9wLXNrZWxldG9uPlxyXG4gICAgICB9IEBpZighbm9Eb2N1bWVudExpc3RUZW1wbGF0ZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTYwMCBtdC00IG0tM1wiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gaW5ib3ggPC9zcGFuPlxyXG4gICAgICAgICAgPHA+TmVuaHVtIGRvY3VtZW50byBkaXNwb27DrXZlbC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9Eb2N1bWVudExpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIENvbnRhZG9yIGRlIGRvY3VtZW50b3MgLSBGaXhvIG5hIHBhcnRlIGluZmVyaW9yIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInN0aWNreS1jb3VudGVyIGZsZXggZmxleC1jb2x1bW5cclxuICAgICAgIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgcHgtMiBwLTJcIlxyXG4gICAgICBzdHlsZT1cInBvc2l0aW9uOiBzdGlja3k7IGJvdHRvbTogLTEwcHg7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyB0b3RhbEl0ZW5zQ2FycmVnYWRvKCkgfX0gZGUge3sgdG90YWxSZWNvcmRzIH19PC9zcGFuPlxyXG4gICAgICBAaWYobGlzdEJvdHRvbVRlbXBsYXRlKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0Qm90dG9tVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFZpc3VhbGl6YWRvciAtLT5cclxuICA8ZGl2XHJcbiAgICBpZD1cImZ1bGxzY3JlZW5EaXZcIlxyXG4gICAgY2xhc3M9XCJjYXJkLXZpc3VhbGl6YWRvciBjb2wtMTIgbWQ6Y29sLTggbGc6Y29sLTkgZmxleC0xXCJcclxuICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiXHJcbiAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICdvdmVyZmxvdy15JzogYXJxdWl2b1ByZXZpZXcoKSA/ICdhdXRvJyA6ICdoaWRkZW4nXHJcbiAgICB9XCJcclxuICA+XHJcbiAgIEBpZihidXR0b25UZW1wbGF0ZSAmJiAhY29udGVudFZpZXdlcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPjwvZGl2PlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInAtM1wiPlxyXG4gICAgICAgIDxzcGFuIChjbGljayk9XCJ2aXN1YWxpemFyUHJldmlldyhudWxsLCB0cnVlKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIH0gIEBpZih2aXN1YWxpemFkb3JEb2N1bWVudG9zKSB7XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJxdWl2bygpOyBlbHNlIG5vRG9jdW1lbnRTZWxlY3RlZFwiPlxyXG4gICAgICBAaWYoaXNMb2FkaW5nKSB7XHJcbiAgICAgIDxuZ3gtbG9hZGluZ1xyXG4gICAgICAgIFtzaG93XT1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgW2NvbmZpZ109XCJ7IGJhY2tkcm9wQm9yZGVyUmFkaXVzOiAnM3B4JywgZnVsbFNjcmVlbkJhY2tkcm9wOiBmYWxzZSB9XCJcclxuICAgICAgPjwvbmd4LWxvYWRpbmc+XHJcbiAgICAgIH1cclxuICAgICAgPGt2LWZpbGUtdmlld2VyLW5vdm9cclxuICAgICAgICAqbmdJZj1cImV4dGVuY2FvRG9jdW1lbnRvICE9PSAnZWtwJ1wiXHJcbiAgICAgICAgW2FycXVpdm9dPVwiYXJxdWl2bygpIVwiXHJcbiAgICAgICAgW3R5cGVdPVwidHlwZSgpIVwiXHJcbiAgICAgICAgW2Jsb2JdPVwiYmxvYigpIVwiXHJcbiAgICAgICAgW3dpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgICAgW2hlaWdodF09XCInMTAwJSdcIlxyXG4gICAgICAgIGNsYXNzPVwiZmlsZS12aWV3ZXJcIlxyXG4gICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogMTAwJVwiXHJcbiAgICAgID5cclxuICAgICAgPC9rdi1maWxlLXZpZXdlci1ub3ZvPlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGlkPVwiaHRtbC1jb250ZW50XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImVrcENvbnRlbnQoKVwiXHJcbiAgICAgICAgKm5nSWY9XCJleHRlbmNhb0RvY3VtZW50byA9PT0gJ2VrcCdcIlxyXG4gICAgICAgIGNsYXNzPVwiZWtwLWNvbnRlbnRcIlxyXG4gICAgICAgIHN0eWxlPVwib3ZlcmZsb3cteTogYXV0bzsgbWF4LWhlaWdodDogMTAwJVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiIHN0eWxlPVwiaGVpZ2h0OiA5MiU7XCIgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nSWY9XCJhcnF1aXZvUHJldmlldygpIHx8IGNvbnRlbnRWaWV3ZXI7IGVsc2Ugbm9Eb2N1bWVudFNlbGVjdGVkXCJcclxuICAgICAgPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMTtcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBjb250ZW50VGVtcGxhdGU7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhcnF1aXZvUHJldmlldygpIH1cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93LXk6IGF1dG87IG1heC1oZWlnaHQ6IDEwMCVcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmKGNvbnRlbnRGb3JtKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiIHN0eWxlPVwicG9zaXRpb246IHN0aWNreTsgYm90dG9tOiAwOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgei1pbmRleDogMTA7IHBhZGRpbmc6IDFyZW0gMXJlbSAwIDFyZW07XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj4qPC9zcGFuPiBDYW1wb3Mgb2JyaWdhdMOzcmlvc1xyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiQ2FuY2VsYXJcIlxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIk9uQ2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiU2FsdmFyXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJzYXZlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiT25TYXZlKClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+IFxyXG4gICAgfVxyXG4gICAgPG5nLXRlbXBsYXRlICNub0RvY3VtZW50U2VsZWN0ZWQ+XHJcbiAgICAgIEBpZighbm9Eb2N1bWVudFNlbGVjdGVkVGVtcGxhdGUpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibm8tZG9jdW1lbnQtbWVzc2FnZSBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICBzdHlsZT1cImhlaWdodDogMTAwJTsgb3ZlcmZsb3cteTogYXV0b1wiXHJcbiAgICAgID5cclxuICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtZ3JheS01MDBcIj5cclxuICAgICAgICAgIFNlbGVjaW9uZSB1bSBhcnF1aXZvIHBhcmEgdmlzdWFsaXphw6fDo29cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW3NyY109XCJcclxuICAgICAgICAgICAgJ2h0dHBzOi8vd29yay1hc3NldHMua2Vldm8uY29tLmJyL2ltZy9TZW1fRGFkb3MucG5nJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogNTAlOyBtYXJnaW4tdG9wOiAycmVtXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub0RvY3VtZW50U2VsZWN0ZWRUZW1wbGF0ZVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -141,6 +141,10 @@ export * from './lib/components/kv-table-expandable/kv-table-expandable.module';
141
141
  * Table Viewer
142
142
  */
143
143
  export * from './lib/components/kv-table-viewer/kv-table-viewer.component';
144
+ /**
145
+ * List Detailed
146
+ */
147
+ export * from './lib/components/kv-detailed-list/kv-detailed-list.component';
144
148
  /**
145
149
  * Treeview
146
150
  */
@@ -304,4 +308,4 @@ export * from './lib/components/kv-widget-card/kv-widget-card.component';
304
308
  * Stacked Bar Chart
305
309
  */
306
310
  export * from './lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component';
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSDs7R0FFRztBQUNILGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RDs7R0FFRztBQUNILGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUl4RDs7R0FFRztBQUNILGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RDs7R0FFRztBQUNILGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdEQUFnRCxDQUFBO0FBQzlELGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxrRkFBa0YsQ0FBQztBQUdqRzs7R0FFRztBQUNILGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHFDQUFxQyxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLHFFQUFxRSxDQUFDO0FBRXBGOztHQUVHO0FBQ0gsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxxREFBcUQsQ0FBQztBQUVwRTs7R0FFRztBQUNILGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMscURBQXFELENBQUM7QUFFcEU7O0dBRUc7QUFDSCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaUVBQWlFLENBQUM7QUFFaEY7O0dBRUc7QUFDSCxjQUFjLDREQUE0RCxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDZDQUE2QyxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFEOztHQUVHO0FBQ0gsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLGdFQUFnRSxDQUFDO0FBRS9FOztHQUVHO0FBQ0gsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsK0NBQStDLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdEOztHQUVHO0FBQ0gsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscURBQXFELENBQUM7QUFFcEU7O0dBRUc7QUFDSCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw4Q0FBOEMsQ0FBQztBQUU3RDs7R0FFRztBQUNILGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUVoRTs7R0FFRztBQUNILGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLG9GQUFvRixDQUFDO0FBQ25HLGNBQWMsaUZBQWlGLENBQUM7QUFFaEc7O0dBRUc7QUFDSCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMseURBQXlELENBQUM7QUFFeEU7O0dBRUc7QUFDSCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsdURBQXVELENBQUM7QUFFdEU7O0dBRUc7QUFDSCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsdURBQXVELENBQUM7QUFFdEU7O0dBRUc7QUFDSCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsK0RBQStELENBQUM7QUFFOUU7O0dBRUc7QUFDSCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsdURBQXVELENBQUM7QUFFdEU7O0dBRUc7QUFDSCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaUVBQWlFLENBQUM7QUFHaEY7O0dBRUc7QUFDSCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNkRBQTZELENBQUM7QUFFNUU7O0dBRUc7QUFDSCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsbURBQW1ELENBQUM7QUFFbEU7O0dBRUc7QUFDSCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELG9GQUFvRjtBQUNwRixjQUFjLDZDQUE2QyxDQUFDO0FBRTVEOztHQUVHO0FBQ0gsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLDZEQUE2RCxDQUFDO0FBRTVFOztHQUVHO0FBQ0gsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHVDQUF1QyxDQUFDO0FBSXREOztFQUVFO0FBQ0YsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQXNCLGtCQUFrQixFQUFjLE1BQU0sNERBQTRELENBQUM7QUFJeEo7O0VBRUU7QUFDRixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUxRjs7R0FFRztBQUNILGNBQWMsb0RBQW9ELENBQUM7QUFFbkU7O0dBRUc7QUFDSCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUd2RDs7R0FFRztBQUNILGNBQWMsMERBQTBELENBQUM7QUFFekU7O0dBRUc7QUFDSCxjQUFjLHNFQUFzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGtlZXZvLWNvbXBvbmVudHNcclxuICovXHJcblxyXG4vKipcclxuICogQ2xhc3NlcyBiYXNlIGRlIGNvbXBvbmVudGVzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWJ1dHRvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY2hhcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWNydWQtZm9ybSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZC1saXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1jcnVkJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1kcm9wZG93bi1leHRlcm5hbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtZHJvcGRvd24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWlucHV0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1tdWx0aS1zZWxlY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LXRhYmxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogSGVscGVyc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2hlbHBlcnMvY29tcG9uZW50LXByb3ZpZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9oZWxwZXJzL2tlZXZvLXZhbGlkYXRvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvaGVscGVycy90cmFuc2xhdGUtcHJpbWVuZyc7XHJcblxyXG4vKipcclxuICogUGlwZXNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9waXBlcy9jcGZjbnBqLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvcGlwZXMvbWFzay5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9waXBlcy90ZWxlZm9uZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3BpcGVzL2NhcGl0YWxpemUucGlwZSc7XHJcblxyXG4vKipcclxuICogU2VydmljZXNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9zZXJ2aWNlcy9iYXNlLmFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2JyZWFkY3J1bWJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvZG9jcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9zZXJ2aWNlcy9pbWFnZW5zLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvY2hhdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2ltYWdlLmN1dHRlci5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIFByaW1lTkdcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rZWV2by1jb21wb25lbnRzLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ2hhcnRzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy9jaGFydC9jaGFydC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2hhcnQva3YtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jaGFydC9rdi1jaGFydC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEVycm9yXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWVycm9yL2t2LWVycm9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZXJyb3Iva3YtZXJyb3IubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBCdXR0b25zXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbnMva3YtYnV0dG9uLXBlcnNvbmFsaXplL2t2LWJ1dHRvbi1wZXJzb25hbGl6ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbnMva3YtYnV0dG9uLXBvcHVwL2t2LWJ1dHRvbi1wb3B1cC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbnMva3YtYnV0dG9uLXNlY29uZGFyeS9rdi1idXR0b24tc2Vjb25kYXJ5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtYnV0dG9ucy9rdi1idXR0b24tc3VjY2Vzcy9rdi1idXR0b24tc3VjY2Vzcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbnMva3YtYnV0dG9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtYnV0dG9uL2t2LWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbi9rdi1idXR0b24ubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBJbnB1dHNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9jb21wb25lbnRzL2Ryb3Bkb3duL2ZpbHRyby5jb21ibyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWNoZWNrL2t2LWNoZWNrLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWRyb3Bkb3duL2t2LWRyb3Bkb3duLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWVkaXRvci9rdi1lZGl0b3IuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtZWRpdG9yL2t2LWVkaXRvcidcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtY2FsZW5kYXIva3YtaW5wdXQtY2FsZW5kYXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtbWFzay9rdi1pbnB1dC1tYXNrLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LW51bWJlci9rdi1pbnB1dC1udW1iZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtcGFzc3dvcmQva3YtaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtdGV4dC1jaGVja2JveC9rdi1pbnB1dC10ZXh0LWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LXRleHQva3YtaW5wdXQtdGV4dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC10ZXh0YXJlYS9rdi1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC10aW1lL2t2LWlucHV0LXRpbWUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXRzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LW11bHRpLXNlbGVjdC9rdi1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtcmFkaW8tZ3JvdXAva3YtcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3Ytc3dpdGNoL2t2LXN3aXRjaC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1zZWxlY3QtYnV0dG9uL2t2LXNlbGVjdC1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3Ytc2VsZWN0LWJ1dHRvbnMva3Ytc2VsZWN0LWJ1dHRvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtdHJlZS1tdWx0aS1zZWxlY3Qva3YtdHJlZS1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtdGV4dC1hZGRvbi9rdi1pbnB1dC10ZXh0LWFkZG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LW51bWJlci1hZGRvbi9rdi1pbnB1dC1udW1iZXItYWRkb24uY29tcG9uZW50JztcclxuXHJcblxyXG4vKipcclxuICogT3JnY2hhcnRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1vcmdjaGFydC9rdi1vcmdjaGFydC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvb3JnY2hhcnQuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogUGlja2xpc3RcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBDb25maXJtYXRpb25Nb2RhbFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jb25maXJtYXRpb24tbW9kYWwva3YtY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY29uZmlybWF0aW9uLW1vZGFsL2t2LWNvbmZpcm1hdGlvbi1tb2RhbC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIGVkaXRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlZGl0LmNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlZWRpdC5jb25maWcuY29sdW1uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS1lZGl0L2t2LXRhYmxlLWVkaXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS1lZGl0L2t2LXRhYmxlLWVkaXQubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLWl0ZW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS9rdi1tZW51aXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbmZpZy5jb2x1bW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5wYWdpbmF0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFibGUva3YtdGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS9rdi10YWJsZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFRyZWVUYWJsZVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBFeHBhbmRhYmxlXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRhYmxlLWV4cGFuZGFibGUva3YtdGFibGUtZXhwYW5kYWJsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRhYmxlLWV4cGFuZGFibGUva3YtdGFibGUtZXhwYW5kYWJsZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIFZpZXdlclxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS12aWV3ZXIva3YtdGFibGUtdmlld2VyLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogVHJlZXZpZXdcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdHJlZS12aWV3L2t2LXRyZWUtdmlldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRyZWUtdmlldy9rdi10cmVlLXZpZXcubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGRlIG1lbnUgKyBsYXlvdXRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbGF5b3V0L2xheW91dC9rdi1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sYXlvdXQva3YtbGF5b3V0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSBsb2dpblxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sb2dpbi9rdi1sb2dpbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWxvZ2luL2t2LWxvZ2luLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSB3b3Jrc3BhY2VzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXdvcmtzcGFjZS9rdi13b3Jrc3BhY2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi13b3Jrc3BhY2Uvd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEZvcm11bMOhcmlvIGJhc2VcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0ubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBQYWdlLVN0ZXBwZXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcGFnZS1zdGVwcGVyL2t2LXBhZ2Utc3RlcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBhZ2Utc3RlcHBlci9rdi1wYWdlLXN0ZXBwZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvc3RlcHBlci8va3Ytc3RlcHBlcnBhbmVsJztcclxuXHJcbi8qKlxyXG4gKiBLdi1TdGVwXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBzL2t2LXN0ZXBzLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogRGlyZXRpdmFzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvZGlyZWN0aXZlcy9kcmFnL2RyYWcuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2RpcmVjdGl2ZXMvc3RlcHBlci9keW5hbWljaW5wdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBMb2FkZXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbG9hZGVyL2t2LWxvYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWxvYWRlci9rdi1sb2FkZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sb2FkZXIva3YtbG9hZGVyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIENhcm91c2VsXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWNhcm91c2VsL2t2LWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBQcm9ncmVzcyBCYXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcHJvZ3Jlc3MtYmFyL2t2LXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXByb2dyZXNzLWJhci9rdi1wcm9ncmVzcy1iYXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1wcm9ncmVzcy1iYXItYWx0ZXJuYXRpdmUva3YtcHJvZ3Jlc3MtYmFyLWFsdGVybmF0aXZlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcHJvZ3Jlc3MtYmFyLWFsdGVybmF0aXZlL2t2LXByb2dyZXNzLWJhci1hbHRlcm5hdGl2ZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LW1vZGFsL2t2LW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBTdGVwcGVyXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEltYWdlIFVwbG9hZFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbWFnZS11cGxvYWQva3YtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW1hZ2UtdXBsb2FkL2t2LWltYWdlLXVwbG9hZC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbGUgVXBsb2FkJ1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWxlLXVwbG9hZC9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkL2t2LWZpbGUtdXBsb2FkLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogUmVwb3J0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXJlcG9ydC9rdi1yZXBvcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1yZXBvcnQva3YtcmVwb3J0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogRmlsdGVyIENhcmRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmQva3YtZmlsdGVyLWNhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWx0ZXItY2FyZC9rdi1maWx0ZXItY2FyZC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbHRlciBGaWVsZHNldFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWx0ZXItZmllbGRzZXQva3YtZmlsdGVyLWZpZWxkc2V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWZpZWxkc2V0L2t2LWZpbHRlci1maWVsZHNldC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEcgaWNvblxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1nLWljb24va3YtZy1pY29uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZy1pY29uL2t2LWctaWNvbi5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbGUtVmlld2VyXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyL2t2LWZpbGUtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBGaWxlLVZpZXdlciBOb3ZvXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyLW5vdm8va3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyLW5vdm8va3YtZmlsZS12aWV3ZXItbm92by5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50LVZpZXdlciBcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jb250ZW50LXZpZXdlci9rdi1jb250ZW50LXZpZXdlci5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGVzIGNvbXVucyB1dGlsaXphZG9zIG5vIGtlZXhcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaG9tZS1jYXJkL2t2LWhvbWUtY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWhvbWUtY2FyZC9rdi1ob21lLWNhcmQubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBBdmF0YXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1jcm9wLWltYWdlL2t2LWNyb3AtaW1hZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1hdmF0YXIva3YtYXZhdGFyLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ2FyZCBTZWxlY3Rpb25cclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2FyZC1zZWxlY3Rpb24va3YtY2FyZC1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jYXJkLXNlbGVjdGlvbi9rdi1jYXJkLXNlbGVjdGlvbi5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFRBR1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWcva3YtdGFnLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFnL2t2LXRhZy5tb2R1bGUnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICogRmlsdGVyIENhcmRzXHJcbiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5tb2R1bGUnO1xyXG5leHBvcnQgeyBLdkZpbHRlckNhcmRzQ29tcG9uZW50LCBLdkZpbHRlckNhcmRDb25maWcsIG1hcGFTZXZlcml0eUNvbG9ycywgS3ZTZXZlcml0eSB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICogVGFnc1xyXG4qL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRhZ3Mva3YtdGFncy5tb2R1bGUnO1xyXG5leHBvcnQgeyBLdlRhZ0NvbmZpZywgS3ZUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWdzL2t2LXRhZ3MuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBUaW1lbGluZVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10aW1lbGluZS9rdi10aW1lbGluZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEljb25cclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLm1vZGVsJztcclxuXHJcblxyXG4vKipcclxuICogV2lkZ2V0IENhcmRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3Ytd2lkZ2V0LWNhcmQva3Ytd2lkZ2V0LWNhcmQuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBTdGFja2VkIEJhciBDaGFydFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1zdGFja2VkLWJhci1jaGFydC9rdi1zdGFja2VkLWJhci1jaGFydC5jb21wb25lbnQnO1xyXG4iXX0=
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSDs7R0FFRztBQUNILGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RDs7R0FFRztBQUNILGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUl4RDs7R0FFRztBQUNILGNBQWMsa0NBQWtDLENBQUM7QUFD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OztHQUVHO0FBQ0gsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHVEQUF1RCxDQUFDO0FBRXRFOztHQUVHO0FBQ0gsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGlFQUFpRSxDQUFDO0FBR2hGOztHQUVHO0FBQ0gsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLDZEQUE2RCxDQUFDO0FBRTVFOztHQUVHO0FBQ0gsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxvRkFBb0Y7QUFDcEYsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RDs7R0FFRztBQUNILGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw2REFBNkQsQ0FBQztBQUU1RTs7R0FFRztBQUNILGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx1Q0FBdUMsQ0FBQztBQUl0RDs7RUFFRTtBQUNGLGNBQWMseURBQXlELENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFzQixrQkFBa0IsRUFBYyxNQUFNLDREQUE0RCxDQUFDO0FBSXhKOztFQUVFO0FBQ0YsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFMUY7O0dBRUc7QUFDSCxjQUFjLG9EQUFvRCxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFHdkQ7O0dBRUc7QUFDSCxjQUFjLDBEQUEwRCxDQUFDO0FBRXpFOztHQUVHO0FBQ0gsY0FBYyxzRUFBc0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBrZWV2by1jb21wb25lbnRzXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZXMgYmFzZSBkZSBjb21wb25lbnRlc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1idXR0b24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWNoYXJ0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1jcnVkLWZvcm0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWNydWQtbGlzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtZHJvcGRvd24tZXh0ZXJuYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWRyb3Bkb3duJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1pbnB1dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtbXVsdGktc2VsZWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC10YWJsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlcnNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9oZWxwZXJzL2NvbXBvbmVudC1wcm92aWRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvaGVscGVycy9rZWV2by12YWxpZGF0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2hlbHBlcnMvdHJhbnNsYXRlLXByaW1lbmcnO1xyXG5cclxuLyoqXHJcbiAqIFBpcGVzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvcGlwZXMvY3BmY25wai5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3BpcGVzL21hc2sucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvcGlwZXMvdGVsZWZvbmUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2VzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvYmFzZS5hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9zZXJ2aWNlcy9icmVhZGNydW1icy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2RvY3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvc2VydmljZXMvaW1hZ2Vucy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL2NoYXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9zZXJ2aWNlcy9pbWFnZS5jdXR0ZXIuc2VydmljZSc7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBQcmltZU5HXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva2Vldm8tY29tcG9uZW50cy5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIENoYXJ0c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvY2hhcnQvY2hhcnQuY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvY2hhcnQvY2hhcnQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWNoYXJ0L2t2LWNoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2hhcnQva3YtY2hhcnQubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBFcnJvclxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1lcnJvci9rdi1lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWVycm9yL2t2LWVycm9yLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQnV0dG9uc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1idXR0b25zL2t2LWJ1dHRvbi1wZXJzb25hbGl6ZS9rdi1idXR0b24tcGVyc29uYWxpemUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1idXR0b25zL2t2LWJ1dHRvbi1wb3B1cC9rdi1idXR0b24tcG9wdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1idXR0b25zL2t2LWJ1dHRvbi1zZWNvbmRhcnkva3YtYnV0dG9uLXNlY29uZGFyeS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbnMva3YtYnV0dG9uLXN1Y2Nlc3Mva3YtYnV0dG9uLXN1Y2Nlc3MuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1idXR0b25zL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWJ1dHRvbi9rdi1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1idXR0b24va3YtYnV0dG9uLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogSW5wdXRzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy9kcm9wZG93bi9maWx0cm8uY29tYm8nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1jaGVjay9rdi1jaGVjay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1kcm9wZG93bi9rdi1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWVkaXRvci9rdi1lZGl0b3InXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LWNhbGVuZGFyL2t2LWlucHV0LWNhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LW1hc2sva3YtaW5wdXQtbWFzay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC1udW1iZXIva3YtaW5wdXQtbnVtYmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LXBhc3N3b3JkL2t2LWlucHV0LXBhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LXRleHQtY2hlY2tib3gva3YtaW5wdXQtdGV4dC1jaGVja2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC10ZXh0L2t2LWlucHV0LXRleHQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtdGV4dGFyZWEva3YtaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3YtaW5wdXQtdGltZS9rdi1pbnB1dC10aW1lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0cy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1tdWx0aS1zZWxlY3Qva3YtbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LXJhZGlvLWdyb3VwL2t2LXJhZGlvLWdyb3VwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LXN3aXRjaC9rdi1zd2l0Y2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbnB1dHMva3Ytc2VsZWN0LWJ1dHRvbi9rdi1zZWxlY3QtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LXNlbGVjdC1idXR0b25zL2t2LXNlbGVjdC1idXR0b25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LXRyZWUtbXVsdGktc2VsZWN0L2t2LXRyZWUtbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWlucHV0LXRleHQtYWRkb24va3YtaW5wdXQtdGV4dC1hZGRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1pbnB1dC1udW1iZXItYWRkb24va3YtaW5wdXQtbnVtYmVyLWFkZG9uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIE9yZ2NoYXJ0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LW9yZ2NoYXJ0L2t2LW9yZ2NoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL3NlcnZpY2VzL29yZ2NoYXJ0LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tsaXN0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1waWNrLWxpc3Qva3YtcGljay1saXN0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ29uZmlybWF0aW9uTW9kYWxcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY29uZmlybWF0aW9uLW1vZGFsL2t2LWNvbmZpcm1hdGlvbi1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWNvbmZpcm1hdGlvbi1tb2RhbC9rdi1jb25maXJtYXRpb24tbW9kYWwubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBlZGl0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZWRpdC5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZWVkaXQuY29uZmlnLmNvbHVtbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFibGUtZWRpdC9rdi10YWJsZS1lZGl0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFibGUtZWRpdC9rdi10YWJsZS1lZGl0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogVGFibGVcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL2FjdGlvbi1pdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvdGFibGUva3YtbWVudWl0ZW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb25maWcuY29sdW1uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvdGFibGUvdGFibGUucGFnaW5hdGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRhYmxlL2t2LXRhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFibGUva3YtdGFibGUubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBUcmVlVGFibGVcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdHJlZS10YWJsZS9rdi10cmVlLXRhYmxlLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogVGFibGUgRXhwYW5kYWJsZVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBWaWV3ZXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFibGUtdmlld2VyL2t2LXRhYmxlLXZpZXdlci5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIExpc3QgRGV0YWlsZWRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZGV0YWlsZWQtbGlzdC9rdi1kZXRhaWxlZC1saXN0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogVHJlZXZpZXdcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdHJlZS12aWV3L2t2LXRyZWUtdmlldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRyZWUtdmlldy9rdi10cmVlLXZpZXcubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGRlIG1lbnUgKyBsYXlvdXRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbGF5b3V0L2xheW91dC9rdi1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sYXlvdXQva3YtbGF5b3V0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSBsb2dpblxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sb2dpbi9rdi1sb2dpbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWxvZ2luL2t2LWxvZ2luLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSB3b3Jrc3BhY2VzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXdvcmtzcGFjZS9rdi13b3Jrc3BhY2UubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi13b3Jrc3BhY2Uvd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEZvcm11bMOhcmlvIGJhc2VcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0ubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBQYWdlLVN0ZXBwZXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcGFnZS1zdGVwcGVyL2t2LXBhZ2Utc3RlcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXBhZ2Utc3RlcHBlci9rdi1wYWdlLXN0ZXBwZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2NvbXBvbmVudHMvc3RlcHBlci8va3Ytc3RlcHBlcnBhbmVsJztcclxuXHJcbi8qKlxyXG4gKiBLdi1TdGVwXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBzL2t2LXN0ZXBzLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogRGlyZXRpdmFzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvZGlyZWN0aXZlcy9kcmFnL2RyYWcuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2RpcmVjdGl2ZXMvc3RlcHBlci9keW5hbWljaW5wdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBMb2FkZXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbG9hZGVyL2t2LWxvYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWxvYWRlci9rdi1sb2FkZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1sb2FkZXIva3YtbG9hZGVyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIENhcm91c2VsXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWNhcm91c2VsL2t2LWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBQcm9ncmVzcyBCYXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcHJvZ3Jlc3MtYmFyL2t2LXByb2dyZXNzLWJhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXByb2dyZXNzLWJhci9rdi1wcm9ncmVzcy1iYXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1wcm9ncmVzcy1iYXItYWx0ZXJuYXRpdmUva3YtcHJvZ3Jlc3MtYmFyLWFsdGVybmF0aXZlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtcHJvZ3Jlc3MtYmFyLWFsdGVybmF0aXZlL2t2LXByb2dyZXNzLWJhci1hbHRlcm5hdGl2ZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIE1vZGFsXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LW1vZGFsL2t2LW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBTdGVwcGVyXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEltYWdlIFVwbG9hZFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1pbWFnZS11cGxvYWQva3YtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaW1hZ2UtdXBsb2FkL2t2LWltYWdlLXVwbG9hZC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbGUgVXBsb2FkJ1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWxlLXVwbG9hZC9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkL2t2LWZpbGUtdXBsb2FkLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogUmVwb3J0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXJlcG9ydC9rdi1yZXBvcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1yZXBvcnQva3YtcmVwb3J0Lm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogRmlsdGVyIENhcmRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmQva3YtZmlsdGVyLWNhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWx0ZXItY2FyZC9rdi1maWx0ZXItY2FyZC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbHRlciBGaWVsZHNldFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1maWx0ZXItZmllbGRzZXQva3YtZmlsdGVyLWZpZWxkc2V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWZpZWxkc2V0L2t2LWZpbHRlci1maWVsZHNldC5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEcgaWNvblxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1nLWljb24va3YtZy1pY29uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZy1pY29uL2t2LWctaWNvbi5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIEZpbGUtVmlld2VyXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyL2t2LWZpbGUtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBGaWxlLVZpZXdlciBOb3ZvXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyLW5vdm8va3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdmlld2VyLW5vdm8va3YtZmlsZS12aWV3ZXItbm92by5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250ZW50LVZpZXdlciBcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY29udGVudC12aWV3ZXIva3YtY29udGVudC12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jb250ZW50LXZpZXdlci9rdi1jb250ZW50LXZpZXdlci5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGVzIGNvbXVucyB1dGlsaXphZG9zIG5vIGtlZXhcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaG9tZS1jYXJkL2t2LWhvbWUtY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWhvbWUtY2FyZC9rdi1ob21lLWNhcmQubW9kdWxlJztcclxuXHJcbi8qKlxyXG4gKiBBdmF0YXJcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1jcm9wLWltYWdlL2t2LWNyb3AtaW1hZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1hdmF0YXIva3YtYXZhdGFyLm1vZHVsZSc7XHJcblxyXG4vKipcclxuICogQ2FyZCBTZWxlY3Rpb25cclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtY2FyZC1zZWxlY3Rpb24va3YtY2FyZC1zZWxlY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1jYXJkLXNlbGVjdGlvbi9rdi1jYXJkLXNlbGVjdGlvbi5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFRBR1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWcva3YtdGFnLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtdGFnL2t2LXRhZy5tb2R1bGUnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICogRmlsdGVyIENhcmRzXHJcbiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5tb2R1bGUnO1xyXG5leHBvcnQgeyBLdkZpbHRlckNhcmRzQ29tcG9uZW50LCBLdkZpbHRlckNhcmRDb25maWcsIG1hcGFTZXZlcml0eUNvbG9ycywgS3ZTZXZlcml0eSB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtZmlsdGVyLWNhcmRzL2t2LWZpbHRlci1jYXJkcy5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG4vKipcclxuICogVGFnc1xyXG4qL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2t2LXRhZ3Mva3YtdGFncy5tb2R1bGUnO1xyXG5leHBvcnQgeyBLdlRhZ0NvbmZpZywgS3ZUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10YWdzL2t2LXRhZ3MuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBUaW1lbGluZVxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi10aW1lbGluZS9rdi10aW1lbGluZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEljb25cclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3YtaWNvbi9rdi1pY29uLm1vZGVsJztcclxuXHJcblxyXG4vKipcclxuICogV2lkZ2V0IENhcmRcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMva3Ytd2lkZ2V0LWNhcmQva3Ytd2lkZ2V0LWNhcmQuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBTdGFja2VkIEJhciBDaGFydFxyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9rdi1zdGFja2VkLWJhci1jaGFydC9rdi1zdGFja2VkLWJhci1jaGFydC5jb21wb25lbnQnO1xyXG4iXX0=