@sumaris-net/ngx-components 1.19.4 → 1.19.5-rc3

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.
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Optional, Output, ViewChild } from '@angular/core';
3
3
  import { ProgressBarService } from '../services/progress-bar.service';
4
- import { Router } from '@angular/router';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
5
  import { IonRouterOutlet } from '@ionic/angular';
6
6
  import { isNotNil, isNotNilOrBlank, toBoolean } from '../functions';
7
7
  import { debounceTime, distinctUntilChanged, startWith, tap } from 'rxjs/operators';
@@ -9,7 +9,8 @@ import { HAMMER_PRESS_TIME } from '../gesture/gesture-config';
9
9
  export class ToolbarToken {
10
10
  }
11
11
  export class ToolbarComponent {
12
- constructor(router, routerOutlet, cd, progressBarService) {
12
+ constructor(route, router, routerOutlet, cd, progressBarService) {
13
+ this.route = route;
13
14
  this.router = router;
14
15
  this.routerOutlet = routerOutlet;
15
16
  this.cd = cd;
@@ -95,15 +96,28 @@ export class ToolbarComponent {
95
96
  return __awaiter(this, void 0, void 0, function* () {
96
97
  console.debug('[toolbar] calling goBack()');
97
98
  if (this._backHref) {
98
- yield this.router.navigateByUrl(this._backHref);
99
+ const replaceUrl = !this.routerOutlet.canGoBack();
100
+ // Relative href
101
+ if (this._backHref.startsWith('.')) {
102
+ yield this.router.navigate([this._backHref], { relativeTo: this.route, replaceUrl });
103
+ }
104
+ else {
105
+ yield this.router.navigateByUrl(this._backHref, { replaceUrl });
106
+ }
99
107
  }
100
108
  else if (this.routerOutlet.canGoBack()) {
101
109
  yield this.routerOutlet.pop();
102
110
  }
103
111
  else if (this._defaultBackHref) {
104
- yield this.router.navigateByUrl(this._defaultBackHref, {
105
- replaceUrl: true
106
- });
112
+ // Relative href
113
+ if (this._backHref.startsWith('.')) {
114
+ yield this.router.navigate([this._backHref], { relativeTo: this.route, replaceUrl: true });
115
+ }
116
+ else {
117
+ yield this.router.navigateByUrl(this._defaultBackHref, {
118
+ replaceUrl: true
119
+ });
120
+ }
107
121
  }
108
122
  else {
109
123
  console.error('[toolbar] Cannot go back. Missing attribute \'defaultBackHref\' or \'backHref\'');
@@ -162,7 +176,7 @@ export class ToolbarComponent {
162
176
  ToolbarComponent.decorators = [
163
177
  { type: Component, args: [{
164
178
  selector: 'app-toolbar',
165
- template: "<ion-header [class]=\"class\">\n <ion-toolbar [color]=\"color\">\n\n <ion-buttons slot=\"start\">\n\n <!-- back button -->\n <ion-button class=\"back-button\"\n *ngIf=\"canGoBack\"\n (click)=\"doBackClick($event)\"\n routerDirection=\"back\" >\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <!-- show menu button -->\n <ion-menu-toggle [hidden]=\"canGoBack || !canShowMenu\">\n <ion-button>\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\" collapse=\"true\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- search bar -->\n <ion-searchbar #searchbar animated\n type=\"search\"\n *ngIf=\"hasSearch\"\n [class.cdk-visually-hidden]=\"!showSearchBar\"\n show-cancel-button=\"always\"\n (ionChange)=\"onSearch.emit($event)\"\n (ionCancel)=\"toggleSearchBar()\">\n </ion-searchbar>\n\n <!-- search button -->\n <ion-button (click)=\"toggleSearchBar()\"\n *ngIf=\"hasSearch && !showSearchBar\">\n <ion-icon slot=\"icon-only\" name=\"search\"></ion-icon>\n </ion-button>\n\n <!-- close button -->\n <ion-button *ngIf=\"hasClose\"\n (tap)=\"tapClose($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n\n <!-- validate button -->\n <ion-button *ngIf=\"hasValidate\"\n (tap)=\"tapValidate($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"save\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n\n <!-- progress bar -->\n <mat-progress-bar [color]=\"color\" [mode]=\"progressBarMode$ | async\">\n </mat-progress-bar>\n</ion-header>\n",
179
+ template: "<ion-header [class]=\"class\">\n <ion-toolbar [color]=\"color\">\n\n <ion-buttons slot=\"start\">\n\n <!-- back button -->\n <ion-button class=\"back-button\"\n *ngIf=\"canGoBack\"\n (click)=\"doBackClick($event)\"\n routerDirection=\"back\" >\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n\n <!-- show menu button -->\n <ion-button *ngIf=\"!canGoBack && canShowMenu\">\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n<!--\n <ion-menu-toggle [hidden]=\"canGoBack || !canShowMenu\">\n </ion-menu-toggle>\n-->\n\n <ng-content select=\"[slot=start]\"></ng-content>\n </ion-buttons>\n\n <ion-title [innerHTML]=\"title\"></ion-title>\n\n <ng-content select=\"ion-title\"></ng-content>\n\n <ng-content select=\"ion-buttons[slot=end]\"></ng-content>\n\n <ion-buttons slot=\"end\" collapse=\"true\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- search bar -->\n <ion-searchbar #searchbar animated\n type=\"search\"\n *ngIf=\"hasSearch\"\n [class.cdk-visually-hidden]=\"!showSearchBar\"\n show-cancel-button=\"always\"\n (ionChange)=\"onSearch.emit($event)\"\n (ionCancel)=\"toggleSearchBar()\">\n </ion-searchbar>\n\n <!-- search button -->\n <ion-button (click)=\"toggleSearchBar()\"\n *ngIf=\"hasSearch && !showSearchBar\">\n <ion-icon slot=\"icon-only\" name=\"search\"></ion-icon>\n </ion-button>\n\n <!-- close button -->\n <ion-button *ngIf=\"hasClose\"\n (tap)=\"tapClose($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n\n <!-- validate button -->\n <ion-button *ngIf=\"hasValidate\"\n (tap)=\"tapValidate($event)\"\n class=\"visible-xs visible-sm visible-mobile\">\n <ion-icon slot=\"icon-only\" name=\"save\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n\n <!-- progress bar -->\n <mat-progress-bar [color]=\"color\" [mode]=\"progressBarMode$ | async\">\n </mat-progress-bar>\n</ion-header>\n",
166
180
  providers: [
167
181
  { provide: ToolbarToken, useExisting: ToolbarComponent }
168
182
  ],
@@ -171,6 +185,7 @@ ToolbarComponent.decorators = [
171
185
  },] }
172
186
  ];
173
187
  ToolbarComponent.ctorParameters = () => [
188
+ { type: ActivatedRoute },
174
189
  { type: Router },
175
190
  { type: IonRouterOutlet },
176
191
  { type: ChangeDetectorRef },
@@ -194,4 +209,4 @@ ToolbarComponent.propDecorators = {
194
209
  onSearch: [{ type: Output }],
195
210
  searchbar: [{ type: ViewChild, args: ['searchbar', { static: true },] }]
196
211
  };
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0csUUFBUSxFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBZSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRzVELE1BQU0sT0FBZ0IsWUFBWTtDQUtqQztBQVdELE1BQU0sT0FBTyxnQkFBZ0I7SUF1RDNCLFlBQ1UsTUFBYyxFQUNkLFlBQTZCLEVBQzdCLEVBQXFCLEVBQ2pCLGtCQUFzQztRQUgxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBeER2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFJckIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixVQUFLLEdBQXFCLFNBQVMsQ0FBQztRQUc3QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBMEJGLGdCQUFXLEdB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ZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9ncmVzc0JhclNlcnZpY2UsIFByb2dyZXNzTW9kZX0gZnJvbSAnLi4vc2VydmljZXMvcHJvZ3Jlc3MtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvblJvdXRlck91dGxldCwgSW9uU2VhcmNoYmFyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge2lzTm90TmlsLCBpc05vdE5pbE9yQmxhbmssIHRvQm9vbGVhbn0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0hhbW1lclRhcEV2ZW50fSBmcm9tICcuLi9nZXN0dXJlL2hhbW1lci51dGlscyc7XG5pbXBvcnQge0hBTU1FUl9QUkVTU19USU1FfSBmcm9tICcuLi9nZXN0dXJlL2dlc3R1cmUtY29uZmlnJztcbmltcG9ydCB7UHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9vbGJhclRva2VuIHtcbiAgYWJzdHJhY3Qgb25CYWNrQ2xpY2s6IE9ic2VydmFibGU8RXZlbnQ+O1xuICBhYnN0cmFjdCBkb0JhY2tDbGljayhldmVudDogRXZlbnQpO1xuICBhYnN0cmFjdCBnb0JhY2soKTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgY2FuR29CYWNrOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAndG9vbGJhci5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbGJhci5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBUb29sYmFyVG9rZW4sIHVzZUV4aXN0aW5nOiBUb29sYmFyQ29tcG9uZW50fVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgVG9vbGJhclRva2VuLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY2xvc2VUYXBDb3VudCA9IDA7XG4gIHByaXZhdGUgX3ZhbGlkYXRlVGFwQ291bnQgPSAwO1xuICBwcml2YXRlIF9kZWZhdWx0QmFja0hyZWY6IHN0cmluZztcbiAgcHJpdmF0ZSBfYmFja0hyZWY6IHN0cmluZztcblxuICBASW5wdXQoKSB0aXRsZTogU3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgY29sb3I6IFByZWRlZmluZWRDb2xvcnMgPSAncHJpbWFyeSc7XG5cbiAgQElucHV0KClcbiAgY2xhc3MgPSAnJztcblxuICBASW5wdXQoKSBzZXQgYmFja0hyZWYodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fYmFja0hyZWYpIHtcbiAgICAgIHRoaXMuX2JhY2tIcmVmID0gdmFsdWU7XG4gICAgICB0aGlzLmNhbkdvQmFjayA9IHRoaXMuY2FuR29CYWNrIHx8IGlzTm90TmlsKHZhbHVlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGJhY2tIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2JhY2tIcmVmO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRlZmF1bHRCYWNrSHJlZih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9kZWZhdWx0QmFja0hyZWYpIHtcbiAgICAgIHRoaXMuX2RlZmF1bHRCYWNrSHJlZiA9IHZhbHVlO1xuICAgICAgdGhpcy5jYW5Hb0JhY2sgPSB0aGlzLmNhbkdvQmFjayB8fCBpc05vdE5pbCh2YWx1ZSk7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZWZhdWx0QmFja0hyZWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdEJhY2tIcmVmO1xuICB9XG5cbiAgQElucHV0KCkgaGFzVmFsaWRhdGUgPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzQ2xvc2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzU2VhcmNoOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5Hb0JhY2s6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhblNob3dNZW51ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgb25WYWxpZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uVmFsaWRhdGVBbmRDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkJhY2tDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+KCk7XG5cbiAgcHJvZ3Jlc3NCYXJNb2RlJDogT2JzZXJ2YWJsZTxQcm9ncmVzc01vZGU+O1xuICBzaG93U2VhcmNoQmFyID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoYmFyJywge3N0YXRpYzogdHJ1ZX0pIHNlYXJjaGJhcjogSW9uU2VhcmNoYmFyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZXJPdXRsZXQ6IElvblJvdXRlck91dGxldCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcm9ncmVzc0JhclNlcnZpY2U6IFByb2dyZXNzQmFyU2VydmljZVxuICApIHtcblxuICAgIC8vIExpc3RlbiBwcm9ncmVzcyBiYXIgc2VydmljZSBtb2RlXG4gICAgaWYgKHByb2dyZXNzQmFyU2VydmljZSkge1xuICAgICAgdGhpcy5wcm9ncmVzc0Jhck1vZGUkID0gcHJvZ3Jlc3NCYXJTZXJ2aWNlLm9uUHJvZ3Jlc3NDaGFuZ2VkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aDxQcm9ncmVzc01vZGUsIFByb2dyZXNzTW9kZT4oJ25vbmUnIGFzIFByb2dyZXNzTW9kZSksXG4gICAgICAgICAgdGFwKChtb2RlKSA9PiAnW3Rvb2xiYXJdIFVwZGF0aW5nIHByb2dyZXNzQmFyTW9kZTogJyArIG1vZGUpLFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLCAvLyB3YWl0IDEwMG1zLCB0byBncm91cCBjaGFuZ2VzXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFzVmFsaWRhdGUgPSB0b0Jvb2xlYW4odGhpcy5oYXNWYWxpZGF0ZSwgdGhpcy5vblZhbGlkYXRlLm9ic2VydmVycy5sZW5ndGggPiAwKTtcbiAgICB0aGlzLmNhbkdvQmFjayA9IHRvQm9vbGVhbih0aGlzLmNhbkdvQmFjaywgdGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKClcbiAgICAgIHx8IGlzTm90TmlsT3JCbGFuayh0aGlzLl9iYWNrSHJlZilcbiAgICAgIHx8IGlzTm90TmlsT3JCbGFuayh0aGlzLl9kZWZhdWx0QmFja0hyZWYpKTtcbiAgICB0aGlzLmhhc1NlYXJjaCA9IHRvQm9vbGVhbih0aGlzLmhhc1NlYXJjaCwgdGhpcy5vblNlYXJjaC5vYnNlcnZlcnMubGVuZ3RoID4gMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uQmFja0NsaWNrLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vbkJhY2tDbGljay51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25DbG9zZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25DbG9zZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vblZhbGlkYXRlQW5kQ2xvc2UudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uU2VhcmNoLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vblNlYXJjaC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYXN5bmMgdG9nZ2xlU2VhcmNoQmFyKCkge1xuICAgIHRoaXMuc2hvd1NlYXJjaEJhciA9ICF0aGlzLnNob3dTZWFyY2hCYXI7XG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEJhciAmJiB0aGlzLnNlYXJjaGJhcikge1xuICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VhcmNoYmFyLnNldEZvY3VzKCk7XG4gICAgICB9LCAzMDApO1xuICAgIH1cbiAgfVxuXG4gIGRvQmFja0NsaWNrKGV2ZW50OiBFdmVudCkge1xuXG4gICAgdGhpcy5vbkJhY2tDbGljay5lbWl0KGV2ZW50KTtcblxuICAgIC8vIFN0b3AgcHJvcGFnYXRpb24sIGlmIG5lZWQgKGNhbiBiZSBjYW5jZWxsZWQgYnkgb25CYWNrQ2xpY2sgb2JzZXJ2ZXJzKVxuICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBiYWNrIGFjdGlvblxuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICBhc3luYyBnb0JhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW3Rvb2xiYXJdIGNhbGxpbmcgZ29CYWNrKCknKTtcbiAgICBpZiAodGhpcy5fYmFja0hyZWYpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fYmFja0hyZWYpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLnJvdXRlck91dGxldC5jYW5Hb0JhY2soKSkge1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXJPdXRsZXQucG9wKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMuX2RlZmF1bHRCYWNrSHJlZikge1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9kZWZhdWx0QmFja0hyZWYsIHtcbiAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignW3Rvb2xiYXJdIENhbm5vdCBnbyBiYWNrLiBNaXNzaW5nIGF0dHJpYnV0ZSBcXCdkZWZhdWx0QmFja0hyZWZcXCcgb3IgXFwnYmFja0hyZWZcXCcnKTtcbiAgICB9XG4gIH1cblxuICB0YXBDbG9zZShldmVudDogSGFtbWVyVGFwRXZlbnQpIHtcbiAgICAvLyBERVYgb25seVxuICAgIC8vIGNvbnNvbGUuZGVidWcoXCJbdG9vbGJhcl0gdGFwQ2xvc2VcIiwgZXZlbnQudGFwQ291bnQpO1xuICAgIGlmICh0aGlzLl92YWxpZGF0ZVRhcENvdW50ID4gMCkgcmV0dXJuO1xuXG4gICAgLy8gRGlzdGluZ3Vpc2ggc2ltcGxlIGFuZCBkb3VibGUgdGFwXG4gICAgdGhpcy5fY2xvc2VUYXBDb3VudCA9IGV2ZW50LnRhcENvdW50O1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gRXZlbnQgaXMgb2Jzb2xldGUgKGEgbmV3IHRhcCBldmVudCBvY2N1cilcbiAgICAgIGlmIChldmVudC50YXBDb3VudCA8IHRoaXMuX2Nsb3NlVGFwQ291bnQpIHtcbiAgICAgICAgLy8gSWdub3JlIGV2ZW50XG4gICAgICB9XG5cbiAgICAgIC8vIElmIGV2ZW50IHN0aWxsIHRoZSBsYXN0IHRhcCBldmVudDogcHJvY2VzcyBpdFxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMub25DbG9zZS5lbWl0KGV2ZW50LnNyY0V2ZW50IHx8IGV2ZW50KTtcblxuICAgICAgICAvLyBSZXNldCB0YWIgY291bnRcbiAgICAgICAgdGhpcy5fY2xvc2VUYXBDb3VudCA9IDA7XG4gICAgICB9XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHRhcFZhbGlkYXRlKGV2ZW50OiBIYW1tZXJUYXBFdmVudCkge1xuICAgIC8vIERFViBvbmx5XG4gICAgLy9jb25zb2xlLmRlYnVnKFwiW3Rvb2xiYXJdIHRhcFZhbGlkYXRlXCIsIGV2ZW50LnRhcENvdW50KTtcblxuICAgIGlmICghdGhpcy5vblZhbGlkYXRlQW5kQ2xvc2Uub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5vblZhbGlkYXRlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIERpc3Rpbmd1aXNoIHNpbXBsZSBhbmQgZG91YmxlIHRhcFxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fdmFsaWRhdGVUYXBDb3VudCA9IGV2ZW50LnRhcENvdW50O1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIEV2ZW50IGlzIG9ic29sZXRlIChhIG5ldyB0YXAgZXZlbnQgb2NjdXIpXG4gICAgICAgIGlmIChldmVudC50YXBDb3VudCA8IHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQpIHtcbiAgICAgICAgICAvLyBJZ25vcmUgZXZlbnRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGV2ZW50IHN0aWxsIHRoZSBsYXN0IHRhcCBldmVudDogcHJvY2VzcyBpdFxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdGVUYXBDb3VudCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5vblZhbGlkYXRlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmICh0aGlzLl92YWxpZGF0ZVRhcENvdW50ID49IDIpIHtcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlc2V0IHRhYiBjb3VudFxuICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQgPSAwO1xuICAgICAgICB9XG4gICAgICB9LCBIQU1NRVJfUFJFU1NfVElNRSsxMCk7XG4gICAgfVxuICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rvb2xiYXIvdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0csUUFBUSxFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBZSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUc1RCxNQUFNLE9BQWdCLFlBQVk7Q0FLakM7QUFXRCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUQzQixZQUNVLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxZQUE2QixFQUM3QixFQUFxQixFQUNqQixrQkFBc0M7UUFKMUMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpEdkIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBSXJCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsVUFBSyxHQUFxQixT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QUVELGtCQUFrQjtvQkFDbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztpQkFDNUI7WUFDSCxDQUFDLEVBQUUsaUJBQWlCLEdBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7WUFuTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qiw2MkVBQTJCO2dCQUUzQixTQUFTLEVBQUU7b0JBQ1QsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQztpQkFDdkQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUF4Qk8sY0FBYztZQUFFLE1BQU07WUFDdEIsZUFBZTtZQVZyQixpQkFBaUI7WUFRWCxrQkFBa0IsdUJBc0ZyQixRQUFROzs7b0JBckRWLEtBQUs7b0JBRUwsS0FBSztvQkFFTCxLQUFLO3VCQUdMLEtBQUs7OEJBWUwsS0FBSzswQkFZTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBRUwsTUFBTTtzQkFDTixNQUFNO2lDQUNOLE1BQU07MEJBQ04sTUFBTTt1QkFDTixNQUFNO3dCQUtOLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2dyZXNzQmFyU2VydmljZSwgUHJvZ3Jlc3NNb2RlfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvblJvdXRlck91dGxldCwgSW9uU2VhcmNoYmFyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge2lzTm90TmlsLCBpc05vdE5pbE9yQmxhbmssIHRvQm9vbGVhbn0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0hhbW1lclRhcEV2ZW50fSBmcm9tICcuLi9nZXN0dXJlL2hhbW1lci51dGlscyc7XG5pbXBvcnQge0hBTU1FUl9QUkVTU19USU1FfSBmcm9tICcuLi9nZXN0dXJlL2dlc3R1cmUtY29uZmlnJztcbmltcG9ydCB7UHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9vbGJhclRva2VuIHtcbiAgYWJzdHJhY3Qgb25CYWNrQ2xpY2s6IE9ic2VydmFibGU8RXZlbnQ+O1xuICBhYnN0cmFjdCBkb0JhY2tDbGljayhldmVudDogRXZlbnQpO1xuICBhYnN0cmFjdCBnb0JhY2soKTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgY2FuR29CYWNrOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAndG9vbGJhci5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbGJhci5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBUb29sYmFyVG9rZW4sIHVzZUV4aXN0aW5nOiBUb29sYmFyQ29tcG9uZW50fVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgVG9vbGJhclRva2VuLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY2xvc2VUYXBDb3VudCA9IDA7XG4gIHByaXZhdGUgX3ZhbGlkYXRlVGFwQ291bnQgPSAwO1xuICBwcml2YXRlIF9kZWZhdWx0QmFja0hyZWY6IHN0cmluZztcbiAgcHJpdmF0ZSBfYmFja0hyZWY6IHN0cmluZztcblxuICBASW5wdXQoKSB0aXRsZTogU3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgY29sb3I6IFByZWRlZmluZWRDb2xvcnMgPSAncHJpbWFyeSc7XG5cbiAgQElucHV0KClcbiAgY2xhc3MgPSAnJztcblxuICBASW5wdXQoKSBzZXQgYmFja0hyZWYodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fYmFja0hyZWYpIHtcbiAgICAgIHRoaXMuX2JhY2tIcmVmID0gdmFsdWU7XG4gICAgICB0aGlzLmNhbkdvQmFjayA9IHRoaXMuY2FuR29CYWNrIHx8IGlzTm90TmlsKHZhbHVlKTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGJhY2tIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2JhY2tIcmVmO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRlZmF1bHRCYWNrSHJlZih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9kZWZhdWx0QmFja0hyZWYpIHtcbiAgICAgIHRoaXMuX2RlZmF1bHRCYWNrSHJlZiA9IHZhbHVlO1xuICAgICAgdGhpcy5jYW5Hb0JhY2sgPSB0aGlzLmNhbkdvQmFjayB8fCBpc05vdE5pbCh2YWx1ZSk7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZWZhdWx0QmFja0hyZWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdEJhY2tIcmVmO1xuICB9XG5cbiAgQElucHV0KCkgaGFzVmFsaWRhdGUgPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzQ2xvc2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzU2VhcmNoOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5Hb0JhY2s6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhblNob3dNZW51ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgb25WYWxpZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uVmFsaWRhdGVBbmRDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkJhY2tDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+KCk7XG5cbiAgcHJvZ3Jlc3NCYXJNb2RlJDogT2JzZXJ2YWJsZTxQcm9ncmVzc01vZGU+O1xuICBzaG93U2VhcmNoQmFyID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoYmFyJywge3N0YXRpYzogdHJ1ZX0pIHNlYXJjaGJhcjogSW9uU2VhcmNoYmFyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZXJPdXRsZXQ6IElvblJvdXRlck91dGxldCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcm9ncmVzc0JhclNlcnZpY2U6IFByb2dyZXNzQmFyU2VydmljZVxuICApIHtcblxuICAgIC8vIExpc3RlbiBwcm9ncmVzcyBiYXIgc2VydmljZSBtb2RlXG4gICAgaWYgKHByb2dyZXNzQmFyU2VydmljZSkge1xuICAgICAgdGhpcy5wcm9ncmVzc0Jhck1vZGUkID0gcHJvZ3Jlc3NCYXJTZXJ2aWNlLm9uUHJvZ3Jlc3NDaGFuZ2VkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aDxQcm9ncmVzc01vZGUsIFByb2dyZXNzTW9kZT4oJ25vbmUnIGFzIFByb2dyZXNzTW9kZSksXG4gICAgICAgICAgdGFwKChtb2RlKSA9PiAnW3Rvb2xiYXJdIFVwZGF0aW5nIHByb2dyZXNzQmFyTW9kZTogJyArIG1vZGUpLFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLCAvLyB3YWl0IDEwMG1zLCB0byBncm91cCBjaGFuZ2VzXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFzVmFsaWRhdGUgPSB0b0Jvb2xlYW4odGhpcy5oYXNWYWxpZGF0ZSwgdGhpcy5vblZhbGlkYXRlLm9ic2VydmVycy5sZW5ndGggPiAwKTtcbiAgICB0aGlzLmNhbkdvQmFjayA9IHRvQm9vbGVhbih0aGlzLmNhbkdvQmFjaywgdGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKClcbiAgICAgIHx8IGlzTm90TmlsT3JCbGFuayh0aGlzLl9iYWNrSHJlZilcbiAgICAgIHx8IGlzTm90TmlsT3JCbGFuayh0aGlzLl9kZWZhdWx0QmFja0hyZWYpKTtcbiAgICB0aGlzLmhhc1NlYXJjaCA9IHRvQm9vbGVhbih0aGlzLmhhc1NlYXJjaCwgdGhpcy5vblNlYXJjaC5vYnNlcnZlcnMubGVuZ3RoID4gMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uQmFja0NsaWNrLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vbkJhY2tDbGljay51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25DbG9zZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMub25DbG9zZS51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25WYWxpZGF0ZUFuZENsb3NlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vblZhbGlkYXRlQW5kQ2xvc2UudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uU2VhcmNoLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5vblNlYXJjaC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYXN5bmMgdG9nZ2xlU2VhcmNoQmFyKCkge1xuICAgIHRoaXMuc2hvd1NlYXJjaEJhciA9ICF0aGlzLnNob3dTZWFyY2hCYXI7XG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEJhciAmJiB0aGlzLnNlYXJjaGJhcikge1xuICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VhcmNoYmFyLnNldEZvY3VzKCk7XG4gICAgICB9LCAzMDApO1xuICAgIH1cbiAgfVxuXG4gIGRvQmFja0NsaWNrKGV2ZW50OiBFdmVudCkge1xuXG4gICAgdGhpcy5vbkJhY2tDbGljay5lbWl0KGV2ZW50KTtcblxuICAgIC8vIFN0b3AgcHJvcGFnYXRpb24sIGlmIG5lZWQgKGNhbiBiZSBjYW5jZWxsZWQgYnkgb25CYWNrQ2xpY2sgb2JzZXJ2ZXJzKVxuICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBiYWNrIGFjdGlvblxuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICBhc3luYyBnb0JhY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW3Rvb2xiYXJdIGNhbGxpbmcgZ29CYWNrKCknKTtcbiAgICBpZiAodGhpcy5fYmFja0hyZWYpIHtcbiAgICAgIGNvbnN0IHJlcGxhY2VVcmwgPSAhdGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKCk7XG4gICAgICAvLyBSZWxhdGl2ZSBocmVmXG4gICAgICBpZiAodGhpcy5fYmFja0hyZWYuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLl9iYWNrSHJlZl0sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCByZXBsYWNlVXJsfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9iYWNrSHJlZiwge3JlcGxhY2VVcmx9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5yb3V0ZXJPdXRsZXQuY2FuR29CYWNrKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyT3V0bGV0LnBvcCgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLl9kZWZhdWx0QmFja0hyZWYpIHtcbiAgICAgIC8vIFJlbGF0aXZlIGhyZWZcbiAgICAgIGlmICh0aGlzLl9iYWNrSHJlZi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuX2JhY2tIcmVmXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGUsIHJlcGxhY2VVcmw6IHRydWV9KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuX2RlZmF1bHRCYWNrSHJlZiwge1xuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbdG9vbGJhcl0gQ2Fubm90IGdvIGJhY2suIE1pc3NpbmcgYXR0cmlidXRlIFxcJ2RlZmF1bHRCYWNrSHJlZlxcJyBvciBcXCdiYWNrSHJlZlxcJycpO1xuICAgIH1cbiAgfVxuXG4gIHRhcENsb3NlKGV2ZW50OiBIYW1tZXJUYXBFdmVudCkge1xuICAgIC8vIERFViBvbmx5XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhcIlt0b29sYmFyXSB0YXBDbG9zZVwiLCBldmVudC50YXBDb3VudCk7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQgPiAwKSByZXR1cm47XG5cbiAgICAvLyBEaXN0aW5ndWlzaCBzaW1wbGUgYW5kIGRvdWJsZSB0YXBcbiAgICB0aGlzLl9jbG9zZVRhcENvdW50ID0gZXZlbnQudGFwQ291bnQ7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBFdmVudCBpcyBvYnNvbGV0ZSAoYSBuZXcgdGFwIGV2ZW50IG9jY3VyKVxuICAgICAgaWYgKGV2ZW50LnRhcENvdW50IDwgdGhpcy5fY2xvc2VUYXBDb3VudCkge1xuICAgICAgICAvLyBJZ25vcmUgZXZlbnRcbiAgICAgIH1cblxuICAgICAgLy8gSWYgZXZlbnQgc3RpbGwgdGhlIGxhc3QgdGFwIGV2ZW50OiBwcm9jZXNzIGl0XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoZXZlbnQuc3JjRXZlbnQgfHwgZXZlbnQpO1xuXG4gICAgICAgIC8vIFJlc2V0IHRhYiBjb3VudFxuICAgICAgICB0aGlzLl9jbG9zZVRhcENvdW50ID0gMDtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG5cbiAgdGFwVmFsaWRhdGUoZXZlbnQ6IEhhbW1lclRhcEV2ZW50KSB7XG4gICAgLy8gREVWIG9ubHlcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJbdG9vbGJhcl0gdGFwVmFsaWRhdGVcIiwgZXZlbnQudGFwQ291bnQpO1xuXG4gICAgaWYgKCF0aGlzLm9uVmFsaWRhdGVBbmRDbG9zZS5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9uVmFsaWRhdGUuZW1pdChldmVudC5zcmNFdmVudCB8fCBldmVudCk7XG4gICAgfVxuXG4gICAgLy8gRGlzdGluZ3Vpc2ggc2ltcGxlIGFuZCBkb3VibGUgdGFwXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZVRhcENvdW50ID0gZXZlbnQudGFwQ291bnQ7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gRXZlbnQgaXMgb2Jzb2xldGUgKGEgbmV3IHRhcCBldmVudCBvY2N1cilcbiAgICAgICAgaWYgKGV2ZW50LnRhcENvdW50IDwgdGhpcy5fdmFsaWRhdGVUYXBDb3VudCkge1xuICAgICAgICAgIC8vIElnbm9yZSBldmVudFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXZlbnQgc3RpbGwgdGhlIGxhc3QgdGFwIGV2ZW50OiBwcm9jZXNzIGl0XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0ZVRhcENvdW50ID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsaWRhdGUuZW1pdChldmVudC5zcmNFdmVudCB8fCBldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3ZhbGlkYXRlVGFwQ291bnQgPj0gMikge1xuICAgICAgICAgICAgdGhpcy5vblZhbGlkYXRlQW5kQ2xvc2UuZW1pdChldmVudC5zcmNFdmVudCB8fCBldmVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUmVzZXQgdGFiIGNvdW50XG4gICAgICAgICAgdGhpcy5fdmFsaWRhdGVUYXBDb3VudCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH0sIEhBTU1FUl9QUkVTU19USU1FKzEwKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -2,18 +2,19 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public_api';
5
- export { AppIconComponent as ɵi } from './src/app/core/icon/icon.component';
5
+ export { AppIconComponent as ɵj } from './src/app/core/icon/icon.component';
6
+ export { AppUpdateOfflineModeCard as ɵi } from './src/app/core/offline/update-offline-mode-card.component';
6
7
  export { RegisterForm as ɵd } from './src/app/core/register/form/form-register';
7
8
  export { RegisterModal as ɵf } from './src/app/core/register/modal/modal-register';
8
9
  export { AccountValidatorService as ɵe } from './src/app/core/services/validator/account.validator';
9
10
  export { LocalSettingsValidatorService as ɵh } from './src/app/core/services/validator/local-settings.validator';
10
11
  export { UserSettingsValidatorService as ɵg } from './src/app/core/services/validator/user-settings.validator';
11
12
  export { isFocusableElement as ɵc } from './src/app/shared/focusable';
12
- export { MatBadgeIconTestPage as ɵl } from './src/app/shared/material/badge/badge-icon.test';
13
- export { DateTestPage as ɵj } from './src/app/shared/material/datetime/testing/mat-date.test';
13
+ export { MatBadgeIconTestPage as ɵm } from './src/app/shared/material/badge/badge-icon.test';
14
+ export { DateTestPage as ɵk } from './src/app/shared/material/datetime/testing/mat-date.test';
14
15
  export { MatNumpadDomService as ɵb } from './src/app/shared/material/numpad/numpad.dom-service';
15
- export { NumpadTestPage as ɵk } from './src/app/shared/material/numpad/testing/numpad.test';
16
+ export { NumpadTestPage as ɵl } from './src/app/shared/material/numpad/testing/numpad.test';
16
17
  export { CustomReuseStrategy as ɵa } from './src/app/shared/shared-routing.module';
17
- export { ToastTestingPage as ɵn } from './src/app/shared/toast/toast.testing';
18
- export { ToastTestingModule as ɵm } from './src/app/shared/toast/toast.testing.module';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtYXJpcy1uZXQubmd4LWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zdW1hcmlzLW5ldC5uZ3gtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRyxPQUFPLEVBQUMsNEJBQTRCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0csT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0FwcEljb25Db21wb25lbnQgYXMgybVpfSBmcm9tICcuL3NyYy9hcHAvY29yZS9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCB7UmVnaXN0ZXJGb3JtIGFzIMm1ZH0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvcmVnaXN0ZXIvZm9ybS9mb3JtLXJlZ2lzdGVyJztcbmV4cG9ydCB7UmVnaXN0ZXJNb2RhbCBhcyDJtWZ9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL21vZGFsL21vZGFsLXJlZ2lzdGVyJztcbmV4cG9ydCB7QWNjb3VudFZhbGlkYXRvclNlcnZpY2UgYXMgybVlfSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvYWNjb3VudC52YWxpZGF0b3InO1xuZXhwb3J0IHtMb2NhbFNldHRpbmdzVmFsaWRhdG9yU2VydmljZSBhcyDJtWh9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3ZhbGlkYXRvci9sb2NhbC1zZXR0aW5ncy52YWxpZGF0b3InO1xuZXhwb3J0IHtVc2VyU2V0dGluZ3NWYWxpZGF0b3JTZXJ2aWNlIGFzIMm1Z30gZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL3VzZXItc2V0dGluZ3MudmFsaWRhdG9yJztcbmV4cG9ydCB7aXNGb2N1c2FibGVFbGVtZW50IGFzIMm1Y30gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9mb2N1c2FibGUnO1xuZXhwb3J0IHtNYXRCYWRnZUljb25UZXN0UGFnZSBhcyDJtWx9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvYmFkZ2UvYmFkZ2UtaWNvbi50ZXN0JztcbmV4cG9ydCB7RGF0ZVRlc3RQYWdlIGFzIMm1an0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9kYXRldGltZS90ZXN0aW5nL21hdC1kYXRlLnRlc3QnO1xuZXhwb3J0IHtNYXROdW1wYWREb21TZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvbnVtcGFkLmRvbS1zZXJ2aWNlJztcbmV4cG9ydCB7TnVtcGFkVGVzdFBhZ2UgYXMgybVrfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL251bXBhZC90ZXN0aW5nL251bXBhZC50ZXN0JztcbmV4cG9ydCB7Q3VzdG9tUmV1c2VTdHJhdGVneSBhcyDJtWF9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlJztcbmV4cG9ydCB7VG9hc3RUZXN0aW5nUGFnZSBhcyDJtW59IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3QudGVzdGluZyc7XG5leHBvcnQge1RvYXN0VGVzdGluZ01vZHVsZSBhcyDJtW19IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3QudGVzdGluZy5tb2R1bGUnOyJdfQ==
18
+ export { ToastTestingPage as ɵo } from './src/app/shared/toast/toast.testing';
19
+ export { ToastTestingModule as ɵn } from './src/app/shared/toast/toast.testing.module';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtYXJpcy1uZXQubmd4LWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zdW1hcmlzLW5ldC5uZ3gtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDL0csT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtBcHBJY29uQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQge0FwcFVwZGF0ZU9mZmxpbmVNb2RlQ2FyZCBhcyDJtWl9IGZyb20gJy4vc3JjL2FwcC9jb3JlL29mZmxpbmUvdXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQge1JlZ2lzdGVyRm9ybSBhcyDJtWR9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3JlZ2lzdGVyL2Zvcm0vZm9ybS1yZWdpc3Rlcic7XG5leHBvcnQge1JlZ2lzdGVyTW9kYWwgYXMgybVmfSBmcm9tICcuL3NyYy9hcHAvY29yZS9yZWdpc3Rlci9tb2RhbC9tb2RhbC1yZWdpc3Rlcic7XG5leHBvcnQge0FjY291bnRWYWxpZGF0b3JTZXJ2aWNlIGFzIMm1ZX0gZnJvbSAnLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2FjY291bnQudmFsaWRhdG9yJztcbmV4cG9ydCB7TG9jYWxTZXR0aW5nc1ZhbGlkYXRvclNlcnZpY2UgYXMgybVofSBmcm9tICcuL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvbG9jYWwtc2V0dGluZ3MudmFsaWRhdG9yJztcbmV4cG9ydCB7VXNlclNldHRpbmdzVmFsaWRhdG9yU2VydmljZSBhcyDJtWd9IGZyb20gJy4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3ZhbGlkYXRvci91c2VyLXNldHRpbmdzLnZhbGlkYXRvcic7XG5leHBvcnQge2lzRm9jdXNhYmxlRWxlbWVudCBhcyDJtWN9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvZm9jdXNhYmxlJztcbmV4cG9ydCB7TWF0QmFkZ2VJY29uVGVzdFBhZ2UgYXMgybVtfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL21hdGVyaWFsL2JhZGdlL2JhZGdlLWljb24udGVzdCc7XG5leHBvcnQge0RhdGVUZXN0UGFnZSBhcyDJtWt9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZGF0ZXRpbWUvdGVzdGluZy9tYXQtZGF0ZS50ZXN0JztcbmV4cG9ydCB7TWF0TnVtcGFkRG9tU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvbnVtcGFkL251bXBhZC5kb20tc2VydmljZSc7XG5leHBvcnQge051bXBhZFRlc3RQYWdlIGFzIMm1bH0gZnJvbSAnLi9zcmMvYXBwL3NoYXJlZC9tYXRlcmlhbC9udW1wYWQvdGVzdGluZy9udW1wYWQudGVzdCc7XG5leHBvcnQge0N1c3RvbVJldXNlU3RyYXRlZ3kgYXMgybVhfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQge1RvYXN0VGVzdGluZ1BhZ2UgYXMgybVvfSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcnO1xuZXhwb3J0IHtUb2FzdFRlc3RpbmdNb2R1bGUgYXMgybVufSBmcm9tICcuL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcubW9kdWxlJzsiXX0=