@sumaris-net/ngx-components 18.25.16 → 18.25.18

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.
@@ -18,6 +18,7 @@ export class GalleryTestPage {
18
18
  _subscription = new Subscription();
19
19
  dataSource;
20
20
  slideshowMode = 'modal';
21
+ enableSlideshowLoop = true;
21
22
  debug = false;
22
23
  constructor(dataService, route) {
23
24
  this.dataService = dataService;
@@ -41,14 +42,17 @@ export class GalleryTestPage {
41
42
  toggleZoomPresentation() {
42
43
  this.slideshowMode = this.slideshowMode === 'modal' ? 'inline' : 'modal';
43
44
  }
45
+ toggleSlideshowLoop() {
46
+ this.enableSlideshowLoop = !this.enableSlideshowLoop;
47
+ }
44
48
  toggleDebug() {
45
49
  this.debug = !this.debug;
46
50
  }
47
51
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
48
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [{ provide: ImageAttachmentService, useClass: ImageAttachmentService }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button [matMenuTriggerFor]=\"toolbarOptionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<mat-menu #toolbarOptionsMenu=\"matMenu\" xPosition=\"after\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"toggleZoomPresentation()\">\n <mat-icon>{{ slideshowMode === 'modal' ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_MODAL_ZOOM</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleDebug()\">\n <mat-icon>{{ debug ? 'check' : '' }}</mat-icon>\n <ion-label translate>COMMON.DEBUG.BTN_ENABLE_DEBUG</ion-label>\n </button>\n </ng-template>\n</mat-menu>\n\n<ion-content>\n <!-- DEBUG -->\n @if (debug) {\n <app-debug title=\"Galley\">\n <ion-grid>\n <ion-row>\n <ion-col>gallery.count: {{ gallery.rows?.length }}</ion-col>\n </ion-row>\n </ion-grid>\n </app-debug>\n }\n\n <app-image-gallery\n #gallery\n [dataSource]=\"dataSource\"\n [slideshowMode]=\"slideshowMode\"\n [inlineZoomHeight]=\"'100%'\"\n (onAfterAddRows)=\"save()\"\n (onAfterEditRow)=\"save()\"\n [debug]=\"debug\"\n ></app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["cardColor", "debug", "disabled", "readOnly", "mobile", "mode", "confirmBeforeDelete", "showToolbar", "showFabButton", "showTitle", "showAddToolbarButton", "showAddTextButton", "showAddCardButton", "showCardToolbar", "addButtonColor", "addButtonText", "cardTemplate", "imageSizes", "imageSizeQueryParam", "enableMouseZoom", "wheelZoomStep", "maxZoomRatio", "enableRotate", "enableCrop", "imageExportFormat", "imageExportQuality", "slideshowMode", "inlineZoomHeight", "dataSource"], outputs: ["onBeforeDeleteRows", "onAfterAddRows", "onAfterEditRow", "onAfterEditImage", "click"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.DebugComponent, selector: "app-debug", inputs: ["titlePrefix", "title", "enable", "expanded"] }] });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [{ provide: ImageAttachmentService, useClass: ImageAttachmentService }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button [matMenuTriggerFor]=\"toolbarOptionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<mat-menu #toolbarOptionsMenu=\"matMenu\" xPosition=\"after\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"toggleZoomPresentation()\">\n <mat-icon>{{ slideshowMode === 'modal' ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_MODAL_ZOOM</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleSlideshowLoop()\">\n <mat-icon>{{ enableSlideshowLoop ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_LOOP</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleDebug()\">\n <mat-icon>{{ debug ? 'check' : '' }}</mat-icon>\n <ion-label translate>COMMON.DEBUG.BTN_ENABLE_DEBUG</ion-label>\n </button>\n </ng-template>\n</mat-menu>\n\n<ion-content>\n <!-- DEBUG -->\n @if (debug) {\n <app-debug title=\"Galley\">\n <ion-grid>\n <ion-row>\n <ion-col>gallery.count: {{ gallery.rows?.length }}</ion-col>\n </ion-row>\n </ion-grid>\n </app-debug>\n }\n\n <app-image-gallery\n #gallery\n [dataSource]=\"dataSource\"\n [slideshowMode]=\"slideshowMode\"\n [enableSlideshowLoop]=\"enableSlideshowLoop\"\n [inlineZoomHeight]=\"'100%'\"\n (onAfterAddRows)=\"save()\"\n (onAfterEditRow)=\"save()\"\n [debug]=\"debug\"\n ></app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["cardColor", "debug", "disabled", "readOnly", "mobile", "mode", "confirmBeforeDelete", "showToolbar", "showFabButton", "showTitle", "showAddToolbarButton", "showAddTextButton", "showAddCardButton", "showCardToolbar", "addButtonColor", "addButtonText", "cardTemplate", "imageSizes", "imageSizeQueryParam", "enableMouseZoom", "wheelZoomStep", "maxZoomRatio", "enableRotate", "enableCrop", "editionFormat", "editionQuality", "slideshowMode", "inlineZoomHeight", "enableSlideshowLoop", "canFetchMore", "dataSource"], outputs: ["onBeforeDeleteRows", "onAfterAddRows", "onAfterEditRow", "onAfterEditImage", "click", "previousSlide", "nextSlide", "fetchMore"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.DebugComponent, selector: "app-debug", inputs: ["titlePrefix", "title", "enable", "expanded"] }] });
49
53
  }
50
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GalleryTestPage, decorators: [{
51
55
  type: Component,
52
- args: [{ selector: 'app-gallery-test-page', providers: [{ provide: ImageAttachmentService, useClass: ImageAttachmentService }], template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button [matMenuTriggerFor]=\"toolbarOptionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<mat-menu #toolbarOptionsMenu=\"matMenu\" xPosition=\"after\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"toggleZoomPresentation()\">\n <mat-icon>{{ slideshowMode === 'modal' ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_MODAL_ZOOM</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleDebug()\">\n <mat-icon>{{ debug ? 'check' : '' }}</mat-icon>\n <ion-label translate>COMMON.DEBUG.BTN_ENABLE_DEBUG</ion-label>\n </button>\n </ng-template>\n</mat-menu>\n\n<ion-content>\n <!-- DEBUG -->\n @if (debug) {\n <app-debug title=\"Galley\">\n <ion-grid>\n <ion-row>\n <ion-col>gallery.count: {{ gallery.rows?.length }}</ion-col>\n </ion-row>\n </ion-grid>\n </app-debug>\n }\n\n <app-image-gallery\n #gallery\n [dataSource]=\"dataSource\"\n [slideshowMode]=\"slideshowMode\"\n [inlineZoomHeight]=\"'100%'\"\n (onAfterAddRows)=\"save()\"\n (onAfterEditRow)=\"save()\"\n [debug]=\"debug\"\n ></app-image-gallery>\n</ion-content>\n" }]
56
+ args: [{ selector: 'app-gallery-test-page', providers: [{ provide: ImageAttachmentService, useClass: ImageAttachmentService }], template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button [matMenuTriggerFor]=\"toolbarOptionsMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<mat-menu #toolbarOptionsMenu=\"matMenu\" xPosition=\"after\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"toggleZoomPresentation()\">\n <mat-icon>{{ slideshowMode === 'modal' ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_MODAL_ZOOM</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleSlideshowLoop()\">\n <mat-icon>{{ enableSlideshowLoop ? 'check' : '' }}</mat-icon>\n <ion-label translate>IMAGE.GALLERY.BTN_ENABLE_LOOP</ion-label>\n </button>\n\n <button mat-menu-item (click)=\"toggleDebug()\">\n <mat-icon>{{ debug ? 'check' : '' }}</mat-icon>\n <ion-label translate>COMMON.DEBUG.BTN_ENABLE_DEBUG</ion-label>\n </button>\n </ng-template>\n</mat-menu>\n\n<ion-content>\n <!-- DEBUG -->\n @if (debug) {\n <app-debug title=\"Galley\">\n <ion-grid>\n <ion-row>\n <ion-col>gallery.count: {{ gallery.rows?.length }}</ion-col>\n </ion-row>\n </ion-grid>\n </app-debug>\n }\n\n <app-image-gallery\n #gallery\n [dataSource]=\"dataSource\"\n [slideshowMode]=\"slideshowMode\"\n [enableSlideshowLoop]=\"enableSlideshowLoop\"\n [inlineZoomHeight]=\"'100%'\"\n (onAfterAddRows)=\"save()\"\n (onAfterEditRow)=\"save()\"\n [debug]=\"debug\"\n ></app-image-gallery>\n</ion-content>\n" }]
53
57
  }], ctorParameters: () => [{ type: i1.ImageAttachmentService }, { type: i2.ActivatedRoute }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS90ZXN0aW5nL2dhbGxlcnkudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFTcEMsTUFBTSxPQUFPLGVBQWU7SUFPZDtJQUNBO0lBUEosYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEMsVUFBVSxDQUFrRTtJQUMzRSxhQUFhLEdBQThCLE9BQU8sQ0FBQztJQUNuRCxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFlBQ1ksV0FBbUMsRUFDbkMsS0FBcUI7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRS9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBeUMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzdILGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUErQixJQUFJLE9BQU8sQ0FBQztRQUN6SCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO3dHQXBDVSxlQUFlOzRGQUFmLGVBQWUsZ0RBRmYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQywwQkNYcEYsMjlDQW9EQTs7NEZEdkNhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGFBRXRCLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbWFnZUF0dGFjaG1lbnQsIEltYWdlQXR0YWNobWVudFNlcnZpY2UgfSBmcm9tICcuL2dhbGxlcnkuc2VydmljZS50ZXN0aW5nJztcbmltcG9ydCB7IEVudGl0aWVzVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90YWJsZS9lbnRpdGllcy10YWJsZS1kYXRhc291cmNlLmNsYXNzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW1hZ2VBdHRhY2htZW50RmlsdGVyIH0gZnJvbSAnLi9nYWxsZWdyeS5tb2RlbC50ZXN0aW5nJztcbmltcG9ydCB7IEltYWdlR2FsbGVyeVNsaWRlc2hvd01vZGUgfSBmcm9tICcuLi9pbWFnZS1nYWxsZXJ5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1nYWxsZXJ5LXRlc3QtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9nYWxsZXJ5LnRlc3RpbmcuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSW1hZ2VBdHRhY2htZW50U2VydmljZSwgdXNlQ2xhc3M6IEltYWdlQXR0YWNobWVudFNlcnZpY2UgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlUZXN0UGFnZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICByZWFkb25seSBkYXRhU291cmNlOiBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZTxJbWFnZUF0dGFjaG1lbnQsIEltYWdlQXR0YWNobWVudEZpbHRlcj47XG4gIHByb3RlY3RlZCBzbGlkZXNob3dNb2RlOiBJbWFnZUdhbGxlcnlTbGlkZXNob3dNb2RlID0gJ21vZGFsJztcbiAgcHJvdGVjdGVkIGRlYnVnID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IEVudGl0aWVzVGFibGVEYXRhU291cmNlPEltYWdlQXR0YWNobWVudCwgSW1hZ2VBdHRhY2htZW50RmlsdGVyPihJbWFnZUF0dGFjaG1lbnQsIHRoaXMuZGF0YVNlcnZpY2UsIG51bGwsIHtcbiAgICAgIHNhdmVCZWZvcmVEZWxldGU6IHRydWUsXG4gICAgICBzYXZlT25seURpcnR5Um93czogZmFsc2UsXG4gICAgfSk7XG4gICAgdGhpcy5kZWJ1ZyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RlYnVnJykgPT09ICd0cnVlJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2xpZGVzaG93TW9kZSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd6b29tUHJlc2VudGF0aW9uJykgYXMgSW1hZ2VHYWxsZXJ5U2xpZGVzaG93TW9kZSkgfHwgJ21vZGFsJztcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuZGF0YVNvdXJjZS53YXRjaEFsbCgwLCAxMDAsIG51bGwsIG51bGwsIG51bGwpLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2F2ZSgpO1xuICB9XG5cbiAgdG9nZ2xlWm9vbVByZXNlbnRhdGlvbigpIHtcbiAgICB0aGlzLnNsaWRlc2hvd01vZGUgPSB0aGlzLnNsaWRlc2hvd01vZGUgPT09ICdtb2RhbCcgPyAnaW5saW5lJyA6ICdtb2RhbCc7XG4gIH1cblxuICB0b2dnbGVEZWJ1ZygpIHtcbiAgICB0aGlzLmRlYnVnID0gIXRoaXMuZGVidWc7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1iYWNrLWJ1dHRvbj48L2lvbi1iYWNrLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZT5JbWFnZSBnYWxsZXJ5PC9pb24tdGl0bGU+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRvb2xiYXJPcHRpb25zTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxtYXQtbWVudSAjdG9vbGJhck9wdGlvbnNNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInRvZ2dsZVpvb21QcmVzZW50YXRpb24oKVwiPlxuICAgICAgPG1hdC1pY29uPnt7IHNsaWRlc2hvd01vZGUgPT09ICdtb2RhbCcgPyAnY2hlY2snIDogJycgfX08L21hdC1pY29uPlxuICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+SU1BR0UuR0FMTEVSWS5CVE5fRU5BQkxFX01PREFMX1pPT008L2lvbi1sYWJlbD5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwidG9nZ2xlRGVidWcoKVwiPlxuICAgICAgPG1hdC1pY29uPnt7IGRlYnVnID8gJ2NoZWNrJyA6ICcnIH19PC9tYXQtaWNvbj5cbiAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5ERUJVRy5CVE5fRU5BQkxFX0RFQlVHPC9pb24tbGFiZWw+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuXG48aW9uLWNvbnRlbnQ+XG4gIDwhLS0gREVCVUcgLS0+XG4gIEBpZiAoZGVidWcpIHtcbiAgICA8YXBwLWRlYnVnIHRpdGxlPVwiR2FsbGV5XCI+XG4gICAgICA8aW9uLWdyaWQ+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIDxpb24tY29sPmdhbGxlcnkuY291bnQ6IHt7IGdhbGxlcnkucm93cz8ubGVuZ3RoIH19PC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvYXBwLWRlYnVnPlxuICB9XG5cbiAgPGFwcC1pbWFnZS1nYWxsZXJ5XG4gICAgI2dhbGxlcnlcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBbc2xpZGVzaG93TW9kZV09XCJzbGlkZXNob3dNb2RlXCJcbiAgICBbaW5saW5lWm9vbUhlaWdodF09XCInMTAwJSdcIlxuICAgIChvbkFmdGVyQWRkUm93cyk9XCJzYXZlKClcIlxuICAgIChvbkFmdGVyRWRpdFJvdyk9XCJzYXZlKClcIlxuICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gID48L2FwcC1pbWFnZS1nYWxsZXJ5PlxuPC9pb24tY29udGVudD5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvaW1hZ2UvZ2FsbGVyeS90ZXN0aW5nL2dhbGxlcnkudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFTcEMsTUFBTSxPQUFPLGVBQWU7SUFRZDtJQUNBO0lBUkosYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEMsVUFBVSxDQUFrRTtJQUMzRSxhQUFhLEdBQThCLE9BQU8sQ0FBQztJQUNuRCxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUV4QixZQUNZLFdBQW1DLEVBQ25DLEtBQXFCO1FBRHJCLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUUvQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksdUJBQXVCLENBQXlDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRTtZQUM3SCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGlCQUFpQixFQUFFLEtBQUs7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUN6RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBK0IsSUFBSSxPQUFPLENBQUM7UUFDekgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzNFLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQzt3R0F6Q1UsZUFBZTs0RkFBZixlQUFlLGdEQUZmLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsMEJDWHBGLHd1REEwREE7OzRGRDdDYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLHVCQUF1QixhQUV0QixDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9nYWxsZXJ5LnNlcnZpY2UudGVzdGluZyc7XG5pbXBvcnQgeyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdGFibGUvZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltYWdlQXR0YWNobWVudEZpbHRlciB9IGZyb20gJy4vZ2FsbGVncnkubW9kZWwudGVzdGluZyc7XG5pbXBvcnQgeyBJbWFnZUdhbGxlcnlTbGlkZXNob3dNb2RlIH0gZnJvbSAnLi4vaW1hZ2UtZ2FsbGVyeS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZ2FsbGVyeS10ZXN0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2FsbGVyeS50ZXN0aW5nLmh0bWwnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEltYWdlQXR0YWNobWVudFNlcnZpY2UsIHVzZUNsYXNzOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJ5VGVzdFBhZ2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcmVhZG9ubHkgZGF0YVNvdXJjZTogRW50aXRpZXNUYWJsZURhdGFTb3VyY2U8SW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRGaWx0ZXI+O1xuICBwcm90ZWN0ZWQgc2xpZGVzaG93TW9kZTogSW1hZ2VHYWxsZXJ5U2xpZGVzaG93TW9kZSA9ICdtb2RhbCc7XG4gIHByb3RlY3RlZCBlbmFibGVTbGlkZXNob3dMb29wID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGRlYnVnID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IEVudGl0aWVzVGFibGVEYXRhU291cmNlPEltYWdlQXR0YWNobWVudCwgSW1hZ2VBdHRhY2htZW50RmlsdGVyPihJbWFnZUF0dGFjaG1lbnQsIHRoaXMuZGF0YVNlcnZpY2UsIG51bGwsIHtcbiAgICAgIHNhdmVCZWZvcmVEZWxldGU6IHRydWUsXG4gICAgICBzYXZlT25seURpcnR5Um93czogZmFsc2UsXG4gICAgfSk7XG4gICAgdGhpcy5kZWJ1ZyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RlYnVnJykgPT09ICd0cnVlJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2xpZGVzaG93TW9kZSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd6b29tUHJlc2VudGF0aW9uJykgYXMgSW1hZ2VHYWxsZXJ5U2xpZGVzaG93TW9kZSkgfHwgJ21vZGFsJztcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuZGF0YVNvdXJjZS53YXRjaEFsbCgwLCAxMDAsIG51bGwsIG51bGwsIG51bGwpLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2F2ZSgpO1xuICB9XG5cbiAgdG9nZ2xlWm9vbVByZXNlbnRhdGlvbigpIHtcbiAgICB0aGlzLnNsaWRlc2hvd01vZGUgPSB0aGlzLnNsaWRlc2hvd01vZGUgPT09ICdtb2RhbCcgPyAnaW5saW5lJyA6ICdtb2RhbCc7XG4gIH1cblxuICB0b2dnbGVTbGlkZXNob3dMb29wKCkge1xuICAgIHRoaXMuZW5hYmxlU2xpZGVzaG93TG9vcCA9ICF0aGlzLmVuYWJsZVNsaWRlc2hvd0xvb3A7XG4gIH1cblxuICB0b2dnbGVEZWJ1ZygpIHtcbiAgICB0aGlzLmRlYnVnID0gIXRoaXMuZGVidWc7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1iYWNrLWJ1dHRvbj48L2lvbi1iYWNrLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZT5JbWFnZSBnYWxsZXJ5PC9pb24tdGl0bGU+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRvb2xiYXJPcHRpb25zTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxtYXQtbWVudSAjdG9vbGJhck9wdGlvbnNNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInRvZ2dsZVpvb21QcmVzZW50YXRpb24oKVwiPlxuICAgICAgPG1hdC1pY29uPnt7IHNsaWRlc2hvd01vZGUgPT09ICdtb2RhbCcgPyAnY2hlY2snIDogJycgfX08L21hdC1pY29uPlxuICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+SU1BR0UuR0FMTEVSWS5CVE5fRU5BQkxFX01PREFMX1pPT008L2lvbi1sYWJlbD5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwidG9nZ2xlU2xpZGVzaG93TG9vcCgpXCI+XG4gICAgICA8bWF0LWljb24+e3sgZW5hYmxlU2xpZGVzaG93TG9vcCA/ICdjaGVjaycgOiAnJyB9fTwvbWF0LWljb24+XG4gICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5JTUFHRS5HQUxMRVJZLkJUTl9FTkFCTEVfTE9PUDwvaW9uLWxhYmVsPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJ0b2dnbGVEZWJ1ZygpXCI+XG4gICAgICA8bWF0LWljb24+e3sgZGVidWcgPyAnY2hlY2snIDogJycgfX08L21hdC1pY29uPlxuICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkRFQlVHLkJUTl9FTkFCTEVfREVCVUc8L2lvbi1sYWJlbD5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG5cbjxpb24tY29udGVudD5cbiAgPCEtLSBERUJVRyAtLT5cbiAgQGlmIChkZWJ1Zykge1xuICAgIDxhcHAtZGVidWcgdGl0bGU9XCJHYWxsZXlcIj5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgPGlvbi1jb2w+Z2FsbGVyeS5jb3VudDoge3sgZ2FsbGVyeS5yb3dzPy5sZW5ndGggfX08L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9hcHAtZGVidWc+XG4gIH1cblxuICA8YXBwLWltYWdlLWdhbGxlcnlcbiAgICAjZ2FsbGVyeVxuICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgIFtzbGlkZXNob3dNb2RlXT1cInNsaWRlc2hvd01vZGVcIlxuICAgIFtlbmFibGVTbGlkZXNob3dMb29wXT1cImVuYWJsZVNsaWRlc2hvd0xvb3BcIlxuICAgIFtpbmxpbmVab29tSGVpZ2h0XT1cIicxMDAlJ1wiXG4gICAgKG9uQWZ0ZXJBZGRSb3dzKT1cInNhdmUoKVwiXG4gICAgKG9uQWZ0ZXJFZGl0Um93KT1cInNhdmUoKVwiXG4gICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgPjwvYXBwLWltYWdlLWdhbGxlcnk+XG48L2lvbi1jb250ZW50PlxuIl19