@dsivd/prestations-ng 17.10.3 → 17.10.4

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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## [17.10.4]
10
+
11
+ ### Fixed
12
+
13
+ - [foehn-user-connected-as.component.ts](projects/prestations-ng/src/foehn-user-connected-as/foehn-user-connected-as.component.ts)
14
+ - [gesdem-confirmation.component.ts](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.ts)
15
+ - add/fix translations
16
+
9
17
  ## [17.10.3]
10
18
 
11
19
  ### Fixed
Binary file
@@ -3,6 +3,7 @@ import { filter, map } from 'rxjs/operators';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../sdk-session-info/session-info.service";
5
5
  import * as i2 from "@angular/common";
6
+ import * as i3 from "../sdk-dictionary/sdk-dictionary.pipe";
6
7
  export class FoehnUserConnectedAsComponent {
7
8
  constructor(sessionInfo) {
8
9
  this.sessionInfo = sessionInfo;
@@ -11,10 +12,10 @@ export class FoehnUserConnectedAsComponent {
11
12
  this.connectedAs = this.sessionInfo.data.pipe(filter(userInfo => !!userInfo), map((userInfo) => userInfo.espaceLabel));
12
13
  }
13
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsComponent, deps: [{ token: i1.SessionInfo }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as", ngImport: i0, template: "<!-- prettier-ignore -->\n<p\n *ngIf=\"(connectedAs | async) as userConnectedAs\"\n class=\"h2\"\n>\n La demande sera effectu\u00E9e pour <em>&laquo;{{ userConnectedAs }}&raquo;</em>\n</p>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnUserConnectedAsComponent, selector: "foehn-user-connected-as", ngImport: i0, template: "<!-- prettier-ignore -->\n<p\n *ngIf=\"(connectedAs | async) as userConnectedAs\"\n class=\"h2\"\n>\n {{'foehn-user-connected-as.label' | fromDictionary }} <em>&laquo;{{ userConnectedAs }}&raquo;</em>\n</p>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] }); }
15
16
  }
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsComponent, decorators: [{
17
18
  type: Component,
18
- args: [{ selector: 'foehn-user-connected-as', template: "<!-- prettier-ignore -->\n<p\n *ngIf=\"(connectedAs | async) as userConnectedAs\"\n class=\"h2\"\n>\n La demande sera effectu\u00E9e pour <em>&laquo;{{ userConnectedAs }}&raquo;</em>\n</p>\n" }]
19
+ args: [{ selector: 'foehn-user-connected-as', template: "<!-- prettier-ignore -->\n<p\n *ngIf=\"(connectedAs | async) as userConnectedAs\"\n class=\"h2\"\n>\n {{'foehn-user-connected-as.label' | fromDictionary }} <em>&laquo;{{ userConnectedAs }}&raquo;</em>\n</p>\n" }]
19
20
  }], ctorParameters: () => [{ type: i1.SessionInfo }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdXNlci1jb25uZWN0ZWQtYXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcy9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTN0MsTUFBTSxPQUFPLDZCQUE2QjtJQUd0QyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN6QyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQzlCLEdBQUcsQ0FBQyxDQUFDLFFBQXlCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FDM0QsQ0FBQztJQUNOLENBQUM7K0dBVlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsK0RDWDFDLHlNQU9BOzs0RkRJYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm9EYXRhIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8tZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tdXNlci1jb25uZWN0ZWQtYXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Vc2VyQ29ubmVjdGVkQXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbm5lY3RlZEFzOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbykge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbm5lY3RlZEFzID0gdGhpcy5zZXNzaW9uSW5mby5kYXRhLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodXNlckluZm8gPT4gISF1c2VySW5mbyksXG4gICAgICAgICAgICBtYXAoKHVzZXJJbmZvOiBTZXNzaW9uSW5mb0RhdGEpID0+IHVzZXJJbmZvLmVzcGFjZUxhYmVsKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjwhLS0gcHJldHRpZXItaWdub3JlIC0tPlxuPHBcbiAgICAqbmdJZj1cIihjb25uZWN0ZWRBcyB8IGFzeW5jKSBhcyB1c2VyQ29ubmVjdGVkQXNcIlxuICAgIGNsYXNzPVwiaDJcIlxuPlxuICAgIExhIGRlbWFuZGUgc2VyYSBlZmZlY3R1w6llIHBvdXIgPGVtPiZsYXF1bzt7eyB1c2VyQ29ubmVjdGVkQXMgfX0mcmFxdW87PC9lbT5cbjwvcD5cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdXNlci1jb25uZWN0ZWQtYXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcy9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzdDLE1BQU0sT0FBTyw2QkFBNkI7SUFHdEMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDekMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUM5QixHQUFHLENBQUMsQ0FBQyxRQUF5QixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQzNELENBQUM7SUFDTixDQUFDOytHQVZRLDZCQUE2QjttR0FBN0IsNkJBQTZCLCtEQ1gxQywyTkFPQTs7NEZESWEsNkJBQTZCO2tCQUp6QyxTQUFTOytCQUNJLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tdXNlci1jb25uZWN0ZWQtYXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVXNlckNvbm5lY3RlZEFzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25uZWN0ZWRBczogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8pIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRBcyA9IHRoaXMuc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKHVzZXJJbmZvID0+ICEhdXNlckluZm8pLFxuICAgICAgICAgICAgbWFwKCh1c2VySW5mbzogU2Vzc2lvbkluZm9EYXRhKSA9PiB1c2VySW5mby5lc3BhY2VMYWJlbClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8IS0tIHByZXR0aWVyLWlnbm9yZSAtLT5cbjxwXG4gICAgKm5nSWY9XCIoY29ubmVjdGVkQXMgfCBhc3luYykgYXMgdXNlckNvbm5lY3RlZEFzXCJcbiAgICBjbGFzcz1cImgyXCJcbj5cbiAgICB7eydmb2Vobi11c2VyLWNvbm5lY3RlZC1hcy5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeSB9fSA8ZW0+JmxhcXVvO3t7IHVzZXJDb25uZWN0ZWRBcyB9fSZyYXF1bzs8L2VtPlxuPC9wPlxuIl19
@@ -1,18 +1,19 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
+ import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
3
4
  import { FoehnUserConnectedAsComponent } from './foehn-user-connected-as.component';
4
5
  import * as i0 from "@angular/core";
5
6
  export class FoehnUserConnectedAsModule {
6
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, declarations: [FoehnUserConnectedAsComponent], imports: [CommonModule], exports: [FoehnUserConnectedAsComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, imports: [CommonModule] }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, declarations: [FoehnUserConnectedAsComponent], imports: [CommonModule, SdkDictionaryModule], exports: [FoehnUserConnectedAsComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, imports: [CommonModule, SdkDictionaryModule] }); }
9
10
  }
10
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnUserConnectedAsModule, decorators: [{
11
12
  type: NgModule,
12
13
  args: [{
13
- imports: [CommonModule],
14
+ imports: [CommonModule, SdkDictionaryModule],
14
15
  declarations: [FoehnUserConnectedAsComponent],
15
16
  exports: [FoehnUserConnectedAsComponent]
16
17
  }]
17
18
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdXNlci1jb25uZWN0ZWQtYXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPcEYsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsaUJBSHBCLDZCQUE2QixhQURsQyxZQUFZLGFBRVosNkJBQTZCO2dIQUU5QiwwQkFBMEIsWUFKekIsWUFBWTs7NEZBSWIsMEJBQTBCO2tCQUx0QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2VoblVzZXJDb25uZWN0ZWRBc0NvbXBvbmVudCB9IGZyb20gJy4vZm9laG4tdXNlci1jb25uZWN0ZWQtYXMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtGb2VoblVzZXJDb25uZWN0ZWRBc0NvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0ZvZWhuVXNlckNvbm5lY3RlZEFzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2VoblVzZXJDb25uZWN0ZWRBc01vZHVsZSB7fVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tdXNlci1jb25uZWN0ZWQtYXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPcEYsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO2dIQUExQiwwQkFBMEIsaUJBSHBCLDZCQUE2QixhQURsQyxZQUFZLEVBQUUsbUJBQW1CLGFBRWpDLDZCQUE2QjtnSEFFOUIsMEJBQTBCLFlBSnpCLFlBQVksRUFBRSxtQkFBbUI7OzRGQUlsQywwQkFBMEI7a0JBTHRDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUM1QyxZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNka0RpY3Rpb25hcnlNb2R1bGUgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5Vc2VyQ29ubmVjdGVkQXNDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2RrRGljdGlvbmFyeU1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbRm9laG5Vc2VyQ29ubmVjdGVkQXNDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtGb2VoblVzZXJDb25uZWN0ZWRBc0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Vc2VyQ29ubmVjdGVkQXNNb2R1bGUge31cbiJdfQ==
@@ -33,8 +33,8 @@ export class GesdemConfirmationComponent {
33
33
  this.showLinkToMyDemandes = true;
34
34
  this.demandeIsClosedOnTransmit = false;
35
35
  this.actionStatut = ActionStatut.TRANSFERRED;
36
- this.connectedConfirmationMessage = 'Vous avez effectué la première étape de votre démarche avec succès !';
37
- this.connectedConfirmationMessageIfAbandoned = "La demande à laquelle vous essayez d'accéder a été abandonnée.";
36
+ this.connectedConfirmationMessage = 'gesdem-confirmation.connectedConfirmationMessage';
37
+ this.connectedConfirmationMessageIfAbandoned = 'gesdem-confirmation.connectedConfirmationMessageIfAbandoned';
38
38
  this.baseUrlPdf = 'api/document/pdf/';
39
39
  this.hideReference = false;
40
40
  this.hideFeedbackNotificationOverride = false;
@@ -198,11 +198,11 @@ export class GesdemConfirmationComponent {
198
198
  window.scrollTo(0, 0);
199
199
  }
200
200
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemConfirmationComponent, deps: [{ token: i1.GesdemHandlerService }, { token: i2.FoehnPageService }, { token: i3.ActivatedRoute }, { token: i4.SdkDictionaryService }, { token: i5.Location }], target: i0.ɵɵFactoryTarget.Component }); }
201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", closeHrefConnected: "closeHrefConnected", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", closeButtonConnectedText: "closeButtonConnectedText", baseUrlPdf: "baseUrlPdf", hideReference: "hideReference", hideFeedbackNotificationOverride: "hideFeedbackNotificationOverride" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.FoehnFeedbackNotificationComponent, selector: "foehn-feedback-notification" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", closeHrefConnected: "closeHrefConnected", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", closeButtonConnectedText: "closeButtonConnectedText", baseUrlPdf: "baseUrlPdf", hideReference: "hideReference", hideFeedbackNotificationOverride: "hideFeedbackNotificationOverride" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.FoehnFeedbackNotificationComponent, selector: "foehn-feedback-notification" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] }); }
202
202
  }
203
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemConfirmationComponent, decorators: [{
204
204
  type: Component,
205
- args: [{ selector: 'gesdem-confirmation', template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n" }]
205
+ args: [{ selector: 'gesdem-confirmation', template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl *ngIf=\"!hideReference\">\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight highlight-dark\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span\n class=\"visually-hidden\"\n [innerHTML]=\"\n 'gesdem-confirmation.transmission-information.label'\n | fromDictionary\n \"\n ></span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n (isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n ) | fromDictionary\n \"\n ></p>\n <p\n id=\"linkToTreatedDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n {{\n 'gesdem-confirmation.demand-detail-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n <p\n id=\"linkToInProgressDemandes\"\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n {{\n 'gesdem-confirmation.demand-processing-progress-link.label'\n | fromDictionary\n }}\n <a\n href=\"/100002/demandes/{{ reference }}\"\n [attr.aria-label]=\"\n 'gesdem-demand-detail'\n | fromDictionary: { reference: reference }\n \"\n [innerHTML]=\"reference\"\n ></a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ms-0 me-md-auto me-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n (click)=\"logPdfDownloadedEvent()\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'gesdem.download-pdf.button.title' | fromDictionary\n \"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !(isConnectedCyber | async) && closeLinkNotConnected\n | async as link\n \"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"me-0 ms-md-auto mb-2 mt-2\"\n *ngIf=\"\n !!(isConnectedCyber | async) && closeLinkConnected\n | async as link\n \"\n >\n <a\n [href]=\"link\"\n id=\"terminerConnectedBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ closeButtonConnectedText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"!hideReference && reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p\n class=\"h2\"\n [innerHTML]=\"\n 'gesdem-confirmation.demand-in-progress.title' | fromDictionary\n \"\n ></p>\n <dl>\n <dt class=\"fw-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight highlight-dark\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n {{\n 'gesdem-confirmation.resume-my-demand.label'\n | fromDictionary\n }}\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">\n {{\n 'gesdem-confirmation.resume-my-demand.button'\n | fromDictionary\n }}\n </a>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<foehn-feedback-notification\n *ngIf=\"!hideFeedbackNotificationOverride\"\n [id]=\"'feedbackNotification'\"\n></foehn-feedback-notification>\n" }]
206
206
  }], ctorParameters: () => [{ type: i1.GesdemHandlerService }, { type: i2.FoehnPageService }, { type: i3.ActivatedRoute }, { type: i4.SdkDictionaryService }, { type: i5.Location }], propDecorators: { reference: [{
207
207
  type: Input
208
208
  }], setPageTitle: [{
@@ -238,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
238
238
  }], hideFeedbackNotificationOverride: [{
239
239
  type: Input
240
240
  }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQUVwRCxNQUFNLGdCQUFnQixH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LGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBclNRLDJCQUEyQjttR0FBM0IsMkJBQTJCLHMxQkNsQ3hDLDRyTkFvTUE7OzRGRGxLYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBRUkscUJBQXFCOytNQU8vQixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTiw0QkFBNEI7c0JBRDNCLEtBQUs7Z0JBS04sdUNBQXVDO3NCQUR0QyxLQUFLO2dCQUtOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZ0NBQWdDO3NCQUQvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblN0YXR1dCwgR2VzZGVtU3RhdHV0VXRpbHMgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLXN0YXR1dC11dGlscyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtFdmVudFR5cGUgfSBmcm9tICcuLi9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuXG5jb25zdCBpc0Jvb2xlYW5EZWZpbmVkID0gKHZhbHVlOiBib29sZWFuKTogYm9vbGVhbiA9PlxuICAgIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1jb25maXJtYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1Db25maXJtYXRpb25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKVxuICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzZXRQYWdlVGl0bGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBoYXNFbWFpbFNlbnQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VIcmVmOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlSHJlZkNvbm5lY3RlZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dMaW5rVG9NeURlbWFuZGVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25TdGF0dXQgPSBBY3Rpb25TdGF0dXQuVFJBTlNGRVJSRUQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAnVm91cyBhdmV6IGVmZmVjdHXDqSBsYSBwcmVtacOocmUgw6l0YXBlIGRlIHZvdHJlIGTDqW1hcmNoZSBhdmVjIHN1Y2PDqHMgISc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZCA9XG4gICAgICAgIFwiTGEgZGVtYW5kZSDDoCBsYXF1ZWxsZSB2b3VzIGVzc2F5ZXogZCdhY2PDqWRlciBhIMOpdMOpIGFiYW5kb25uw6llLlwiO1xuXG4gICAgQElucHV0KClcbiAgICBkb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VCdXR0b25Db25uZWN0ZWRUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGJhc2VVcmxQZGYgPSAnYXBpL2RvY3VtZW50L3BkZi8nO1xuXG4gICAgQElucHV0KClcbiAgICBoaWRlUmVmZXJlbmNlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGhpZGVGZWVkYmFja05vdGlmaWNhdGlvbk92ZXJyaWRlID0gZmFsc2U7XG5cbiAgICBpc0Nvbm5lY3RlZEN5YmVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZpcnN0UGFnZUxpbmsgPSAnLyc7XG4gICAgdXJsUGRmOiBzdHJpbmc7XG4gICAgY2xvc2VMaW5rTm90Q29ubmVjdGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gICAgY2xvc2VMaW5rQ29ubmVjdGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gICAgcHJvdGVjdGVkIF9icmVhZGNydW1iRXZlbnRTZXJ2aWNlOiBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX3Nlc3Npb25JbmZvOiBTZXNzaW9uSW5mbztcbiAgICBwcm90ZWN0ZWQgX25hdmlnYXRpb246IEZvZWhuTmF2aWdhdGlvblNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9ldmVudHNMb2dnZXJTZXJ2aWNlOiBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZTtcblxuICAgIHByaXZhdGUgZGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGFnZVRpdGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGxvY2F0aW9uOiBMb2NhdGlvblxuICAgICkge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iRXZlbnRTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgQnJlYWRjcnVtYkV2ZW50U2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuUGFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9zZXNzaW9uSW5mbyA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChTZXNzaW9uSW5mbyk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoRm9laG5OYXZpZ2F0aW9uU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0xvZ2dlclNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uSW5mb1NlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgcm91dGUgPSBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmdldFJvb3RSb3V0ZVJlY3Vyc2l2ZShcbiAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uaW5pdFJvdXRlKHJvdXRlKTtcblxuICAgICAgICAvLyBPdmVycmlkZSBmcm9tIHRoZSByb3V0aW5nLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMuZGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoXG4gICAgICAgICAgICByb3V0ZURhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzRW1haWxTZW50ID0gcm91dGVEYXRhLmhhc0VtYWlsU2VudCB8fCB0aGlzLmhhc0VtYWlsU2VudDtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VIcmVmIHx8IHRoaXMuY2xvc2VMaW5rTm90Q29ubmVjdGVkLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rQ29ubmVjdGVkLm5leHQoXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jbG9zZUhyZWZDb25uZWN0ZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rQ29ubmVjdGVkLmdldFZhbHVlKClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZCA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLnNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLnNob3dMaW5rVG9NeURlbWFuZGVzKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dMaW5rVG9NeURlbWFuZGVzID0gcm91dGVEYXRhLnNob3dMaW5rVG9NeURlbWFuZGVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNCb29sZWFuRGVmaW5lZChyb3V0ZURhdGEuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5kZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNCb29sZWFuRGVmaW5lZChyb3V0ZURhdGEuaGlkZVJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlUmVmZXJlbmNlID0gcm91dGVEYXRhLmhpZGVSZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kb3dubG9hZC1wZGYtcmVjYXAtYnV0dG9uJztcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VVcmxQZGYgPSByb3V0ZURhdGEuYmFzZVVybFBkZiB8fCB0aGlzLmJhc2VVcmxQZGY7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvblRleHQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJztcblxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25Db25uZWN0ZWRUZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbi1jb25uZWN0ZWQnO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlRmVlZGJhY2tOb3RpZmljYXRpb25PdmVycmlkZSA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5oaWRlRmVlZGJhY2tOb3RpZmljYXRpb25PdmVycmlkZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVGZWVkYmFja05vdGlmaWNhdGlvbk92ZXJyaWRlO1xuXG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBjbG9zZUxpbmsgaWYgbm90IGJ5IEBJbnB1dCBhbmQgbm90IGJ5IHJvdXRlIGRhdGFcblxuICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2Uub25FdGFwZUlkQ2hhbmdlKCkucGlwZShmaXJzdCgpKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25JbmZvU2VydmljZS5kYXRhLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKFtldGFwZUlkLCBhcHBJbmZvXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQuZ2V0VmFsdWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7YXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmx9L2dvLnRvP3ByZXN0YXRpb249JHtldGFwZUlkfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rQ29ubmVjdGVkLm5leHQoJy8xMDAwMTgvbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlLHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZSxyeGpzL25vLW5lc3RlZC1zdWJzY3JpYmVcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc1RyYW5zZmVycmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgJiYgdGhpcy5hY3Rpb25TdGF0dXQgPT09IEFjdGlvblN0YXR1dC5UUkFOU0ZFUlJFRFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc0FiYW5kb25lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ICYmIHRoaXMuYWN0aW9uU3RhdHV0ID09PSBBY3Rpb25TdGF0dXQuQUJBTkRPTkVEXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFHZXNkZW1TdGF0dXRVdGlscy5pc0ZpbmFsKHRoaXMuYWN0aW9uU3RhdHV0KTtcbiAgICB9XG5cbiAgICBnZXQgc3VjY2Vzc0xhYmVsRGljb0tleSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpc0ZpcnN0QWN0aW9uID1cbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U/Lm1ldGE/LmN1cnJlbnRBY3Rpb24gPT09IDE7XG4gICAgICAgIHJldHVybiBpc0ZpcnN0QWN0aW9uXG4gICAgICAgICAgICA/ICdnZXNkZW0tY29uZmlybWF0aW9uLnN1Y2Nlc3MtbGFiZWwnXG4gICAgICAgICAgICA6ICdnZXNkZW0tY29uZmlybWF0aW9uLm5leHQtc3RlcC5zdWNjZXNzLWxhYmVsJztcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZU5vdENvbm5lY3RlZDogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5jbG9zZUhyZWY7XG4gICAgICAgIGlmIChjaGFuZ2VOb3RDb25uZWN0ZWQgJiYgY2hhbmdlTm90Q29ubmVjdGVkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChjaGFuZ2VOb3RDb25uZWN0ZWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoYW5nZUNvbm5lY3RlZDogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5jbG9zZUhyZWZDb25uZWN0ZWQ7XG4gICAgICAgIGlmIChjaGFuZ2VDb25uZWN0ZWQgJiYgY2hhbmdlQ29ubmVjdGVkLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtDb25uZWN0ZWQubmV4dChjaGFuZ2VDb25uZWN0ZWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdvdFRvVG9wKCk7XG4gICAgICAgIGNvbnN0IGxhc3RSZXNwb25zZSA9IHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U7XG4gICAgICAgIGlmIChsYXN0UmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlID0gbGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgPVxuICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1dFtsYXN0UmVzcG9uc2UubWV0YS5zdGF0dXQgYXMgQWN0aW9uU3RhdHV0XTtcbiAgICAgICAgICAgIHRoaXMudXJsUGRmID0gdGhpcy5iYXNlVXJsUGRmICsgdGhpcy5yZWZlcmVuY2U7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50QWN0aW9uID0gbGFzdFJlc3BvbnNlLm1ldGEuY3VycmVudEFjdGlvbjtcbiAgICAgICAgICAgIGlmICghIWN1cnJlbnRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybFBkZiArPSBgLSR7Y3VycmVudEFjdGlvbn1gO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2F0aW9uLnBhdGgoKS5pbmNsdWRlcyhgLyR7dGhpcy5yZWZlcmVuY2V9L2ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxSZWZlcmVuY2VVcmwgPSB0aGlzLmxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAucGF0aCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLnJlZmVyZW5jZX0tJHtjdXJyZW50QWN0aW9ufWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGZ1bGxSZWZlcmVuY2VVcmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb2RlID0gbGFzdFJlc3BvbnNlLmZvcm0ubGFuZ3VhZ2U7XG4gICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlQ29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGV0aGVyIHRoZSB1c2VyIGhhcyBhIGNvbnRleHQgd2UgY29uc2lkZXIgaXQgYXMgY29ubmVjdGVkLlxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXIgPSB0aGlzLl9zZXNzaW9uSW5mby5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlckluZm8gPT4gISF1c2VySW5mbyAmJiAhIXVzZXJJbmZvLmNvbnRleHQpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2V0UGFnZVRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0S2V5KCdnZXNkZW0tY29uZmlybWF0aW9uLnRpdGxlJylcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0aXRsZSA9PiB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZSh0aXRsZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJzdFBhZ2VMaW5rID0gdGhpcy5nZXRGaXJzdFBhZ2VMaW5rKCk7XG5cbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZS5za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPVxuICAgICAgICAgICAgdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzQ29ubmVjdGVkQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzQ29uZk1lc3NhZ2UgPVxuICAgICAgICAgICAgdGhpcy5pc1RyYW5zZmVycmVkICYmICEhdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlO1xuICAgICAgICBjb25zdCBoYXNBYmFuZG9uZWRDb25mTWVzc2FnZSA9XG4gICAgICAgICAgICAhdGhpcy5pc1RyYW5zZmVycmVkICYmXG4gICAgICAgICAgICAhIXRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBoYXNDb25mTWVzc2FnZSB8fFxuICAgICAgICAgICAgaGFzQWJhbmRvbmVkQ29uZk1lc3NhZ2UgfHxcbiAgICAgICAgICAgICEhdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGxvZ1BkZkRvd25sb2FkZWRFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChTZGtFdmVudFR5cGUuUERGX1JFQ0FQX0RPV05MT0FEKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0UGFnZUxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGxpbmsgPSAnLyc7XG4gICAgICAgIGNvbnN0IGZpcnN0UGFnZSA9IHRoaXMuX25hdmlnYXRpb24uZ2V0Rmlyc3RSb3V0ZSgpO1xuICAgICAgICBpZiAodGhpcy5nZXNkZW1TZXJ2aWNlLnByZWZpeCkge1xuICAgICAgICAgICAgbGluayArPSBgJHt0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4fS9gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2xpbmsgKyB0aGlzLnJlZmVyZW5jZX0vJHtmaXJzdFBhZ2UucGF0aH1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ290VG9Ub3AoKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiAqbmdJZj1cInJlZmVyZW5jZSAmJiAhaXNJblByb2dyZXNzXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFsZXJ0IHRleHQtY2VudGVyIG1iLTJcIlxuICAgICAgICBbbmdDbGFzc109XCJpc1RyYW5zZmVycmVkID8gJ2FsZXJ0LXN1Y2Nlc3MnIDogJ2FsZXJ0LWRhbmdlcidcIlxuICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJoMlwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBpc1RyYW5zZmVycmVkXG4gICAgICAgICAgICAgICAgICAgID8gKHN1Y2Nlc3NMYWJlbERpY29LZXkgfCBmcm9tRGljdGlvbmFyeSlcbiAgICAgICAgICAgICAgICAgICAgOiAoJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkbCAqbmdJZj1cIiFoaWRlUmVmZXJlbmNlXCI+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmdy1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZVwiIGNsYXNzPVwiaDQgZC1ibG9jayBtdC0zXCI+e3sgcmVmZXJlbmNlIH19PC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICAgICAgPHAgKm5nSWY9XCJoYXNFbWFpbFNlbnQgJiYgIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCI+XG4gICAgICAgICAgICB7eyAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5tYWlsLXNlbnQubGFiZWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW5cbiAgICAgICAgW2lubmVySFRNTF09XCInZ2VzZGVtLWNvbmZpcm1hdGlvbi5leHRyYS1jb250ZW50JyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICA+PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC1tZC0xMiB2ZC1oaWdobGlnaHQgaGlnaGxpZ2h0LWRhcmtcIlxuICAgICAgICAqbmdJZj1cIihpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpICYmIGhhc0Nvbm5lY3RlZENvbnRlbnQoKVwiXG4gICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50cmFuc21pc3Npb24taW5mb3JtYXRpb24ubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWluZm8tY2lyY2xlIGNsYXNzPVwiaDNcIj48L2ZvZWhuLWljb24taW5mby1jaXJjbGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTFcIj5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFuc2ZlcnJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICBpZD1cImxpbmtUb1RyZWF0ZWREZW1hbmRlc1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93TGlua1RvTXlEZW1hbmRlcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgfHwgaXNBYmFuZG9uZWQpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLWRldGFpbC1saW5rLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3t7IHJlZmVyZW5jZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tZGVtYW5kLWRldGFpbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeTogeyByZWZlcmVuY2U6IHJlZmVyZW5jZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJyZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICAuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibGlua1RvSW5Qcm9ncmVzc0RlbWFuZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMaW5rVG9NeURlbWFuZGVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWlzQWJhbmRvbmVkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLXByb2Nlc3NpbmctcHJvZ3Jlc3MtbGluay5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy97eyByZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWRlbWFuZC1kZXRhaWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgcmVmZXJlbmNlOiByZWZlcmVuY2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbGlzdC11bnN0eWxlZCBkLW1kLWZsZXggcC0wIG10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTAgbWUtbWQtYXV0byBtZS1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJ1cmxQZGZcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJsb2dQZGZEb3dubG9hZGVkRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0ZWxlY2hhcmdlckJ0blwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS5kb3dubG9hZC1wZGYuYnV0dG9uLnRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWUtMCBtcy1tZC1hdXRvIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKSAmJiBjbG9zZUxpbmtOb3RDb25uZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgfCBhc3luYyBhcyBsaW5rXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJsaW5rXCIgaWQ9XCJ0ZXJtaW5lckJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCI+XG4gICAgICAgICAgICAgICAge3sgY2xvc2VCdXR0b25UZXh0IHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtZS0wIG1zLW1kLWF1dG8gbWItMiBtdC0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgISEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKSAmJiBjbG9zZUxpbmtDb25uZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgfCBhc3luYyBhcyBsaW5rXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtcIlxuICAgICAgICAgICAgICAgIGlkPVwidGVybWluZXJDb25uZWN0ZWRCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiAqbmdJZj1cIiFoaWRlUmVmZXJlbmNlICYmIHJlZmVyZW5jZSAmJiBpc0luUHJvZ3Jlc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mbyB0ZXh0LWNlbnRlciBtYi0yXCI+XG4gICAgICAgIDxwXG4gICAgICAgICAgICBjbGFzcz1cImgyXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZGVtYW5kLWluLXByb2dyZXNzLnRpdGxlJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9wPlxuICAgICAgICA8ZGw+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmdy1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZUVuQ291cnNcIiBjbGFzcz1cImg0IGQtYmxvY2sgbXQtM1wiPlxuICAgICAgICAgICAgICAgIHt7IHJlZmVyZW5jZSB9fVxuICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0IGhpZ2hsaWdodC1kYXJrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWluZm8tY2lyY2xlIGNsYXNzPVwiaDNcIj48L2ZvZWhuLWljb24taW5mby1jaXJjbGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTFcIj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlc3VtZS1teS1kZW1hbmQubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiZmlyc3RQYWdlTGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZXN1bWUtbXktZGVtYW5kLmJ1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48Zm9laG4tZmVlZGJhY2stbm90aWZpY2F0aW9uXG4gICAgKm5nSWY9XCIhaGlkZUZlZWRiYWNrTm90aWZpY2F0aW9uT3ZlcnJpZGVcIlxuICAgIFtpZF09XCInZmVlZGJhY2tOb3RpZmljYXRpb24nXCJcbj48L2ZvZWhuLWZlZWRiYWNrLW5vdGlmaWNhdGlvbj5cbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQUVwRCxNQUFNLGdCQUFnQixH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LGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBclNRLDJCQUEyQjttR0FBM0IsMkJBQTJCLHMxQkNsQ3hDLHl1TkFxTUE7OzRGRG5LYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBRUkscUJBQXFCOytNQU8vQixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTiw0QkFBNEI7c0JBRDNCLEtBQUs7Z0JBS04sdUNBQXVDO3NCQUR0QyxLQUFLO2dCQUtOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZ0NBQWdDO3NCQUQvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblN0YXR1dCwgR2VzZGVtU3RhdHV0VXRpbHMgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLXN0YXR1dC11dGlscyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtFdmVudFR5cGUgfSBmcm9tICcuLi9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuXG5jb25zdCBpc0Jvb2xlYW5EZWZpbmVkID0gKHZhbHVlOiBib29sZWFuKTogYm9vbGVhbiA9PlxuICAgIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1jb25maXJtYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1Db25maXJtYXRpb25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgICBASW5wdXQoKVxuICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzZXRQYWdlVGl0bGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBoYXNFbWFpbFNlbnQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VIcmVmOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlSHJlZkNvbm5lY3RlZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dMaW5rVG9NeURlbWFuZGVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25TdGF0dXQgPSBBY3Rpb25TdGF0dXQuVFJBTlNGRVJSRUQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlJztcblxuICAgIEBJbnB1dCgpXG4gICAgY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkID1cbiAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkJztcblxuICAgIEBJbnB1dCgpXG4gICAgZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VCdXR0b25UZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBiYXNlVXJsUGRmID0gJ2FwaS9kb2N1bWVudC9wZGYvJztcblxuICAgIEBJbnB1dCgpXG4gICAgaGlkZVJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBoaWRlRmVlZGJhY2tOb3RpZmljYXRpb25PdmVycmlkZSA9IGZhbHNlO1xuXG4gICAgaXNDb25uZWN0ZWRDeWJlcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBmaXJzdFBhZ2VMaW5rID0gJy8nO1xuICAgIHVybFBkZjogc3RyaW5nO1xuICAgIGNsb3NlTGlua05vdENvbm5lY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAgIGNsb3NlTGlua0Nvbm5lY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAgIHByb3RlY3RlZCBfYnJlYWRjcnVtYkV2ZW50U2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2ZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uSW5mbzogU2Vzc2lvbkluZm87XG4gICAgcHJvdGVjdGVkIF9uYXZpZ2F0aW9uOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZXZlbnRzTG9nZ2VyU2VydmljZTogU2RrRXZlbnRzTG9nZ2VyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2FwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2U7XG5cbiAgICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBsb2NhdGlvbjogTG9jYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIEJyZWFkY3J1bWJFdmVudFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2VoblBhZ2VTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbkluZm8gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoU2Vzc2lvbkluZm8pO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9ldmVudHNMb2dnZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU2RrRXZlbnRzTG9nZ2VyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkluZm9TZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlID0gRm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRSb290Um91dGVSZWN1cnNpdmUoXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmluaXRSb3V0ZShyb3V0ZSk7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgZnJvbSB0aGUgcm91dGluZy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcm91dGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0VtYWlsU2VudCA9IHJvdXRlRGF0YS5oYXNFbWFpbFNlbnQgfHwgdGhpcy5oYXNFbWFpbFNlbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlSHJlZiB8fCB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VIcmVmQ29ubmVjdGVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlcyA9IHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmhpZGVSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVJlZmVyZW5jZSA9IHJvdXRlRGF0YS5oaWRlUmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsUGRmID0gcm91dGVEYXRhLmJhc2VVcmxQZGYgfHwgdGhpcy5iYXNlVXJsUGRmO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXhpdC1idXR0b24tY29ubmVjdGVkJztcblxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZUZlZWRiYWNrTm90aWZpY2F0aW9uT3ZlcnJpZGUgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuaGlkZUZlZWRiYWNrTm90aWZpY2F0aW9uT3ZlcnJpZGUgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlRmVlZGJhY2tOb3RpZmljYXRpb25PdmVycmlkZTtcblxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY2xvc2VMaW5rIGlmIG5vdCBieSBASW5wdXQgYW5kIG5vdCBieSByb3V0ZSBkYXRhXG5cbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLm9uRXRhcGVJZENoYW5nZSgpLnBpcGUoZmlyc3QoKSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChbZXRhcGVJZCwgYXBwSW5mb10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VMaW5rTm90Q29ubmVjdGVkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsfS9nby50bz9wcmVzdGF0aW9uPSR7ZXRhcGVJZH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jbG9zZUxpbmtDb25uZWN0ZWQuZ2V0VmFsdWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KCcvMTAwMDE4L2xvZ291dCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tbmVzdGVkLXN1YnNjcmliZSxyeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGUscnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNUcmFuc2ZlcnJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ICYmIHRoaXMuYWN0aW9uU3RhdHV0ID09PSBBY3Rpb25TdGF0dXQuVFJBTlNGRVJSRURcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNBYmFuZG9uZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCAmJiB0aGlzLmFjdGlvblN0YXR1dCA9PT0gQWN0aW9uU3RhdHV0LkFCQU5ET05FRFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhR2VzZGVtU3RhdHV0VXRpbHMuaXNGaW5hbCh0aGlzLmFjdGlvblN0YXR1dCk7XG4gICAgfVxuXG4gICAgZ2V0IHN1Y2Nlc3NMYWJlbERpY29LZXkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaXNGaXJzdEFjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5jdXJyZW50QWN0aW9uID09PSAxO1xuICAgICAgICByZXR1cm4gaXNGaXJzdEFjdGlvblxuICAgICAgICAgICAgPyAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5zdWNjZXNzLWxhYmVsJ1xuICAgICAgICAgICAgOiAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5uZXh0LXN0ZXAuc3VjY2Vzcy1sYWJlbCc7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaGFuZ2VOb3RDb25uZWN0ZWQ6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuY2xvc2VIcmVmO1xuICAgICAgICBpZiAoY2hhbmdlTm90Q29ubmVjdGVkICYmIGNoYW5nZU5vdENvbm5lY3RlZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rTm90Q29ubmVjdGVkLm5leHQoY2hhbmdlTm90Q29ubmVjdGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2VDb25uZWN0ZWQ6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuY2xvc2VIcmVmQ29ubmVjdGVkO1xuICAgICAgICBpZiAoY2hhbmdlQ29ubmVjdGVkICYmIGNoYW5nZUNvbm5lY3RlZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rQ29ubmVjdGVkLm5leHQoY2hhbmdlQ29ubmVjdGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nb3RUb1RvcCgpO1xuICAgICAgICBjb25zdCBsYXN0UmVzcG9uc2UgPSB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlO1xuICAgICAgICBpZiAobGFzdFJlc3BvbnNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IGxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ID1cbiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXRbbGFzdFJlc3BvbnNlLm1ldGEuc3RhdHV0IGFzIEFjdGlvblN0YXR1dF07XG4gICAgICAgICAgICB0aGlzLnVybFBkZiA9IHRoaXMuYmFzZVVybFBkZiArIHRoaXMucmVmZXJlbmNlO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEFjdGlvbiA9IGxhc3RSZXNwb25zZS5tZXRhLmN1cnJlbnRBY3Rpb247XG4gICAgICAgICAgICBpZiAoISFjdXJyZW50QWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cmxQZGYgKz0gYC0ke2N1cnJlbnRBY3Rpb259YDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhdGlvbi5wYXRoKCkuaW5jbHVkZXMoYC8ke3RoaXMucmVmZXJlbmNlfS9gKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmdWxsUmVmZXJlbmNlVXJsID0gdGhpcy5sb2NhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLnBhdGgoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5yZWZlcmVuY2V9LSR7Y3VycmVudEFjdGlvbn1gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShmdWxsUmVmZXJlbmNlVXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9IGxhc3RSZXNwb25zZS5mb3JtLmxhbmd1YWdlO1xuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZUNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hldGhlciB0aGUgdXNlciBoYXMgYSBjb250ZXh0IHdlIGNvbnNpZGVyIGl0IGFzIGNvbm5lY3RlZC5cbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyID0gdGhpcy5fc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJJbmZvID0+ICEhdXNlckluZm8gJiYgISF1c2VySW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnNldFBhZ2VUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEtleSgnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZScpXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGl0bGUgPT4gdGhpcy5fZm9laG5QYWdlU2VydmljZS5zZXRQYWdlVGl0bGUodGl0bGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlyc3RQYWdlTGluayA9IHRoaXMuZ2V0Rmlyc3RQYWdlTGluaygpO1xuXG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJFdmVudFNlcnZpY2Uuc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID1cbiAgICAgICAgICAgIHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc0Nvbm5lY3RlZENvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGhhc0NvbmZNZXNzYWdlID1cbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2ZlcnJlZCAmJiAhIXRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZTtcbiAgICAgICAgY29uc3QgaGFzQWJhbmRvbmVkQ29uZk1lc3NhZ2UgPVxuICAgICAgICAgICAgIXRoaXMuaXNUcmFuc2ZlcnJlZCAmJlxuICAgICAgICAgICAgISF0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaGFzQ29uZk1lc3NhZ2UgfHxcbiAgICAgICAgICAgIGhhc0FiYW5kb25lZENvbmZNZXNzYWdlIHx8XG4gICAgICAgICAgICAhIXRoaXMuc2hvd0xpbmtUb015RGVtYW5kZXNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2dQZGZEb3dubG9hZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V2ZW50c0xvZ2dlclNlcnZpY2UuYWRkRXZlbnQoU2RrRXZlbnRUeXBlLlBERl9SRUNBUF9ET1dOTE9BRCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdFBhZ2VMaW5rKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBsaW5rID0gJy8nO1xuICAgICAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLl9uYXZpZ2F0aW9uLmdldEZpcnN0Um91dGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXgpIHtcbiAgICAgICAgICAgIGxpbmsgKz0gYCR7dGhpcy5nZXNkZW1TZXJ2aWNlLnByZWZpeH0vYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtsaW5rICsgdGhpcy5yZWZlcmVuY2V9LyR7Zmlyc3RQYWdlLnBhdGh9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvdFRvVG9wKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCJyZWZlcmVuY2UgJiYgIWlzSW5Qcm9ncmVzc1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhbGVydCB0ZXh0LWNlbnRlciBtYi0yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNUcmFuc2ZlcnJlZCA/ICdhbGVydC1zdWNjZXNzJyA6ICdhbGVydC1kYW5nZXInXCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgaXNUcmFuc2ZlcnJlZFxuICAgICAgICAgICAgICAgICAgICA/IChzdWNjZXNzTGFiZWxEaWNvS2V5IHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICAgICAgICAgIDogKCdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGwgKm5nSWY9XCIhaGlkZVJlZmVyZW5jZVwiPlxuICAgICAgICAgICAgPGR0IGNsYXNzPVwiZnctbGlnaHRcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZWZlcmVuY2UtdGl0bGUubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kdD5cbiAgICAgICAgICAgIDxkZCBpZD1cIm51bURlbWFuZGVcIiBjbGFzcz1cImg0IGQtYmxvY2sgbXQtM1wiPnt7IHJlZmVyZW5jZSB9fTwvZGQ+XG4gICAgICAgIDwvZGw+XG4gICAgICAgIDxwICpuZ0lmPVwiaGFzRW1haWxTZW50ICYmICEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiPlxuICAgICAgICAgICAge3sgJ2dlc2RlbS1jb25maXJtYXRpb24ubWFpbC1zZW50LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxzcGFuXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgPjwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0IGhpZ2hsaWdodC1kYXJrXCJcbiAgICAgICAgKm5nSWY9XCIoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKSAmJiBoYXNDb25uZWN0ZWRDb250ZW50KClcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24udHJhbnNtaXNzaW9uLWluZm9ybWF0aW9uLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1pbmZvLWNpcmNsZSBjbGFzcz1cImgzXCI+PC9mb2Vobi1pY29uLWluZm8tY2lyY2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc1RyYW5zZmVycmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICkgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsaW5rVG9UcmVhdGVkRGVtYW5kZXNcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmtUb015RGVtYW5kZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0IHx8IGlzQWJhbmRvbmVkKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1kZXRhaWwtbGluay5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy97eyByZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWRlbWFuZC1kZXRhaWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgcmVmZXJlbmNlOiByZWZlcmVuY2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICBpZD1cImxpbmtUb0luUHJvZ3Jlc3NEZW1hbmRlc1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93TGlua1RvTXlEZW1hbmRlcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFpc0FiYW5kb25lZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1wcm9jZXNzaW5nLXByb2dyZXNzLWxpbmsubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi8xMDAwMDIvZGVtYW5kZXMve3sgcmVmZXJlbmNlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1kZW1hbmQtZGV0YWlsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IHJlZmVyZW5jZTogcmVmZXJlbmNlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGxpc3QtdW5zdHlsZWQgZC1tZC1mbGV4IHAtMCBtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcy0wIG1lLW1kLWF1dG8gbWUtbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsUGRmXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nUGRmRG93bmxvYWRlZEV2ZW50KClcIlxuICAgICAgICAgICAgICAgIGlkPVwidGVsZWNoYXJnZXJCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgdy0xMDBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0uZG93bmxvYWQtcGRmLmJ1dHRvbi50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1lLTAgbXMtbWQtYXV0byBtYi0yIG10LTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgJiYgY2xvc2VMaW5rTm90Q29ubmVjdGVkXG4gICAgICAgICAgICAgICAgICAgIHwgYXN5bmMgYXMgbGlua1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua1wiIGlkPVwidGVybWluZXJCdG5cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiPlxuICAgICAgICAgICAgICAgIHt7IGNsb3NlQnV0dG9uVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWUtMCBtcy1tZC1hdXRvIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICEhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgJiYgY2xvc2VMaW5rQ29ubmVjdGVkXG4gICAgICAgICAgICAgICAgICAgIHwgYXN5bmMgYXMgbGlua1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rXCJcbiAgICAgICAgICAgICAgICBpZD1cInRlcm1pbmVyQ29ubmVjdGVkQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2xvc2VCdXR0b25Db25uZWN0ZWRUZXh0IHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCIhaGlkZVJlZmVyZW5jZSAmJiByZWZlcmVuY2UgJiYgaXNJblByb2dyZXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gdGV4dC1jZW50ZXIgbWItMlwiPlxuICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJoMlwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1pbi1wcm9ncmVzcy50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvcD5cbiAgICAgICAgPGRsPlxuICAgICAgICAgICAgPGR0IGNsYXNzPVwiZnctbGlnaHRcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZWZlcmVuY2UtdGl0bGUubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kdD5cbiAgICAgICAgICAgIDxkZCBpZD1cIm51bURlbWFuZGVFbkNvdXJzXCIgY2xhc3M9XCJoNCBkLWJsb2NrIG10LTNcIj5cbiAgICAgICAgICAgICAgICB7eyByZWZlcmVuY2UgfX1cbiAgICAgICAgICAgIDwvZGQ+XG4gICAgICAgIDwvZGw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHZkLWhpZ2hsaWdodCBoaWdobGlnaHQtZGFya1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1pbmZvLWNpcmNsZSBjbGFzcz1cImgzXCI+PC9mb2Vobi1pY29uLWluZm8tY2lyY2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZXN1bWUtbXktZGVtYW5kLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImZpcnN0UGFnZUxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVzdW1lLW15LWRlbWFuZC5idXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGZvZWhuLWZlZWRiYWNrLW5vdGlmaWNhdGlvblxuICAgICpuZ0lmPVwiIWhpZGVGZWVkYmFja05vdGlmaWNhdGlvbk92ZXJyaWRlXCJcbiAgICBbaWRdPVwiJ2ZlZWRiYWNrTm90aWZpY2F0aW9uJ1wiXG4+PC9mb2Vobi1mZWVkYmFjay1ub3RpZmljYXRpb24+XG4iXX0=