fabrikantencore 2.1.13 → 2.1.15

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.
Files changed (17) hide show
  1. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.mjs +24 -6
  2. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +1 -1
  3. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.mjs +6 -4
  4. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +30 -5
  5. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +3 -3
  6. package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +3 -3
  7. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +2 -2
  8. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +13 -13
  9. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +157 -1
  10. package/fesm2015/fabrikantencore.mjs +226 -27
  11. package/fesm2015/fabrikantencore.mjs.map +1 -1
  12. package/fesm2020/fabrikantencore.mjs +226 -27
  13. package/fesm2020/fabrikantencore.mjs.map +1 -1
  14. package/package.json +1 -1
  15. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.d.ts +2 -1
  16. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +3 -1
  17. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +30 -0
@@ -145,9 +145,9 @@ export class BeheerProductsComponent {
145
145
  }
146
146
  }
147
147
  BeheerProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, deps: [{ token: i1.ProductsService }, { token: i2.ImportSetsService }, { token: i3.ImportApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
148
- BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i13.BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: i14.BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
148
+ BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i13.BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: i14.BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, decorators: [{
150
150
  type: Component,
151
- args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
151
+ args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"Status()\">\r\n Status\r\n </button>\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\"><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.id }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.name }}</td>\r\n <td (click)=\"SelectProduct(product)\" class=\"table-row\">{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
152
152
  }], ctorParameters: function () { return [{ type: i1.ProductsService }, { type: i2.ImportSetsService }, { type: i3.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQW1CLGVBQWdDLEVBQzFDLGlCQUFvQyxFQUNuQyxlQUFnQyxFQUNqQyxpQkFBb0M7UUFIMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMdEMsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQU9uRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksUUFBUSxHQUFHLElBQUksQ0FB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O1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztvSEFsS1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDWHBDLDhqSkFnR0E7MkZEckZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c0FwaUNsaWVudCwgUHJvZHVjdHNWaWV3TW9kZWwsIEJDQlByb2R1Y3RWaWV3TW9kZWwsIFByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0LCBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UsIEltcG9ydEFwaUNsaWVudCwgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBCQ0JJbXBvcnRTZXRzVmlld01vZGVsPzogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIEltcG9ydFNldHNTZXJ2aWNlOiBJbXBvcnRTZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgSW1wb3J0QXBpQ2xpZW50OiBJbXBvcnRBcGlDbGllbnQsXHJcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkxvYWRJbXBvcnRTZXRzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkNoZWNrU3RhdHVzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydCgpOiB2b2lkIHtcclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIHByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyA9IFwiMC9cIiArIGJjYnByb2R1Y3RzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGJjYnByb2R1Y3RzW2pdLmltcG9ydFN0YXR1cyA9IFwiWFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbMF0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCAmJiBiY2Jwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5JbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3RzWzBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQkNCSW1wb3J0UHJvZHVjdFJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IGJjYnByb2R1Y3QuaWQ7XHJcblxyXG4gICAgdGhpcy5JbXBvcnRBcGlDbGllbnQuaW1wb3J0QkNCUHJvZHVjdChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKCFtb2RlbC5zdWNjZXNzKSB7XHJcbiAgICAgICAgYWxlcnQobW9kZWwubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgYmNicHJvZHVjdC5pbXBvcnRTdGF0dXMgPSBcIlZcIjtcclxuXHJcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLkdldE5leHRCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpO1xyXG5cclxuICAgICAgICBpZiAobmV4dC5pbXBvcnRTdGF0dXMgPT0gXCJYXCIpIHtcclxuICAgICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZWxvYWQodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGFsZXJ0KFwiaW1wb3J0IGZhaWxlZCBmb3IgaWQ6IFwiICsgYmNicHJvZHVjdC5pZCk7XHJcblxyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZXNldEltcG9ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlJlc2V0SW1wb3J0KC0xLCAtMSwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xlYW5VcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkNsZWFuVXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCUHJvZHVjdHMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWw/LmlkID09IHByb2R1Y3QuaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9IHByb2R1Y3Q7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNhdmVQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlNhdmVQcm9kdWN0Vmlld01vZGVsKHByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gYmNicHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEltcG9ydFN0YXR1cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogc3RyaW5nIHtcclxuICAgIHZhciB0ZXh0ID0gXCJcIjtcclxuICAgIHZhciBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJcIikge1xyXG4gICAgICAgICAgYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiWFwiKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgdGV4dCA9IGNvdW50ICsgXCIvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogQkNCUHJvZHVjdFZpZXdNb2RlbCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICB2YXIgbmV4dDogQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB2YXIgZm91bmQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGJjYnByb2R1Y3RzW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbal0gPT0gYmNicHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IEltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIVByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgJiYgIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCIgY2xhc3M9XCJtYWluLWJsb2NrXCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleCBnYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXggZmxleC1hdXRvIGdhcFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ltcG9ydHNldC5uYW1lfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAgICBSZWZyZXNoXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4IGdhcFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTdGF0dXMoKVwiPlxyXG4gICAgICAgICAgICBTdGF0dXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNsZWFuVXAoKVwiPlxyXG4gICAgICAgICAgICBDbGVhblVwXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnIDogUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgPT0gcHJvZHVjdCwgJ3dhcm5pbmcnOiAhcHJvZHVjdC5pbXBvcnRlZCB8fCAhcHJvZHVjdC5jb25uZWN0ZWR9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvZHVjdC5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQW1CLGVBQWdDLEVBQzFDLGlCQUFvQyxFQUNuQyxlQUFnQyxFQUNqQyxpQkFBb0M7UUFIMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMdEMsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQU9uRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7UUFFekUsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7Z0JBRW5ELElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtvQkFDdkIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztvQkFFckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQzNDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO3FCQUNuQztpQkFDRjthQUNGO1lBRUQsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBRW5ELElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsVUFBK0I7UUFDckQsSUFBSSxPQUFPLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBRTVDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUVyQyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQStCLEVBQUUsRUFBRTtZQUMzRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtpQkFDSTtnQkFDSCxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztnQkFFOUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUU5QyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksR0FBRyxFQUFFO29CQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdCO3FCQUNJO29CQUNILElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUNyRDthQUNGO1FBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsS0FBSyxDQUFDLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUF5QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUF5QjtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztRQUVyRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXlCO1FBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxVQUErQjtRQUNyRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLElBQUksVUFBVSxFQUFFO1lBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO1NBQ3ZEO2FBQ0k7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsT0FBeUI7UUFDOUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUMvQyxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBRWQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLEVBQUU7b0JBQ3JDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBRWQsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEdBQUcsRUFBRTt3QkFDdEMsS0FBSyxFQUFFLENBQUM7cUJBQ1Q7aUJBQ0Y7YUFDRjtZQUVELElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDekM7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFVBQStCO1FBQ3RELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7UUFDekUsSUFBSSxJQUFJLEdBQXdCLFVBQVUsQ0FBQztRQUMzQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbEIsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7Z0JBRW5ELElBQUksV0FBVyxJQUFJLElBQUksRUFBRTtvQkFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQzNDLElBQUksS0FBSyxFQUFFOzRCQUNULE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN2Qjt3QkFFRCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7NEJBQ2hDLEtBQUssR0FBRyxJQUFJLENBQUM7eUJBQ2Q7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztvSEFsS1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDWHBDLG11SkFnR0E7MkZEckZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c0FwaUNsaWVudCwgUHJvZHVjdHNWaWV3TW9kZWwsIEJDQlByb2R1Y3RWaWV3TW9kZWwsIFByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0LCBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UsIEltcG9ydEFwaUNsaWVudCwgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBCQ0JJbXBvcnRTZXRzVmlld01vZGVsPzogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIEltcG9ydFNldHNTZXJ2aWNlOiBJbXBvcnRTZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgSW1wb3J0QXBpQ2xpZW50OiBJbXBvcnRBcGlDbGllbnQsXHJcbiAgICBwdWJsaWMgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkxvYWRJbXBvcnRTZXRzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkNoZWNrU3RhdHVzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydCgpOiB2b2lkIHtcclxuICAgIHZhciBwcm9kdWN0cyA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIHByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyA9IFwiMC9cIiArIGJjYnByb2R1Y3RzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGJjYnByb2R1Y3RzW2pdLmltcG9ydFN0YXR1cyA9IFwiWFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbMF0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICBpZiAoYmNicHJvZHVjdHMgIT0gbnVsbCAmJiBiY2Jwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5JbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3RzWzBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEltcG9ydEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQkNCSW1wb3J0UHJvZHVjdFJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IGJjYnByb2R1Y3QuaWQ7XHJcblxyXG4gICAgdGhpcy5JbXBvcnRBcGlDbGllbnQuaW1wb3J0QkNCUHJvZHVjdChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKCFtb2RlbC5zdWNjZXNzKSB7XHJcbiAgICAgICAgYWxlcnQobW9kZWwubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgYmNicHJvZHVjdC5pbXBvcnRTdGF0dXMgPSBcIlZcIjtcclxuXHJcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLkdldE5leHRCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpO1xyXG5cclxuICAgICAgICBpZiAobmV4dC5pbXBvcnRTdGF0dXMgPT0gXCJYXCIpIHtcclxuICAgICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZWxvYWQodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGFsZXJ0KFwiaW1wb3J0IGZhaWxlZCBmb3IgaWQ6IFwiICsgYmNicHJvZHVjdC5pZCk7XHJcblxyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZXNldEltcG9ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlJlc2V0SW1wb3J0KC0xLCAtMSwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xlYW5VcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkNsZWFuVXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCUHJvZHVjdHMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWw/LmlkID09IHByb2R1Y3QuaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9IHByb2R1Y3Q7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNhdmVQcm9kdWN0KHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlNhdmVQcm9kdWN0Vmlld01vZGVsKHByb2R1Y3QsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gYmNicHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gYmNicHJvZHVjdDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEltcG9ydFN0YXR1cyhwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKTogc3RyaW5nIHtcclxuICAgIHZhciB0ZXh0ID0gXCJcIjtcclxuICAgIHZhciBhY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0LmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG5cclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgIT0gXCJcIikge1xyXG4gICAgICAgICAgYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiWFwiKSB7XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgdGV4dCA9IGNvdW50ICsgXCIvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0OiBCQ0JQcm9kdWN0Vmlld01vZGVsKTogQkNCUHJvZHVjdFZpZXdNb2RlbCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcbiAgICB2YXIgbmV4dDogQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB2YXIgZm91bmQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocHJvZHVjdHMgIT0gbnVsbCAmJiBwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0c1tpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGJjYnByb2R1Y3RzW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYmNicHJvZHVjdHNbal0gPT0gYmNicHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0O1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJlaGVlci1uYXY+PC9hcHAtYmVoZWVyLW5hdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpIHx8IEltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiIVByb2R1Y3RzU2VydmljZS5Mb2FkaW5nKCkgJiYgIUltcG9ydFNldHNTZXJ2aWNlLkxvYWRpbmdJbXBvcnRTZXRzXCIgY2xhc3M9XCJtYWluLWJsb2NrXCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleCBnYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXggZmxleC1hdXRvIGdhcFwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+SW1wb3J0IHNldDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGltcG9ydHNldCBvZiBJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRzVmlld01vZGVsLmJjYkltcG9ydFNldFZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiaW1wb3J0c2V0LmlkXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ltcG9ydHNldC5uYW1lfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUHJvZHVjdHNTZXJ2aWNlLlJlbG9hZCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAgICBSZWZyZXNoXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4IGdhcFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTdGF0dXMoKVwiPlxyXG4gICAgICAgICAgICBTdGF0dXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNsZWFuVXAoKVwiPlxyXG4gICAgICAgICAgICBDbGVhblVwXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCA9PSBwcm9kdWN0LCAnd2FybmluZyc6ICFwcm9kdWN0LmltcG9ydGVkIHx8ICFwcm9kdWN0LmNvbm5lY3RlZH1cIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0LmlkIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIChjbGljayk9XCJTZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIj57eyBwcm9kdWN0Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -63,11 +63,11 @@ export class FabBreadcrumbComponent {
63
63
  }
64
64
  }
65
65
  FabBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabBreadcrumbComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
66
- FabBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;padding:4px}.tinybutton{padding:1px!important}.tinybutton .header-title{font-size:12px!important;line-height:26px!important}.tinybutton .mat-stroked-button{padding:0 8px!important}.buttonsize{height:40px;line-height:25px}.flexauto{flex:auto}.fullwidth{width:100%}.paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
66
+ FabBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabBreadcrumbComponent, selector: "app-fab-breadcrumb", inputs: { showfiltermenubutton: "showfiltermenubutton" }, ngImport: i0, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None });
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabBreadcrumbComponent, decorators: [{
68
68
  type: Component,
69
- args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;padding:4px}.tinybutton{padding:1px!important}.tinybutton .header-title{font-size:12px!important;line-height:26px!important}.tinybutton .mat-stroked-button{padding:0 8px!important}.buttonsize{height:40px;line-height:25px}.flexauto{flex:auto}.fullwidth{width:100%}.paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"] }]
69
+ args: [{ selector: 'app-fab-breadcrumb', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\" *ngIf=\"ShowHeader()\" [ngClass]=\"{'tinybutton': this.MobileService.MobileInterfaceTiny}\">\r\n <div *ngIf=\"ShowBack() && !HideBreadcrumb()\">\r\n <button class=\"buttonsize\" mat-stroked-button (click)=\"Back()\">\r\n <div class=\"header\" >\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon arrow_back\">arrow_back</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Back\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"!MobileService.MobileInterface && !HideBreadcrumb()\">\r\n <ng-container *ngFor=\"let step of FabrikantenService.GetSteps()\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"UndoStep(step)\">\r\n {{ TranslateService.GetActiveValueCategory(step.id) }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null\">\r\n <div class=\"stepicon\">\r\n <mat-icon class=\"chevron_right\">chevron_right</mat-icon>\r\n </div>\r\n <div class=\"step\" (click)=\"Back()\">\r\n <span *ngIf=\"FabrikantenService.GetSteps().length == 0\">Productconfiguratie: </span>{{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton\">\r\n <button class=\"open-filters-button buttonsize\" mat-stroked-button (click)=\"MobileService.OpenNav()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Filtermenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n <div class=\"flexauto\">\r\n\r\n </div>\r\n <button class=\"open-filters-button buttonsize\" *ngIf=\"FabrikantenService.ShowActionMenu()\" mat-stroked-button (click)=\"MobileService.OpenAction()\">\r\n <div class=\"header\">\r\n <div class=\"header-back\">\r\n <mat-icon class=\"icon menu\">menu</mat-icon>\r\n </div>\r\n <div class=\"header-title\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Actionmenu\") }}\r\n </div>\r\n </div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-container *ngIf=\"MobileService.MobileInterface && showfiltermenubutton && this.FabrikantenService.FabrikantenViewModel?.selectedProduct != null && !HideBreadcrumb()\">\r\n <div class=\"paddingleft step center\" (click)=\"Back()\">\r\n {{ TranslateService.GetActiveValueProduct(FabrikantenService.FabrikantenViewModel?.selectedProduct?.id) }}\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-breadcrumb .header{display:flex;padding:4px}app-fab-breadcrumb .center{text-align:center}app-fab-breadcrumb .tinybutton{padding:1px!important}app-fab-breadcrumb .tinybutton .header-title{font-size:12px!important;line-height:26px!important}app-fab-breadcrumb .tinybutton .mat-stroked-button{padding:0 8px!important}app-fab-breadcrumb .buttonsize{height:40px;line-height:25px}app-fab-breadcrumb .flexauto{flex:auto}app-fab-breadcrumb .fullwidth{width:100%}app-fab-breadcrumb .paddingleft{padding-left:5px}app-fab-breadcrumb .displayflex{display:flex}app-fab-breadcrumb .header-back{cursor:pointer}app-fab-breadcrumb .product-conf{padding-left:5px}app-fab-breadcrumb .open-filters-button{margin-left:5px}app-fab-breadcrumb .title{line-height:35px;font-size:30px;flex:auto;padding-left:5px}app-fab-breadcrumb .icon{position:relative;top:2px}app-fab-breadcrumb .header-title{font-size:16px;position:relative;top:1px;margin-left:3px}app-fab-breadcrumb .step{font-size:16px;vertical-align:middle;line-height:39px;font-family:Roboto;font-weight:500;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}app-fab-breadcrumb .step:first-letter{text-transform:capitalize}app-fab-breadcrumb .step:hover{text-decoration:underline}app-fab-breadcrumb .stepicon{padding-top:7px}\n"] }]
70
70
  }], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { showfiltermenubutton: [{
71
71
  type: Input
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1icmVhZGNydW1iL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYnJlYWRjcnVtYi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVk3RyxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ1MsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLGdCQUFrQyxFQUNqQyxpQkFBb0M7UUFIckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBSSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hFO2FBQ0k7WUFDSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQXNDO1FBQ3BELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3pFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFO2dCQUN2RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDOUIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzttSEFwRVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isb0hDWm5DLGlpR0FnRUE7MkZEcERhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSTtvTUFJNUIsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItYnJlYWRjcnVtYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYkJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzaG93ZmlsdGVybWVudWJ1dHRvbjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuTW9iaWxlU2VydmljZS5VcGRhdGVTY3JlZW5TaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEJhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpO1xyXG4gICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuVW5kb1N0ZXAoYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVW5kb1N0ZXAoY2F0ZWdvcnk6IEZhYnJpa2FudGVuQ2F0ZWdvcnlWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlc2V0U2VsZWN0aW9uQ2F0ZWdvcnkoY2F0ZWdvcnksIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCYWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuR2V0U3RlcHMoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0hlYWRlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlNob3dCYWNrKCkgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiB0aGlzLnNob3dmaWx0ZXJtZW51YnV0dG9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIaWRlQnJlYWRjcnVtYigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5oaWRlQnJlYWRjcnVtYkluSWZyYW1lKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAqbmdJZj1cIlNob3dIZWFkZXIoKVwiIFtuZ0NsYXNzXT1cInsndGlueWJ1dHRvbic6IHRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2VUaW55fVwiPlxyXG4gIDxkaXYgKm5nSWY9XCJTaG93QmFjaygpICYmICFIaWRlQnJlYWRjcnVtYigpXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uc2l6ZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiQmFjaygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1iYWNrXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGFycm93X2JhY2tcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiQmFja1wiKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIUhpZGVCcmVhZGNydW1iKClcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkdldFN0ZXBzKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXBpY29uXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2hldnJvbl9yaWdodFwiPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXBcIiAoY2xpY2spPVwiVW5kb1N0ZXAoc3RlcClcIj5cclxuICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnkoc3RlcC5pZCkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwaWNvblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNoZXZyb25fcmlnaHRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwXCIgKGNsaWNrKT1cIkJhY2soKVwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkdldFN0ZXBzKCkubGVuZ3RoID09IDBcIj5Qcm9kdWN0Y29uZmlndXJhdGllOiA8L3NwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZVByb2R1Y3QoRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiBzaG93ZmlsdGVybWVudWJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiTW9iaWxlU2VydmljZS5PcGVuTmF2KClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYmFja1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBtZW51XCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkZpbHRlcm1lbnVcIikgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4YXV0b1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dBY3Rpb25NZW51KClcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIk1vYmlsZVNlcnZpY2UuT3BlbkFjdGlvbigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gbWVudVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJBY3Rpb25tZW51XCIpIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIk1vYmlsZVNlcnZpY2UuTW9iaWxlSW50ZXJmYWNlICYmIHNob3dmaWx0ZXJtZW51YnV0dG9uICYmIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCAmJiAhSGlkZUJyZWFkY3J1bWIoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYWRkaW5nbGVmdCBzdGVwXCIgKGNsaWNrKT1cIkJhY2soKVwiPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuR2V0U3RlcHMoKS5sZW5ndGggPT0gMFwiPlByb2R1Y3Rjb25maWd1cmF0aWU6IDwvc3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlUHJvZHVjdChGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdD8uaWQpIH19XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1icmVhZGNydW1iL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYnJlYWRjcnVtYi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVk3RyxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ1MsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLGdCQUFrQyxFQUNqQyxpQkFBb0M7UUFIckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBSSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hFO2FBQ0k7WUFDSCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLFFBQXNDO1FBQ3BELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3pFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFO2dCQUN2RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDOUIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzttSEFwRVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isb0hDWm5DLGs5RkFnRUE7MkZEcERhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSTtvTUFJNUIsb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItYnJlYWRjcnVtYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYkJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzaG93ZmlsdGVybWVudWJ1dHRvbjogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuTW9iaWxlU2VydmljZS5VcGRhdGVTY3JlZW5TaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEJhY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5HZXRTdGVwcygpO1xyXG4gICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuVW5kb1N0ZXAoYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVW5kb1N0ZXAoY2F0ZWdvcnk6IEZhYnJpa2FudGVuQ2F0ZWdvcnlWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlc2V0U2VsZWN0aW9uQ2F0ZWdvcnkoY2F0ZWdvcnksIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCYWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuR2V0U3RlcHMoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0hlYWRlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlNob3dCYWNrKCkgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIXRoaXMuSGlkZUJyZWFkY3J1bWIoKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5Nb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiB0aGlzLnNob3dmaWx0ZXJtZW51YnV0dG9uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIaWRlQnJlYWRjcnVtYigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5oaWRlQnJlYWRjcnVtYkluSWZyYW1lKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXJcIiAqbmdJZj1cIlNob3dIZWFkZXIoKVwiIFtuZ0NsYXNzXT1cInsndGlueWJ1dHRvbic6IHRoaXMuTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2VUaW55fVwiPlxyXG4gIDxkaXYgKm5nSWY9XCJTaG93QmFjaygpICYmICFIaWRlQnJlYWRjcnVtYigpXCI+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uc2l6ZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiQmFjaygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1iYWNrXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGFycm93X2JhY2tcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiQmFja1wiKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhTW9iaWxlU2VydmljZS5Nb2JpbGVJbnRlcmZhY2UgJiYgIUhpZGVCcmVhZGNydW1iKClcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0ZXAgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkdldFN0ZXBzKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXBpY29uXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2hldnJvbl9yaWdodFwiPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXBcIiAoY2xpY2spPVwiVW5kb1N0ZXAoc3RlcClcIj5cclxuICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnkoc3RlcC5pZCkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwaWNvblwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNoZXZyb25fcmlnaHRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwXCIgKGNsaWNrKT1cIkJhY2soKVwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkdldFN0ZXBzKCkubGVuZ3RoID09IDBcIj5Qcm9kdWN0Y29uZmlndXJhdGllOiA8L3NwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZVByb2R1Y3QoRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkKSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJNb2JpbGVTZXJ2aWNlLk1vYmlsZUludGVyZmFjZSAmJiBzaG93ZmlsdGVybWVudWJ1dHRvblwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiTW9iaWxlU2VydmljZS5PcGVuTmF2KClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYmFja1wiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBtZW51XCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkZpbHRlcm1lbnVcIikgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4YXV0b1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9wZW4tZmlsdGVycy1idXR0b24gYnV0dG9uc2l6ZVwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dBY3Rpb25NZW51KClcIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIk1vYmlsZVNlcnZpY2UuT3BlbkFjdGlvbigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWJhY2tcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gbWVudVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJBY3Rpb25tZW51XCIpIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIk1vYmlsZVNlcnZpY2UuTW9iaWxlSW50ZXJmYWNlICYmIHNob3dmaWx0ZXJtZW51YnV0dG9uICYmIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbCAmJiAhSGlkZUJyZWFkY3J1bWIoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYWRkaW5nbGVmdCBzdGVwIGNlbnRlclwiIChjbGljayk9XCJCYWNrKClcIj5cclxuICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWVQcm9kdWN0KEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5pZCkgfX1cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -50,10 +50,10 @@ export class FabProductSelectComponent {
50
50
  }
51
51
  }
52
52
  FabProductSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductSelectComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
- FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}app-fab-product-select .mat-drawer-inner-container{overflow-y:scroll}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: i11.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i12.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }], encapsulation: i0.ViewEncapsulation.None });
53
+ FabProductSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductSelectComponent, selector: "app-fab-product-select", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i7.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i8.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.FabProductTileComponent, selector: "app-fab-product-tile", inputs: ["product"] }, { kind: "component", type: i11.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i12.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }], encapsulation: i0.ViewEncapsulation.None });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductSelectComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}app-fab-product-select .mat-drawer-inner-container{overflow-y:scroll}\n"] }]
56
+ args: [{ selector: 'app-fab-product-select', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header>\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div #info class=\"header\">\r\n <div class=\"title\">\r\n <h1>{{ TranslateService.GetActiveValue(\"Common\", \"Product selection\") }}</h1>\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection info\") }}\r\n </div>\r\n <div class=\"subtitle\" *ngIf=\"FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Product selection blocked\") }}\r\n </div>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"!FabrikantenService.FabrikantenViewModel.productSelectBlockedByFilters\">\r\n <div class=\"main-window\">\r\n <app-fab-product-tile *ngFor=\"let product of FabrikantenService.FabrikantenViewModel.products\" [product]=\"product\"></app-fab-product-tile>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product-select .main-window{display:flex;flex-flow:row wrap;overflow:auto}app-fab-product-select .subtitle{margin-bottom:10px}app-fab-product-select .header{padding:4px}app-fab-product-select .row{display:flex}app-fab-product-select .loader-card{margin:auto;width:300px}app-fab-product-select .loader-subtitle{text-align:center}app-fab-product-select .loader-spinner{margin:auto}app-fab-product-select .view-container{height:100%}app-fab-product-select .view-content{background-color:#fff}app-fab-product-select .loader{position:absolute;width:100%;height:100%;display:flex;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product-select .filter-view{width:300px;min-width:300px;background-color:#fafafa;height:100%}app-fab-product-select .product-view{flex:auto}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
58
58
  type: ViewChild,
59
59
  args: ['header']
@@ -113,18 +113,18 @@ import * as i1 from "@angular/router";
113
113
  const routes = [
114
114
  {
115
115
  path: 'beheer', children: [
116
- { path: 'inloggen', component: BeheerInlogComponent },
117
- { path: 'overview', component: BeheerMainComponent, canActivate: [AuthGuard] },
118
- { path: 'products', component: BeheerProductsComponent, canActivate: [AuthGuard] },
119
- { path: 'importsets', component: BeheerImportSetsComponent, canActivate: [AuthGuard] },
120
- { path: 'filters', component: BeheerFiltersComponent, canActivate: [AuthGuard] },
121
- { path: 'users', component: BeheerUsersComponent, canActivate: [AuthGuard] },
122
- { path: 'settings', component: BeheerSettingsComponent, canActivate: [AuthGuard] },
123
- { path: 'searchproducts', component: BeheerSearchProductsComponent, canActivate: [AuthGuard] },
124
- { path: 'ebokoppel', component: BeheerEboKoppelComponent, canActivate: [AuthGuard] },
125
- { path: 'categories', component: BeheerCategoriesComponent, canActivate: [AuthGuard] },
126
- { path: 'translate', component: BeheerTranslateComponent, canActivate: [AuthGuard] },
127
- { path: 'deeplink', component: BeheerDeeplinkComponent, canActivate: [AuthGuard] },
116
+ { path: 'inloggen', component: BeheerInlogComponent, data: { title: 'Inloggen' } },
117
+ { path: 'overview', component: BeheerMainComponent, data: { title: 'Overview' }, canActivate: [AuthGuard] },
118
+ { path: 'products', component: BeheerProductsComponent, data: { title: 'Products' }, canActivate: [AuthGuard] },
119
+ { path: 'importsets', component: BeheerImportSetsComponent, data: { title: 'Importset' }, canActivate: [AuthGuard] },
120
+ { path: 'filters', component: BeheerFiltersComponent, data: { title: 'Filters' }, canActivate: [AuthGuard] },
121
+ { path: 'users', component: BeheerUsersComponent, data: { title: 'Users' }, canActivate: [AuthGuard] },
122
+ { path: 'settings', component: BeheerSettingsComponent, data: { title: 'Settings' }, canActivate: [AuthGuard] },
123
+ { path: 'searchproducts', component: BeheerSearchProductsComponent, data: { title: 'Search' }, canActivate: [AuthGuard] },
124
+ { path: 'ebokoppel', component: BeheerEboKoppelComponent, data: { title: 'EBO koppel' }, canActivate: [AuthGuard] },
125
+ { path: 'categories', component: BeheerCategoriesComponent, data: { title: 'Categories' }, canActivate: [AuthGuard] },
126
+ { path: 'translate', component: BeheerTranslateComponent, data: { title: 'Translate' }, canActivate: [AuthGuard] },
127
+ { path: 'deeplink', component: BeheerDeeplinkComponent, data: { title: 'Deeplink' }, canActivate: [AuthGuard] },
128
128
  { path: '', component: BeheerMainComponent, pathMatch: 'full', canActivate: [AuthGuard] }
129
129
  ]
130
130
  },
@@ -405,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
405
405
  ]
406
406
  }]
407
407
  }] });
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmlrYW50ZW5jb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvZmFicmlrYW50ZW5jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELFNBQVM7QUFDVCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUUvRixPQUFPO0FBQ1AsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFckYsV0FBVztBQUNYLE9BQU8sRUFBRSxxQkFBcUIsRUFB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QVU7d0JBQ1YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUMzRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDeEU7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRmlsdGVyc0FwaUNsaWVudCxcclxuICBQcm9qZWN0U2V0dGluZ0FwaUNsaWVudCxcclxuICBTZWN1cml0eUFwaUNsaWVudCxcclxuICBTZWFyY2hQcm9kdWN0c0FwaUNsaWVudCxcclxuICBQcm9kdWN0c0FwaUNsaWVudCxcclxuICBJbXBvcnRBcGlDbGllbnQsXHJcbiAgRmFicmlrYW50ZW5BcGlDbGllbnQsXHJcbiAgRUJPS29wcGVsQXBpQ2xpZW50LFxyXG4gIENhdGVnb3JpZXNBcGlDbGllbnQsXHJcbiAgVHJhbnNsYXRlQXBpQ2xpZW50XHJcbn0gZnJvbSAnLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuLy8gQXV0aCBjb21wb25lbnRzXHJcbmltcG9ydCB7IEJhc2ljQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnLi9oZWxwZXJzL2Jhc2ljLWF1dGguaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBFcnJvckludGVyY2VwdG9yIH0gZnJvbSAnLi9oZWxwZXJzL2Vycm9yLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9oZWxwZXJzL2F1dGguZ3VhcmQnO1xyXG5cclxuLy8gQmVoZWVyXHJcbmltcG9ydCB7IEJlaGVlck1haW5Db21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1tYWluL2JlaGVlci1tYWluLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlcklubG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW5sb2cvYmVoZWVyLWlubG9nLmNvbXBvbmVudCc7XHJcblxyXG4vLyBNYWluXHJcbmltcG9ydCB7IEZhYkZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWZpbHRlcnMvZmFiLWZpbHRlcnMuY29tcG9uZW50JztcclxuXHJcbi8vIFNlcnZpY2VzXHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2plY3RTZXR0aW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJvamVjdHNldHRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQaG90b1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Bob3RvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9iZXN0ZWsuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1hdGVyaWFsXHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcblxyXG4vL1xyXG5pbXBvcnQgeyBCZWhlZXJOYXZDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJVc2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXVzZXJzL2JlaGVlci11c2Vycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZmlsdGVycy9iZWhlZXItZmlsdGVycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNldHRpbmdzL2JlaGVlci1zZXR0aW5ncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWxvYWRlci9mYWItbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlYXJjaFByb2R1Y3RzQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2VhcmNocHJvZHVjdHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlYXJjaHByb2R1Y3RzS29wcGVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2VhcmNocHJvZHVjdHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNQcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QvYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNCY2Jwcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3QvYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW1wb3J0U2V0c0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQnO1xyXG4vKmltcG9ydCB7ICB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy1vcGJvdXcvYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dy5jb21wb25lbnQnOyovXHJcbmltcG9ydCB7IEJlaGVlckltcG9ydFNldHNFaWdlbnNjaGFwQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW1wb3J0LXNldHMvYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAvYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW1wb3J0U2V0c0Vib0NvbXBvbmVudCwgQmVoZWVySW1wb3J0U2V0c09wYm91d0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy1lYm8vYmVoZWVyLWltcG9ydC1zZXRzLWViby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1maWx0ZXIvZmFiLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkJjYlByb2R1Y3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWJjYi1wcm9kdWN0L2ZhYi1iY2ItcHJvZHVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0LXNlbGVjdC9mYWItcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiUHJvZHVjdFRpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLXByb2R1Y3QtdGlsZS9mYWItcHJvZHVjdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYlByb2R1Y3RJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWluZm8vZmFiLXByb2R1Y3QtaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0QmVzdGVrQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWJlc3Rlay9mYWItcHJvZHVjdC1iZXN0ZWsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiUHJvZHVjdEluZm9QaG90b0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC1pbmZvL2ZhYi1wcm9kdWN0LWluZm8tcGhvdG8vZmFiLXByb2R1Y3QtaW5mby1waG90by5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0SW5mb1Bob3RvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWluZm8vZmFiLXByb2R1Y3QtaW5mby1waG90by1kaWFsb2cvZmFiLXByb2R1Y3QtaW5mby1waG90by1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyRWJvS29wcGVsQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZWJvLWtvcHBlbC9iZWhlZXItZWJvLWtvcHBlbC9iZWhlZXItZWJvLWtvcHBlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc09wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZXR0aW5ncy9iZWhlZXItc2V0dGluZ3Mtb3B0aW9ucy9iZWhlZXItc2V0dGluZ3Mtb3B0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc1N0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNldHRpbmdzL2JlaGVlci1zZXR0aW5ncy1zdHJpbmcvYmVoZWVyLXNldHRpbmdzLXN0cmluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW1wb3J0LXNldHMvYmVoZWVyLWltcG9ydC1zZXRzLWRpYWxvZy9iZWhlZXItaW1wb3J0LXNldHMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckNhdGVnb3JpZXNDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jYXRlZ29yaWVzL2JlaGVlci1jYXRlZ29yaWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckNvbm5lY3RDYXRlZ29yeURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWNvbm5lY3QtY2F0ZWdvcnktZGlhbG9nL2JlaGVlci1jb25uZWN0LWNhdGVnb3J5LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJTdGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItc3RhcnQvZmFiLXN0YXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkNhdGVnb3JpZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWNhdGVnb3JpZXMvZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiQ2F0ZWdvcnlUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1jYXRlZ29yeS10aWxlL2ZhYi1jYXRlZ29yeS10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWJyZWFkY3J1bWIvZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiRmlsdGVyc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1maWx0ZXJzLWlucHV0L2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkZpbHRlcnNPdmVydmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItZmlsdGVycy1vdmVydmlldy9mYWItZmlsdGVycy1vdmVydmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJGbGFnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1mbGFnL2ZhYi1mbGFnLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclRyYW5zbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXRyYW5zbGF0ZS9iZWhlZXItdHJhbnNsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkxhbmd1YWdlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1sYW5ndWFnZS1zZWxlY3QvZmFiLWxhbmd1YWdlLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItaGVhZGVyL2ZhYi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFiV2ViZ2xWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLXdlYmdsLXZpZXdlci9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFiU3ZnVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1zdmctdmlld2VyL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclByb2R1Y3RzRWJvQ29tcG9uZW50LCBCZWhlZXJQcm9kdWN0c09wYm91d0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1lYm8vYmVoZWVyLXByb2R1Y3RzLWViby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBCZXJlaWtDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC1iZXJlaWsvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAtYmVyZWlrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckRpc3BsYXlFYm9Db21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1kaXNwbGF5LWViby9iZWhlZXItZGlzcGxheS1lYm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1jb25uZWN0LXJhbmdlaW5wdXQvYmVoZWVyLXByb2R1Y3RzLWNvbm5lY3QtcmFuZ2VpbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJSYW5nZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1yYW5nZS1pbnB1dC9mYWItcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyU2V0dGluZ3NCb29sZWFuQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2V0dGluZ3MvYmVoZWVyLXNldHRpbmdzLWJvb2xlYW4vYmVoZWVyLXNldHRpbmdzLWJvb2xlYW4uY29tcG9uZW50JztcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFiVGV4dHVyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItdGV4dHVyZS9mYWItdGV4dHVyZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0dXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZhYklmcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItaWZyYW1lL2ZhYi1pZnJhbWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJlaGVlckRlZXBsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZGVlcGxpbmsvYmVoZWVyLWRlZXBsaW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJGaWx0ZXJDb2xvdXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWZpbHRlci1jb2xvdXIvZmFiLWZpbHRlci1jb2xvdXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZhYkZpbHRlckNvbG91ckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItZmlsdGVyLWNvbG91ci9mYWItZmlsdGVyLWNvbG91ci1kaWFsb2cvZmFiLWZpbHRlci1jb2xvdXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJUb2ViZWhvcmVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi10b2ViZWhvcmVuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJBY3Rpb25tZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1hY3Rpb25tZW51L2ZhYi1hY3Rpb25tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZWJlaG9yZW5TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2ViZWhvcmVuLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmFiU2VsZWN0QmNicHJvZHVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItc2VsZWN0LWJjYnByb2R1Y3QvZmFiLXNlbGVjdC1iY2Jwcm9kdWN0LmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnYmVoZWVyJywgY2hpbGRyZW46IFtcclxuICAgICAgeyBwYXRoOiAnaW5sb2dnZW4nLCBjb21wb25lbnQ6IEJlaGVlcklubG9nQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgcGF0aDogJ292ZXJ2aWV3JywgY29tcG9uZW50OiBCZWhlZXJNYWluQ29tcG9uZW50LCBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0gfSxcclxuICAgICAgeyBwYXRoOiAncHJvZHVjdHMnLCBjb21wb25lbnQ6IEJlaGVlclByb2R1Y3RzQ29tcG9uZW50LCBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0gfSxcclxuICAgICAgeyBwYXRoOiAnaW1wb3J0c2V0cycsIGNvbXBvbmVudDogQmVoZWVySW1wb3J0U2V0c0NvbXBvbmVudCwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2ZpbHRlcnMnLCBjb21wb25lbnQ6IEJlaGVlckZpbHRlcnNDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICd1c2VycycsIGNvbXBvbmVudDogQmVoZWVyVXNlcnNDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICdzZXR0aW5ncycsIGNvbXBvbmVudDogQmVoZWVyU2V0dGluZ3NDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICdzZWFyY2hwcm9kdWN0cycsIGNvbXBvbmVudDogQmVoZWVyU2VhcmNoUHJvZHVjdHNDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICdlYm9rb3BwZWwnLCBjb21wb25lbnQ6IEJlaGVlckVib0tvcHBlbENvbXBvbmVudCwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2NhdGVnb3JpZXMnLCBjb21wb25lbnQ6IEJlaGVlckNhdGVnb3JpZXNDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICd0cmFuc2xhdGUnLCBjb21wb25lbnQ6IEJlaGVlclRyYW5zbGF0ZUNvbXBvbmVudCwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2RlZXBsaW5rJywgY29tcG9uZW50OiBCZWhlZXJEZWVwbGlua0NvbXBvbmVudCwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJycsIGNvbXBvbmVudDogQmVoZWVyTWFpbkNvbXBvbmVudCwgcGF0aE1hdGNoOiAnZnVsbCcsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9XHJcbiAgICBdXHJcbiAgfSxcclxuICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IEZhYlN0YXJ0Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnOmxhbmd1YWdlL2NhdGVnb3JpZXMnLCBjb21wb25lbnQ6IEZhYkNhdGVnb3JpZXNDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICc6bGFuZ3VhZ2UvcHJvZHVjdHMnLCBjb21wb25lbnQ6IEZhYlByb2R1Y3RTZWxlY3RDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICc6bGFuZ3VhZ2UvcHJvZHVjdC86cHJvZHVjdCcsIGNvbXBvbmVudDogRmFiUHJvZHVjdENvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ2lmcmFtZScsIGNvbXBvbmVudDogRmFiSWZyYW1lQ29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnKionLCBwYXRoTWF0Y2g6ICdmdWxsJywgY29tcG9uZW50OiBGYWJGaWx0ZXJzQ29tcG9uZW50IH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0VHJlZU1vZHVsZSxcclxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChyb3V0ZXMsIHtcclxuICAgICAgc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbjogJ2VuYWJsZWQnLFxyXG4gICAgICBhbmNob3JTY3JvbGxpbmc6ICdlbmFibGVkJyxcclxuICAgIH0pLFx0XHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEZhYkZpbHRlcnNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJNYWluQ29tcG9uZW50LFxyXG4gICAgQmVoZWVySW5sb2dDb21wb25lbnQsXHJcbiAgICBCZWhlZXJOYXZDb21wb25lbnQsXHJcbiAgICBCZWhlZXJVc2Vyc0NvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRmlsdGVyc0NvbXBvbmVudCxcclxuICAgIEJlaGVlclNldHRpbmdzQ29tcG9uZW50LFxyXG4gICAgRmFiTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2VhcmNoUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzUHJvZHVjdENvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzQmNicHJvZHVjdENvbXBvbmVudCxcclxuICAgIEJlaGVlckltcG9ydFNldHNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzT3Bib3V3Q29tcG9uZW50LFxyXG4gICAgQmVoZWVySW1wb3J0U2V0c0VpZ2Vuc2NoYXBDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzRWJvQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNFaWdlbnNjaGFwQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNLb3BwZWxGaWx0ZXJvcHRpb25EYWlsb2dDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgRmFiQmNiUHJvZHVjdENvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RTZWxlY3RDb21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0VGlsZUNvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RJbmZvQ29tcG9uZW50LFxyXG4gICAgRmFiUHJvZHVjdEJlc3Rla0NvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RJbmZvUGhvdG9Db21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0SW5mb1Bob3RvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRWJvS29wcGVsQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2V0dGluZ3NPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2V0dGluZ3NTdHJpbmdDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyQ2F0ZWdvcmllc0NvbXBvbmVudCxcclxuICAgIEJlaGVlckNvbm5lY3RDYXRlZ29yeURpYWxvZ0NvbXBvbmVudCxcclxuICAgIEZhYlN0YXJ0Q29tcG9uZW50LFxyXG4gICAgRmFiQ2F0ZWdvcmllc0NvbXBvbmVudCxcclxuICAgIEZhYkNhdGVnb3J5VGlsZUNvbXBvbmVudCxcclxuICAgIEZhYkJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJzSW5wdXRDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJzT3ZlcnZpZXdDb21wb25lbnQsXHJcbiAgICBGYWJGbGFnQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyVHJhbnNsYXRlQ29tcG9uZW50LFxyXG4gICAgRmFiTGFuZ3VhZ2VTZWxlY3RDb21wb25lbnQsXHJcbiAgICBGYWJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBGYWJXZWJnbFZpZXdlckNvbXBvbmVudCxcclxuICAgIEZhYlN2Z1ZpZXdlckNvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzT3Bib3V3Q29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNFYm9Db21wb25lbnQsXHJcbiAgICBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBCZXJlaWtDb21wb25lbnQsXHJcbiAgICBCZWhlZXJEaXNwbGF5RWJvQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCxcclxuICAgIEZhYlJhbmdlSW5wdXRDb21wb25lbnQsXHJcbiAgICBCZWhlZXJTZXR0aW5nc0Jvb2xlYW5Db21wb25lbnQsXHJcbiAgICBCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQsXHJcbiAgICBGYWJUZXh0dXJlQ29tcG9uZW50LFxyXG4gICAgRmFiSWZyYW1lQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRGVlcGxpbmtDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb2xvdXJDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb2xvdXJEaWFsb2dDb21wb25lbnQsXHJcbiAgICBGYWJUb2ViZWhvcmVuQ29tcG9uZW50LFxyXG4gICAgRmFiQWN0aW9ubWVudUNvbXBvbmVudCxcclxuICAgIEZhYlNlbGVjdEJjYnByb2R1Y3RDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTmF2aWdhdGVTZXJ2aWNlLFxyXG4gICAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gICAgUHJvamVjdFNldHRpbmdTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdHNTZXJ2aWNlLFxyXG4gICAgUGhvdG9TZXJ2aWNlLFxyXG4gICAgQmVzdGVrU2VydmljZSxcclxuICAgIFdlYkdMU2VydmljZSxcclxuICAgIFRvZWJlaG9yZW5TZXJ2aWNlLFxyXG4gICAgVGV4dHVyZVNlcnZpY2UsXHJcbiAgICBTVkdTZXJ2aWNlLFxyXG4gICAgTW9iaWxlU2VydmljZSxcclxuICAgIFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBJbXBvcnRTZXRzU2VydmljZSxcclxuICAgIEZpbHRlcnNBcGlDbGllbnQsXHJcbiAgICBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICAgIENhdGVnb3JpZXNBcGlDbGllbnQsXHJcbiAgICBUcmFuc2xhdGVBcGlDbGllbnQsXHJcbiAgICBFQk9Lb3BwZWxBcGlDbGllbnQsXHJcbiAgICBTZWN1cml0eUFwaUNsaWVudCxcclxuICAgIFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LFxyXG4gICAgSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgUHJvZHVjdHNBcGlDbGllbnQsXHJcbiAgICBQcm9qZWN0U2V0dGluZ0FwaUNsaWVudCxcclxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBCYXNpY0F1dGhJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcclxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBFcnJvckludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRmFiRmlsdGVyc0NvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBGYWJyaWthbnRlbkNvcmVNb2R1bGUgeyB9XHJcbiJdfQ==
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmlrYW50ZW5jb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvZmFicmlrYW50ZW5jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELFNBQVM7QUFDVCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUUvRixPQUFPO0FBQ1AsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFckYsV0FBVztBQUNYLE9BQU8sRUFBRSxxQkFBcUIsRUFB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eyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRmlsdGVyc0FwaUNsaWVudCxcclxuICBQcm9qZWN0U2V0dGluZ0FwaUNsaWVudCxcclxuICBTZWN1cml0eUFwaUNsaWVudCxcclxuICBTZWFyY2hQcm9kdWN0c0FwaUNsaWVudCxcclxuICBQcm9kdWN0c0FwaUNsaWVudCxcclxuICBJbXBvcnRBcGlDbGllbnQsXHJcbiAgRmFicmlrYW50ZW5BcGlDbGllbnQsXHJcbiAgRUJPS29wcGVsQXBpQ2xpZW50LFxyXG4gIENhdGVnb3JpZXNBcGlDbGllbnQsXHJcbiAgVHJhbnNsYXRlQXBpQ2xpZW50XHJcbn0gZnJvbSAnLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuLy8gQXV0aCBjb21wb25lbnRzXHJcbmltcG9ydCB7IEJhc2ljQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnLi9oZWxwZXJzL2Jhc2ljLWF1dGguaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBFcnJvckludGVyY2VwdG9yIH0gZnJvbSAnLi9oZWxwZXJzL2Vycm9yLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9oZWxwZXJzL2F1dGguZ3VhcmQnO1xyXG5cclxuLy8gQmVoZWVyXHJcbmltcG9ydCB7IEJlaGVlck1haW5Db21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1tYWluL2JlaGVlci1tYWluLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlcklubG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW5sb2cvYmVoZWVyLWlubG9nLmNvbXBvbmVudCc7XHJcblxyXG4vLyBNYWluXHJcbmltcG9ydCB7IEZhYkZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWZpbHRlcnMvZmFiLWZpbHRlcnMuY29tcG9uZW50JztcclxuXHJcbi8vIFNlcnZpY2VzXHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2plY3RTZXR0aW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJvamVjdHNldHRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQaG90b1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Bob3RvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9iZXN0ZWsuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1hdGVyaWFsXHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcblxyXG4vL1xyXG5pbXBvcnQgeyBCZWhlZXJOYXZDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJVc2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXVzZXJzL2JlaGVlci11c2Vycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZmlsdGVycy9iZWhlZXItZmlsdGVycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNldHRpbmdzL2JlaGVlci1zZXR0aW5ncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWxvYWRlci9mYWItbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlYXJjaFByb2R1Y3RzQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2VhcmNocHJvZHVjdHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlYXJjaHByb2R1Y3RzS29wcGVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2VhcmNocHJvZHVjdHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNQcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QvYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNCY2Jwcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3QvYmVoZWVyLXByb2R1Y3RzLWJjYnByb2R1Y3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW1wb3J0U2V0c0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy5jb21wb25lbnQnO1xyXG4vKmltcG9ydCB7ICB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy1vcGJvdXcvYmVoZWVyLWltcG9ydC1zZXRzLW9wYm91dy5jb21wb25lbnQnOyovXHJcbmltcG9ydCB7IEJlaGVlckltcG9ydFNldHNFaWdlbnNjaGFwQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW1wb3J0LXNldHMvYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAvYmVoZWVyLWltcG9ydC1zZXRzLWVpZ2Vuc2NoYXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVySW1wb3J0U2V0c0Vib0NvbXBvbmVudCwgQmVoZWVySW1wb3J0U2V0c09wYm91d0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWltcG9ydC1zZXRzL2JlaGVlci1pbXBvcnQtc2V0cy1lYm8vYmVoZWVyLWltcG9ydC1zZXRzLWViby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1maWx0ZXIvZmFiLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkJjYlByb2R1Y3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWJjYi1wcm9kdWN0L2ZhYi1iY2ItcHJvZHVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0LXNlbGVjdC9mYWItcHJvZHVjdC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiUHJvZHVjdFRpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLXByb2R1Y3QtdGlsZS9mYWItcHJvZHVjdC10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYlByb2R1Y3RJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWluZm8vZmFiLXByb2R1Y3QtaW5mby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0QmVzdGVrQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWJlc3Rlay9mYWItcHJvZHVjdC1iZXN0ZWsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiUHJvZHVjdEluZm9QaG90b0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC1pbmZvL2ZhYi1wcm9kdWN0LWluZm8tcGhvdG8vZmFiLXByb2R1Y3QtaW5mby1waG90by5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJQcm9kdWN0SW5mb1Bob3RvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LWluZm8vZmFiLXByb2R1Y3QtaW5mby1waG90by1kaWFsb2cvZmFiLXByb2R1Y3QtaW5mby1waG90by1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyRWJvS29wcGVsQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZWJvLWtvcHBlbC9iZWhlZXItZWJvLWtvcHBlbC9iZWhlZXItZWJvLWtvcHBlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc09wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZXR0aW5ncy9iZWhlZXItc2V0dGluZ3Mtb3B0aW9ucy9iZWhlZXItc2V0dGluZ3Mtb3B0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZXR0aW5nc1N0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNldHRpbmdzL2JlaGVlci1zZXR0aW5ncy1zdHJpbmcvYmVoZWVyLXNldHRpbmdzLXN0cmluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItaW1wb3J0LXNldHMvYmVoZWVyLWltcG9ydC1zZXRzLWRpYWxvZy9iZWhlZXItaW1wb3J0LXNldHMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckNhdGVnb3JpZXNDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1jYXRlZ29yaWVzL2JlaGVlci1jYXRlZ29yaWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckNvbm5lY3RDYXRlZ29yeURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLWNvbm5lY3QtY2F0ZWdvcnktZGlhbG9nL2JlaGVlci1jb25uZWN0LWNhdGVnb3J5LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJTdGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItc3RhcnQvZmFiLXN0YXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkNhdGVnb3JpZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWNhdGVnb3JpZXMvZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiQ2F0ZWdvcnlUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1jYXRlZ29yeS10aWxlL2ZhYi1jYXRlZ29yeS10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWJyZWFkY3J1bWIvZmFiLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFiRmlsdGVyc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1maWx0ZXJzLWlucHV0L2ZhYi1maWx0ZXJzLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkZpbHRlcnNPdmVydmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItZmlsdGVycy1vdmVydmlldy9mYWItZmlsdGVycy1vdmVydmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJGbGFnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1mbGFnL2ZhYi1mbGFnLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclRyYW5zbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXRyYW5zbGF0ZS9iZWhlZXItdHJhbnNsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhYkxhbmd1YWdlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1sYW5ndWFnZS1zZWxlY3QvZmFiLWxhbmd1YWdlLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItaGVhZGVyL2ZhYi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFiV2ViZ2xWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLXdlYmdsLXZpZXdlci9mYWItd2ViZ2wtdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFiU3ZnVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1zdmctdmlld2VyL2ZhYi1zdmctdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclByb2R1Y3RzRWJvQ29tcG9uZW50LCBCZWhlZXJQcm9kdWN0c09wYm91d0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1lYm8vYmVoZWVyLXByb2R1Y3RzLWViby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBCZXJlaWtDb21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC1iZXJlaWsvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAtYmVyZWlrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlckRpc3BsYXlFYm9Db21wb25lbnQgfSBmcm9tICcuL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1kaXNwbGF5LWViby9iZWhlZXItZGlzcGxheS1lYm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1jb25uZWN0LXJhbmdlaW5wdXQvYmVoZWVyLXByb2R1Y3RzLWNvbm5lY3QtcmFuZ2VpbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWJSYW5nZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1yYW5nZS1pbnB1dC9mYWItcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyU2V0dGluZ3NCb29sZWFuQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItc2V0dGluZ3MvYmVoZWVyLXNldHRpbmdzLWJvb2xlYW4vYmVoZWVyLXNldHRpbmdzLWJvb2xlYW4uY29tcG9uZW50JztcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFiVGV4dHVyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItdGV4dHVyZS9mYWItdGV4dHVyZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0dXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZhYklmcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItaWZyYW1lL2ZhYi1pZnJhbWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJlaGVlckRlZXBsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZGVlcGxpbmsvYmVoZWVyLWRlZXBsaW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJGaWx0ZXJDb2xvdXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFiLWZpbHRlci1jb2xvdXIvZmFiLWZpbHRlci1jb2xvdXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZhYkZpbHRlckNvbG91ckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItZmlsdGVyLWNvbG91ci9mYWItZmlsdGVyLWNvbG91ci1kaWFsb2cvZmFiLWZpbHRlci1jb2xvdXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJUb2ViZWhvcmVuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi10b2ViZWhvcmVuL2ZhYi10b2ViZWhvcmVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWJBY3Rpb25tZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhYi1hY3Rpb25tZW51L2ZhYi1hY3Rpb25tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZWJlaG9yZW5TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2ViZWhvcmVuLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmFiU2VsZWN0QmNicHJvZHVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWItc2VsZWN0LWJjYnByb2R1Y3QvZmFiLXNlbGVjdC1iY2Jwcm9kdWN0LmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnYmVoZWVyJywgY2hpbGRyZW46IFtcclxuICAgICAgeyBwYXRoOiAnaW5sb2dnZW4nLCBjb21wb25lbnQ6IEJlaGVlcklubG9nQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiAnSW5sb2dnZW4nIH0gfSxcclxuICAgICAgeyBwYXRoOiAnb3ZlcnZpZXcnLCBjb21wb25lbnQ6IEJlaGVlck1haW5Db21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdPdmVydmlldycgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ3Byb2R1Y3RzJywgY29tcG9uZW50OiBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogJ1Byb2R1Y3RzJyB9LCBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0gfSxcclxuICAgICAgeyBwYXRoOiAnaW1wb3J0c2V0cycsIGNvbXBvbmVudDogQmVoZWVySW1wb3J0U2V0c0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogJ0ltcG9ydHNldCcgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2ZpbHRlcnMnLCBjb21wb25lbnQ6IEJlaGVlckZpbHRlcnNDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdGaWx0ZXJzJyB9LCBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0gfSxcclxuICAgICAgeyBwYXRoOiAndXNlcnMnLCBjb21wb25lbnQ6IEJlaGVlclVzZXJzQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiAnVXNlcnMnIH0sIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICdzZXR0aW5ncycsIGNvbXBvbmVudDogQmVoZWVyU2V0dGluZ3NDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdTZXR0aW5ncycgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ3NlYXJjaHByb2R1Y3RzJywgY29tcG9uZW50OiBCZWhlZXJTZWFyY2hQcm9kdWN0c0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogJ1NlYXJjaCcgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2Vib2tvcHBlbCcsIGNvbXBvbmVudDogQmVoZWVyRWJvS29wcGVsQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiAnRUJPIGtvcHBlbCcgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJ2NhdGVnb3JpZXMnLCBjb21wb25lbnQ6IEJlaGVlckNhdGVnb3JpZXNDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdDYXRlZ29yaWVzJyB9LCBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZF0gfSxcclxuICAgICAgeyBwYXRoOiAndHJhbnNsYXRlJywgY29tcG9uZW50OiBCZWhlZXJUcmFuc2xhdGVDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdUcmFuc2xhdGUnIH0sIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9LFxyXG4gICAgICB7IHBhdGg6ICdkZWVwbGluaycsIGNvbXBvbmVudDogQmVoZWVyRGVlcGxpbmtDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdEZWVwbGluaycgfSwgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRdIH0sXHJcbiAgICAgIHsgcGF0aDogJycsIGNvbXBvbmVudDogQmVoZWVyTWFpbkNvbXBvbmVudCwgcGF0aE1hdGNoOiAnZnVsbCcsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSB9XHJcbiAgICBdXHJcbiAgfSxcclxuICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IEZhYlN0YXJ0Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnOmxhbmd1YWdlL2NhdGVnb3JpZXMnLCBjb21wb25lbnQ6IEZhYkNhdGVnb3JpZXNDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICc6bGFuZ3VhZ2UvcHJvZHVjdHMnLCBjb21wb25lbnQ6IEZhYlByb2R1Y3RTZWxlY3RDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICc6bGFuZ3VhZ2UvcHJvZHVjdC86cHJvZHVjdCcsIGNvbXBvbmVudDogRmFiUHJvZHVjdENvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ2lmcmFtZScsIGNvbXBvbmVudDogRmFiSWZyYW1lQ29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnKionLCBwYXRoTWF0Y2g6ICdmdWxsJywgY29tcG9uZW50OiBGYWJGaWx0ZXJzQ29tcG9uZW50IH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0VHJlZU1vZHVsZSxcclxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChyb3V0ZXMsIHtcclxuICAgICAgc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbjogJ2VuYWJsZWQnLFxyXG4gICAgICBhbmNob3JTY3JvbGxpbmc6ICdlbmFibGVkJyxcclxuICAgIH0pLFx0XHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEZhYkZpbHRlcnNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJNYWluQ29tcG9uZW50LFxyXG4gICAgQmVoZWVySW5sb2dDb21wb25lbnQsXHJcbiAgICBCZWhlZXJOYXZDb21wb25lbnQsXHJcbiAgICBCZWhlZXJVc2Vyc0NvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRmlsdGVyc0NvbXBvbmVudCxcclxuICAgIEJlaGVlclNldHRpbmdzQ29tcG9uZW50LFxyXG4gICAgRmFiTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2VhcmNoUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzUHJvZHVjdENvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzQmNicHJvZHVjdENvbXBvbmVudCxcclxuICAgIEJlaGVlckltcG9ydFNldHNDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzT3Bib3V3Q29tcG9uZW50LFxyXG4gICAgQmVoZWVySW1wb3J0U2V0c0VpZ2Vuc2NoYXBDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzRWJvQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNFaWdlbnNjaGFwQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNLb3BwZWxGaWx0ZXJvcHRpb25EYWlsb2dDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgRmFiQmNiUHJvZHVjdENvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RTZWxlY3RDb21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0VGlsZUNvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RJbmZvQ29tcG9uZW50LFxyXG4gICAgRmFiUHJvZHVjdEJlc3Rla0NvbXBvbmVudCxcclxuICAgIEZhYlByb2R1Y3RJbmZvUGhvdG9Db21wb25lbnQsXHJcbiAgICBGYWJQcm9kdWN0SW5mb1Bob3RvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRWJvS29wcGVsQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2V0dGluZ3NPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyU2V0dGluZ3NTdHJpbmdDb21wb25lbnQsXHJcbiAgICBCZWhlZXJJbXBvcnRTZXRzRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyQ2F0ZWdvcmllc0NvbXBvbmVudCxcclxuICAgIEJlaGVlckNvbm5lY3RDYXRlZ29yeURpYWxvZ0NvbXBvbmVudCxcclxuICAgIEZhYlN0YXJ0Q29tcG9uZW50LFxyXG4gICAgRmFiQ2F0ZWdvcmllc0NvbXBvbmVudCxcclxuICAgIEZhYkNhdGVnb3J5VGlsZUNvbXBvbmVudCxcclxuICAgIEZhYkJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJzSW5wdXRDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJzT3ZlcnZpZXdDb21wb25lbnQsXHJcbiAgICBGYWJGbGFnQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyVHJhbnNsYXRlQ29tcG9uZW50LFxyXG4gICAgRmFiTGFuZ3VhZ2VTZWxlY3RDb21wb25lbnQsXHJcbiAgICBGYWJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBGYWJXZWJnbFZpZXdlckNvbXBvbmVudCxcclxuICAgIEZhYlN2Z1ZpZXdlckNvbXBvbmVudCxcclxuICAgIEJlaGVlclByb2R1Y3RzT3Bib3V3Q29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNFYm9Db21wb25lbnQsXHJcbiAgICBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBCZXJlaWtDb21wb25lbnQsXHJcbiAgICBCZWhlZXJEaXNwbGF5RWJvQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCxcclxuICAgIEZhYlJhbmdlSW5wdXRDb21wb25lbnQsXHJcbiAgICBCZWhlZXJTZXR0aW5nc0Jvb2xlYW5Db21wb25lbnQsXHJcbiAgICBCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQsXHJcbiAgICBGYWJUZXh0dXJlQ29tcG9uZW50LFxyXG4gICAgRmFiSWZyYW1lQ29tcG9uZW50LFxyXG4gICAgQmVoZWVyRGVlcGxpbmtDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb2xvdXJDb21wb25lbnQsXHJcbiAgICBGYWJGaWx0ZXJDb2xvdXJEaWFsb2dDb21wb25lbnQsXHJcbiAgICBGYWJUb2ViZWhvcmVuQ29tcG9uZW50LFxyXG4gICAgRmFiQWN0aW9ubWVudUNvbXBvbmVudCxcclxuICAgIEZhYlNlbGVjdEJjYnByb2R1Y3RDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTmF2aWdhdGVTZXJ2aWNlLFxyXG4gICAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gICAgUHJvamVjdFNldHRpbmdTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdHNTZXJ2aWNlLFxyXG4gICAgUGhvdG9TZXJ2aWNlLFxyXG4gICAgQmVzdGVrU2VydmljZSxcclxuICAgIFdlYkdMU2VydmljZSxcclxuICAgIFRvZWJlaG9yZW5TZXJ2aWNlLFxyXG4gICAgVGV4dHVyZVNlcnZpY2UsXHJcbiAgICBTVkdTZXJ2aWNlLFxyXG4gICAgTW9iaWxlU2VydmljZSxcclxuICAgIFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBJbXBvcnRTZXRzU2VydmljZSxcclxuICAgIEZpbHRlcnNBcGlDbGllbnQsXHJcbiAgICBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICAgIENhdGVnb3JpZXNBcGlDbGllbnQsXHJcbiAgICBUcmFuc2xhdGVBcGlDbGllbnQsXHJcbiAgICBFQk9Lb3BwZWxBcGlDbGllbnQsXHJcbiAgICBTZWN1cml0eUFwaUNsaWVudCxcclxuICAgIFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LFxyXG4gICAgSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgUHJvZHVjdHNBcGlDbGllbnQsXHJcbiAgICBQcm9qZWN0U2V0dGluZ0FwaUNsaWVudCxcclxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBCYXNpY0F1dGhJbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcclxuICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBFcnJvckludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRmFiRmlsdGVyc0NvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBGYWJyaWthbnRlbkNvcmVNb2R1bGUgeyB9XHJcbiJdfQ==