nsrtm-gestionarchivo-npm-prueba2
Version:
Proyecto de Libreria Frontend para la Gestión de Archivos
68 lines • 16.3 kB
JavaScript
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@uiowa/digit-only";
import * as i3 from "../../app/shared/no-results/no-results.component";
import * as i4 from "../../app/shared/loading/loading.component";
import * as i5 from "../../app/shared/table-footer-pagination/table-footer-pagination.component";
export class NsrtmTablaDocumentoComponent {
constructor() {
this.datasource = [];
this.loading = false;
this.totalItems = 0;
this.page = 1;
this.pageSize = 10;
this.seleccionar = new EventEmitter();
this.paginar = new EventEmitter();
this.setFolio = new EventEmitter();
}
onSeleccionarFila(fila) {
this.seleccionar.emit(fila);
}
onChangePaginate(event) {
if (!this.totalItems)
return;
const { page, pageSize } = event;
// hack para evitar lanzar el request cuando la página es > 1 y se cambia de pageSize
// solo aplicado cuando la pagination es desde backend
if (pageSize !== this.pageSize && page > 1) {
return;
}
this.paginar.emit(event);
}
get itemId() {
return Number(this.filaSeleccionada?.index ?? 0);
}
getKiloBytes(tamanio) {
return (Number(tamanio) / 1024 / 1024).toFixed(3);
}
change(item, event) {
item.folio = event.target.value;
this.setFolio.emit(item);
}
}
NsrtmTablaDocumentoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NsrtmTablaDocumentoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
NsrtmTablaDocumentoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NsrtmTablaDocumentoComponent, selector: "app-nsrtm-tabla-documento", inputs: { datasource: "datasource", loading: "loading", totalItems: "totalItems", page: "page", pageSize: "pageSize", filaSeleccionada: "filaSeleccionada" }, outputs: { seleccionar: "seleccionar", paginar: "paginar", setFolio: "setFolio" }, ngImport: i0, template: "<div\r\n\tclass=\"table-responsive\"\r\n\t[ngClass]=\"{\r\n\t\t'table-sticky table-sticky--height': datasource.length > 10\r\n\t}\"\r\n>\r\n\t<table class=\"table tbl-grid m-0 head-no-rounded\">\r\n\t\t<caption class=\"d-none\">\r\n\t\t\tTabla Registros Vehicular Activos\r\n\t\t</caption>\r\n\t\t<thead>\r\n\t\t\t<tr>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center min-w-60px w-80px\">ITEM</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">NOMBRE DEL ARCHIVO</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">FECHA</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">TAMA\u00D1O(Mb)</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">FOLIO</th>\r\n\t\t\t</tr>\r\n\t\t</thead>\r\n\t\t<tbody *ngIf=\"!loading\">\r\n\t\t\t<tr\r\n\t\t\t\t*ngFor=\"let item of datasource; index as i\"\r\n\t\t\t\t[class]=\"'c-pointer tbl-row tbl-row-' + i\"\r\n\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\tactive: item.index === itemId\r\n\t\t\t\t}\"\r\n\t\t\t\t(click)=\"onSeleccionarFila(item)\"\r\n\t\t\t>\r\n\t\t\t\t<td class=\"text-center\">{{ item.index }}</td>\r\n\t\t\t\t<td class=\"text-center\">{{ item.nombre }}</td>\r\n\t\t\t\t<td class=\"text-center\">{{ item.fechaUpload }}</td>\r\n\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t{{ getKiloBytes(item.tamanio) }}\r\n\t\t\t\t</td>\r\n\t\t\t\t<td class=\"text-center col-md-2\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tmaxlength=\"10\"\r\n\t\t\t\t\t\t[value]=\"item.folio ? item.folio : ''\"\r\n\t\t\t\t\t\t[disabled]=\"item.laserficheId ? true : false\"\r\n\t\t\t\t\t\t(change)=\"change(item, $event)\"\r\n\t\t\t\t\t\tdigitOnly\r\n\t\t\t\t\t/>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</tbody>\r\n\t</table>\r\n\r\n\t<ng-container *ngIf=\"!loading && !totalItems\">\r\n\t\t<nsrtm-no-results></nsrtm-no-results>\r\n\t</ng-container>\r\n\r\n\t<ng-container *ngIf=\"loading\">\r\n\t\t<nsrtm-loading></nsrtm-loading>\r\n\t</ng-container>\r\n</div>\r\n<!-- PAGINATE -->\r\n<table-footer-pagination\r\n\t[totalItems]=\"totalItems\"\r\n\t[totalItemsPerPage]=\"datasource.length\"\r\n\t(changePaginate)=\"onChangePaginate($event)\"\r\n\t[page]=\"page\"\r\n\t[pageSize]=\"pageSize\"\r\n></table-footer-pagination>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DigitOnlyDirective, selector: "[digitOnly]", inputs: ["decimal", "decimalSeparator", "allowNegatives", "allowPaste", "negativeSign", "min", "max", "pattern"] }, { kind: "component", type: i3.NoResultsComponent, selector: "nsrtm-no-results", inputs: ["message"] }, { kind: "component", type: i4.LoadingComponent, selector: "nsrtm-loading", inputs: ["message"] }, { kind: "component", type: i5.TableFooterPaginationComponent, selector: "table-footer-pagination", inputs: ["totalItems", "pageSize", "page", "totalItemsPerPage"], outputs: ["changePaginate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NsrtmTablaDocumentoComponent, decorators: [{
type: Component,
args: [{ selector: 'app-nsrtm-tabla-documento', template: "<div\r\n\tclass=\"table-responsive\"\r\n\t[ngClass]=\"{\r\n\t\t'table-sticky table-sticky--height': datasource.length > 10\r\n\t}\"\r\n>\r\n\t<table class=\"table tbl-grid m-0 head-no-rounded\">\r\n\t\t<caption class=\"d-none\">\r\n\t\t\tTabla Registros Vehicular Activos\r\n\t\t</caption>\r\n\t\t<thead>\r\n\t\t\t<tr>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center min-w-60px w-80px\">ITEM</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">NOMBRE DEL ARCHIVO</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">FECHA</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">TAMA\u00D1O(Mb)</th>\r\n\t\t\t\t<th scope=\"col\" class=\"text-center\">FOLIO</th>\r\n\t\t\t</tr>\r\n\t\t</thead>\r\n\t\t<tbody *ngIf=\"!loading\">\r\n\t\t\t<tr\r\n\t\t\t\t*ngFor=\"let item of datasource; index as i\"\r\n\t\t\t\t[class]=\"'c-pointer tbl-row tbl-row-' + i\"\r\n\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\tactive: item.index === itemId\r\n\t\t\t\t}\"\r\n\t\t\t\t(click)=\"onSeleccionarFila(item)\"\r\n\t\t\t>\r\n\t\t\t\t<td class=\"text-center\">{{ item.index }}</td>\r\n\t\t\t\t<td class=\"text-center\">{{ item.nombre }}</td>\r\n\t\t\t\t<td class=\"text-center\">{{ item.fechaUpload }}</td>\r\n\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t{{ getKiloBytes(item.tamanio) }}\r\n\t\t\t\t</td>\r\n\t\t\t\t<td class=\"text-center col-md-2\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tclass=\"form-control\"\r\n\t\t\t\t\t\tmaxlength=\"10\"\r\n\t\t\t\t\t\t[value]=\"item.folio ? item.folio : ''\"\r\n\t\t\t\t\t\t[disabled]=\"item.laserficheId ? true : false\"\r\n\t\t\t\t\t\t(change)=\"change(item, $event)\"\r\n\t\t\t\t\t\tdigitOnly\r\n\t\t\t\t\t/>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</tbody>\r\n\t</table>\r\n\r\n\t<ng-container *ngIf=\"!loading && !totalItems\">\r\n\t\t<nsrtm-no-results></nsrtm-no-results>\r\n\t</ng-container>\r\n\r\n\t<ng-container *ngIf=\"loading\">\r\n\t\t<nsrtm-loading></nsrtm-loading>\r\n\t</ng-container>\r\n</div>\r\n<!-- PAGINATE -->\r\n<table-footer-pagination\r\n\t[totalItems]=\"totalItems\"\r\n\t[totalItemsPerPage]=\"datasource.length\"\r\n\t(changePaginate)=\"onChangePaginate($event)\"\r\n\t[page]=\"page\"\r\n\t[pageSize]=\"pageSize\"\r\n></table-footer-pagination>\r\n" }]
}], propDecorators: { datasource: [{
type: Input
}], loading: [{
type: Input
}], totalItems: [{
type: Input
}], page: [{
type: Input
}], pageSize: [{
type: Input
}], filaSeleccionada: [{
type: Input
}], seleccionar: [{
type: Output
}], paginar: [{
type: Output
}], setFolio: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnNydG0tdGFibGEtZG9jdW1lbnRvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FyY2hpdm8vbnNydG0tZ2VzdGlvbmFyY2hpdm8tbnBtL3NyYy9uc3J0bS1kaWFsb2ctdXBsb2FkLWZpbGVzL25zcnRtLXRhYmxhLWRvY3VtZW50by9uc3J0bS10YWJsYS1kb2N1bWVudG8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vYXJjaGl2by9uc3J0bS1nZXN0aW9uYXJjaGl2by1ucG0vc3JjL25zcnRtLWRpYWxvZy11cGxvYWQtZmlsZXMvbnNydG0tdGFibGEtZG9jdW1lbnRvL25zcnRtLXRhYmxhLWRvY3VtZW50by5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUy9FLE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFRQyxlQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUdsQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFHZixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQU1kLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFHakQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRzlDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztLQWlDOUM7SUEvQkEsaUJBQWlCLENBQUMsSUFBb0I7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXNCO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFFN0IsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFakMscUZBQXFGO1FBQ3JGLHNEQUFzRDtRQUN0RCxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDM0MsT0FBTztTQUNQO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNULE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlO1FBQzNCLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQW9CLEVBQUUsS0FBVTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7O3lIQTFEVyw0QkFBNEI7NkdBQTVCLDRCQUE0QixrVENUekMsaXJFQWlFQTsyRkR4RGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs4QkFPdEMsVUFBVTtzQkFEUixLQUFLO2dCQUlQLE9BQU87c0JBRE4sS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsT0FBTztzQkFETixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEb2N1bWVudG9UYWJsYX0gZnJvbSAnLi4vbnNydG0tZGlhbG9nLXVwbG9hZC1maWxlcy51dGlscydcclxuaW1wb3J0IHtJQ2hhbmdlUGFnaW5hdGV9IGZyb20gJy4uLy4uL2FwcC9zaGFyZWQvdGFibGUtZm9vdGVyLXBhZ2luYXRpb24vdGFibGUtZm9vdGVyLXBhZ2luYXRpb24uY29tcG9uZW50J1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbnNydG0tdGFibGEtZG9jdW1lbnRvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnNydG0tdGFibGEtZG9jdW1lbnRvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uc3J0bS10YWJsYS1kb2N1bWVudG8uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOc3J0bVRhYmxhRG9jdW1lbnRvQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuXHRkYXRhc291cmNlOiBEb2N1bWVudG9UYWJsYVtdID0gW107XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0bG9hZGluZyA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHRvdGFsSXRlbXMgPSAwO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHBhZ2UgPSAxO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdHBhZ2VTaXplID0gMTA7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0ZmlsYVNlbGVjY2lvbmFkYT86IERvY3VtZW50b1RhYmxhO1xyXG5cclxuXHRAT3V0cHV0KClcclxuXHRzZWxlY2Npb25hciA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRvVGFibGE+KCk7XHJcblxyXG5cdEBPdXRwdXQoKVxyXG5cdHBhZ2luYXIgPSBuZXcgRXZlbnRFbWl0dGVyPElDaGFuZ2VQYWdpbmF0ZT4oKTtcclxuXHJcblx0QE91dHB1dCgpXHJcblx0c2V0Rm9saW8gPSBuZXcgRXZlbnRFbWl0dGVyPERvY3VtZW50b1RhYmxhPigpO1xyXG5cclxuXHRvblNlbGVjY2lvbmFyRmlsYShmaWxhOiBEb2N1bWVudG9UYWJsYSkge1xyXG5cdFx0dGhpcy5zZWxlY2Npb25hci5lbWl0KGZpbGEpO1xyXG5cdH1cclxuXHJcblx0b25DaGFuZ2VQYWdpbmF0ZShldmVudDogSUNoYW5nZVBhZ2luYXRlKSB7XHJcblx0XHRpZiAoIXRoaXMudG90YWxJdGVtcykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHsgcGFnZSwgcGFnZVNpemUgfSA9IGV2ZW50O1xyXG5cclxuXHRcdC8vIGhhY2sgcGFyYSBldml0YXIgbGFuemFyIGVsIHJlcXVlc3QgY3VhbmRvIGxhIHDDoWdpbmEgZXMgPiAxIHkgc2UgY2FtYmlhIGRlIHBhZ2VTaXplXHJcblx0XHQvLyBzb2xvIGFwbGljYWRvIGN1YW5kbyBsYSBwYWdpbmF0aW9uIGVzIGRlc2RlIGJhY2tlbmRcclxuXHRcdGlmIChwYWdlU2l6ZSAhPT0gdGhpcy5wYWdlU2l6ZSAmJiBwYWdlID4gMSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5wYWdpbmFyLmVtaXQoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGl0ZW1JZCgpIHtcclxuXHRcdHJldHVybiBOdW1iZXIodGhpcy5maWxhU2VsZWNjaW9uYWRhPy5pbmRleCA/PyAwKTtcclxuXHR9XHJcblxyXG5cdGdldEtpbG9CeXRlcyh0YW1hbmlvOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiAoTnVtYmVyKHRhbWFuaW8pIC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMyk7XHJcblx0fVxyXG5cclxuXHRjaGFuZ2UoaXRlbTogRG9jdW1lbnRvVGFibGEsIGV2ZW50OiBhbnkpIHtcclxuXHRcdGl0ZW0uZm9saW8gPSBldmVudC50YXJnZXQudmFsdWU7XHJcblx0XHR0aGlzLnNldEZvbGlvLmVtaXQoaXRlbSk7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2XHJcblx0Y2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCJcclxuXHRbbmdDbGFzc109XCJ7XHJcblx0XHQndGFibGUtc3RpY2t5IHRhYmxlLXN0aWNreS0taGVpZ2h0JzogZGF0YXNvdXJjZS5sZW5ndGggPiAxMFxyXG5cdH1cIlxyXG4+XHJcblx0PHRhYmxlIGNsYXNzPVwidGFibGUgdGJsLWdyaWQgbS0wIGhlYWQtbm8tcm91bmRlZFwiPlxyXG5cdFx0PGNhcHRpb24gY2xhc3M9XCJkLW5vbmVcIj5cclxuXHRcdFx0VGFibGEgUmVnaXN0cm9zIFZlaGljdWxhciBBY3Rpdm9zXHJcblx0XHQ8L2NhcHRpb24+XHJcblx0XHQ8dGhlYWQ+XHJcblx0XHRcdDx0cj5cclxuXHRcdFx0XHQ8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInRleHQtY2VudGVyIG1pbi13LTYwcHggdy04MHB4XCI+SVRFTTwvdGg+XHJcblx0XHRcdFx0PHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPk5PTUJSRSBERUwgQVJDSElWTzwvdGg+XHJcblx0XHRcdFx0PHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPkZFQ0hBPC90aD5cclxuXHRcdFx0XHQ8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+VEFNQcORTyhNYik8L3RoPlxyXG5cdFx0XHRcdDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5GT0xJTzwvdGg+XHJcblx0XHRcdDwvdHI+XHJcblx0XHQ8L3RoZWFkPlxyXG5cdFx0PHRib2R5ICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuXHRcdFx0PHRyXHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNvdXJjZTsgaW5kZXggYXMgaVwiXHJcblx0XHRcdFx0W2NsYXNzXT1cIidjLXBvaW50ZXIgdGJsLXJvdyB0Ymwtcm93LScgKyBpXCJcclxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XHJcblx0XHRcdFx0XHRhY3RpdmU6IGl0ZW0uaW5kZXggPT09IGl0ZW1JZFxyXG5cdFx0XHRcdH1cIlxyXG5cdFx0XHRcdChjbGljayk9XCJvblNlbGVjY2lvbmFyRmlsYShpdGVtKVwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7IGl0ZW0uaW5kZXggfX08L3RkPlxyXG5cdFx0XHRcdDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgaXRlbS5ub21icmUgfX08L3RkPlxyXG5cdFx0XHRcdDx0ZCBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgaXRlbS5mZWNoYVVwbG9hZCB9fTwvdGQ+XHJcblx0XHRcdFx0PHRkIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuXHRcdFx0XHRcdHt7IGdldEtpbG9CeXRlcyhpdGVtLnRhbWFuaW8pIH19XHJcblx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHQ8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlciBjb2wtbWQtMlwiPlxyXG5cdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdHR5cGU9XCJ0ZXh0XCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRtYXhsZW5ndGg9XCIxMFwiXHJcblx0XHRcdFx0XHRcdFt2YWx1ZV09XCJpdGVtLmZvbGlvID8gaXRlbS5mb2xpbyA6ICcnXCJcclxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIml0ZW0ubGFzZXJmaWNoZUlkID8gdHJ1ZSA6IGZhbHNlXCJcclxuXHRcdFx0XHRcdFx0KGNoYW5nZSk9XCJjaGFuZ2UoaXRlbSwgJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdGRpZ2l0T25seVxyXG5cdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHQ8L3RyPlxyXG5cdFx0PC90Ym9keT5cclxuXHQ8L3RhYmxlPlxyXG5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmcgJiYgIXRvdGFsSXRlbXNcIj5cclxuXHRcdDxuc3J0bS1uby1yZXN1bHRzPjwvbnNydG0tbm8tcmVzdWx0cz5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuXHRcdDxuc3J0bS1sb2FkaW5nPjwvbnNydG0tbG9hZGluZz5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjwhLS0gUEFHSU5BVEUgLS0+XHJcbjx0YWJsZS1mb290ZXItcGFnaW5hdGlvblxyXG5cdFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG5cdFt0b3RhbEl0ZW1zUGVyUGFnZV09XCJkYXRhc291cmNlLmxlbmd0aFwiXHJcblx0KGNoYW5nZVBhZ2luYXRlKT1cIm9uQ2hhbmdlUGFnaW5hdGUoJGV2ZW50KVwiXHJcblx0W3BhZ2VdPVwicGFnZVwiXHJcblx0W3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuPjwvdGFibGUtZm9vdGVyLXBhZ2luYXRpb24+XHJcbiJdfQ==