@tilde-nlp/ngx-common 4.1.30 → 4.1.32

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.
@@ -13,13 +13,13 @@ export class ConfirmationModalComponent {
13
13
  this.confirmation = Confirmation;
14
14
  }
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationModalComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationModalComponent, selector: "lib-confirmation-modal", ngImport: i0, template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<div class=\"d-flex justify-content-center\" mat-dialog-actions>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"ml-3\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmationModalComponent, selector: "lib-confirmation-modal", ngImport: i0, template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button color=\"accent\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n</mat-dialog-actions>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmationModalComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: 'lib-confirmation-modal', template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<div class=\"d-flex justify-content-center\" mat-dialog-actions>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n <button mat-stroked-button color=\"accent\" class=\"ml-3\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n</div>\r\n" }]
20
+ args: [{ selector: 'lib-confirmation-modal', template: "<h1 mat-dialog-title>{{ data.title | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ data.descriptioon | translate }}</p>\r\n \r\n <ul *ngIf=\"data.details\">\r\n <li *ngFor=\"let extraData of data.details\">\r\n {{ extraData }}\r\n </li>\r\n </ul>\r\n</div>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button color=\"accent\" [mat-dialog-close]=\"confirmation.SECONDARY\">\r\n {{ data.rejectionText | translate }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" [mat-dialog-close]=\"confirmation.PRIMARY\">\r\n {{ data.confirmationText | translate }}\r\n </button>\r\n</mat-dialog-actions>\r\n" }]
21
21
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
22
22
  type: Inject,
23
23
  args: [MAT_DIALOG_DATA]
24
24
  }] }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFPMUQsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNTLFNBQW1ELEVBQzFCLElBQXNCO1FBRC9DLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSnhELGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBTTVCLENBQUM7K0dBUFUsMEJBQTBCLDhDQUszQixlQUFlO21HQUxkLDBCQUEwQiw4RENWdkMsZ3JCQWtCQTs7NEZEUmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3Qjs7MEJBUy9CLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQm9keSB9IGZyb20gJy4vbW9kZWxzL2NvbmZpcm1hdGlvbi1ib2R5Lm1vZGVsJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvY29uZmlybWF0aW9uLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlybWF0aW9uLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IHtcclxuICBjb25maXJtYXRpb24gPSBDb25maXJtYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29uZmlybWF0aW9uQm9keVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyBkYXRhLnRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgZGF0YS5kZXNjcmlwdGlvb24gfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgXHJcbiAgPHVsICpuZ0lmPVwiZGF0YS5kZXRhaWxzXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGV4dHJhRGF0YSBvZiBkYXRhLmRldGFpbHNcIj5cclxuICAgICAge3sgZXh0cmFEYXRhIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjb25maXJtYXRpb24uUFJJTUFSWVwiPlxyXG4gICAge3sgZGF0YS5jb25maXJtYXRpb25UZXh0IHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cIm1sLTNcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjb25maXJtYXRpb24uU0VDT05EQVJZXCI+XHJcbiAgICB7eyBkYXRhLnJlamVjdGlvblRleHQgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9jb25maXJtYXRpb24tbW9kYWwvY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFPMUQsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNTLFNBQW1ELEVBQzFCLElBQXNCO1FBRC9DLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSnhELGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBTTVCLENBQUM7K0dBUFUsMEJBQTBCLDhDQUszQixlQUFlO21HQUxkLDBCQUEwQiw4RENWdkMsa3BCQWtCQTs7NEZEUmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3Qjs7MEJBUy9CLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQm9keSB9IGZyb20gJy4vbW9kZWxzL2NvbmZpcm1hdGlvbi1ib2R5Lm1vZGVsJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvY29uZmlybWF0aW9uLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlybWF0aW9uLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IHtcclxuICBjb25maXJtYXRpb24gPSBDb25maXJtYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29uZmlybWF0aW9uQm9keVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyBkYXRhLnRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgZGF0YS5kZXNjcmlwdGlvb24gfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgXHJcbiAgPHVsICpuZ0lmPVwiZGF0YS5kZXRhaWxzXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGV4dHJhRGF0YSBvZiBkYXRhLmRldGFpbHNcIj5cclxuICAgICAge3sgZXh0cmFEYXRhIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvZGl2PlxyXG48bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XHJcbiAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJjb25maXJtYXRpb24uU0VDT05EQVJZXCI+XHJcbiAgICB7eyBkYXRhLnJlamVjdGlvblRleHQgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cImNvbmZpcm1hdGlvbi5QUklNQVJZXCI+XHJcbiAgICB7eyBkYXRhLmNvbmZpcm1hdGlvblRleHQgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
@@ -20,7 +20,7 @@ export class CreateSummaryComponent {
20
20
  return this.llmHelperService.getDefaultErrorMessage();
21
21
  }
22
22
  get showMissingQuotaMessage() {
23
- return !this.summaryQuotaLeft && !this.missingQuotaMessageClosed;
23
+ return !this.summaryQuotaLeft && !this.missingQuotaMessageClosed && this.isQuotaLoaded;
24
24
  }
25
25
  constructor(llmService, llmHelperService, data) {
26
26
  this.llmService = llmService;
@@ -76,6 +76,7 @@ export class CreateSummaryComponent {
76
76
  refreshQuota(decrease) {
77
77
  this.llmHelperService.getRemainingQuota(decrease).subscribe((remainingQuota) => {
78
78
  this.summaryQuotaLeft = remainingQuota;
79
+ this.isQuotaLoaded = true;
79
80
  this.setQuotaMessage();
80
81
  });
81
82
  }
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
92
93
  type: Inject,
93
94
  args: [MAT_DIALOG_DATA]
94
95
  }] }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7OztBQU9yRCxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUNtQixVQUFzQixFQUN0QixnQkFBa0MsRUFDbEIsSUFBYTtRQUY3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFo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Q0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ25GLENBQUM7K0dBcEdVLHNCQUFzQiw0RUFzQ3ZCLGVBQWU7bUdBdENkLHNCQUFzQiwwRENkbkMsdytEQXVDQTs7NEZEekJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7OzBCQTBDM0IsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMTE1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgTExNU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xsbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBMTE1IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGxhdXNpYmxlSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vcGxhdXNpYmxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNyZWF0ZS1zdW1tYXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBpc0xvYWRpbmchOiBib29sZWFuO1xyXG4gIHNob3dEZWZhdWx0RXJyb3JNZXNzYWdlITogYm9vbGVhbjtcclxuICBzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlITogYm9vbGVhbjtcclxuICBpc1N1bW1hcml6aW5nQ2FuY2VsZWQhOiBib29sZWFuO1xyXG4gIGxhbmd1YWdlITogc3RyaW5nO1xyXG4gIHN1bW1hcnlRdW90YUxlZnQhOiBudW1iZXI7XHJcbiAgc3Vic2NyaXB0aW9uVXJsITogc3RyaW5nO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpc1N1bW1hcml6ZWQhOiBib29sZWFuO1xyXG5cclxuICBpbml0aWFsVGV4dCE6IHN0cmluZztcclxuICBzdW1tYXJpemVkVGV4dCA9ICcnO1xyXG4gIG1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcblxyXG4gIG1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGlzQ3JlYXRpbmdEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5pbml0aWFsVGV4dCB8fCAhdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93TWlzc2luZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ICYmICF0aGlzLm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtSGVscGVyU2VydmljZTogTExNSGVscGVyU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExMTURhdGFcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRoaXMuZGF0YS50ZXh0O1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9IHRoaXMuZGF0YS5sYW5ndWFnZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uVXJsID0gdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsO1xyXG4gICAgdGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlYWNoZWRRdW90YU1lc3NhZ2UoKTtcclxuICAgIHRoaXMucmVmcmVzaFF1b3RhKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdW1tYXJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGxtU2VydmljZVxyXG4gICAgICAuc3VtbWFyaXplKHsgdGV4dDogdGhpcy5tYW51YWxseUVkaXRlZFRleHQgIT09ICcnID8gdGhpcy5tYW51YWxseUVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0LCBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSB9KVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNTdW1tYXJpemVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3VtbWFyaXplZFRleHQgPSByZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRleHRFZGl0RXZlbnQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICB9XHJcblxyXG4gIGNvcHlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgnc3VtbWFyeScsIHsgYWN0aW9uOiAnY29weScgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGRpc2xpa2VQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgnc3VtbWFyeScsIHsgYWN0aW9uOiAnZGlzbGlrZScgfSk7XHJcbiAgfVxyXG5cclxuICBzdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3N1bW1hcnknLCB7IGFjdGlvbjogJ3N1bW1hcnknIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVtYWluaW5nUXVvdGEoZGVjcmVhc2UpLnN1YnNjcmliZSgocmVtYWluaW5nUXVvdGEpID0+IHtcclxuICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gcmVtYWluaW5nUXVvdGE7XHJcbiAgICAgIHRoaXMuc2V0UXVvdGFNZXNzYWdlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UgPSB0aGlzLnN1bW1hcnlRdW90YUxlZnQgPD0gdGhpcy50cmlhbFJlcXVlc3RDb3VudDtcclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5USVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cInNob3dNaXNzaW5nUXVvdGFNZXNzYWdlXCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiIChjbG9zZUNsaWNrZWQpPVwibWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IHRydWVcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZVwiIFttZXNzYWdlXT1cImRlZmF1bHRFcnJvck1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cInNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2VcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcblxyXG4gIDxsaWItbGxtLXRleHRhcmVhIFt0ZXh0XT1cInN1bW1hcml6ZWRUZXh0ICE9PSAnJyA/IHN1bW1hcml6ZWRUZXh0IDogaW5pdGlhbFRleHRcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICFzdW1tYXJ5UXVvdGFMZWZ0XCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLXN1bW1hcnktYWN0aW9ucy13cmFwcGVyXCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlXCIgW2lubmVySFRNTF09XCInTExNLlNVTU1BUllfTU9EQUwuTElNSVQnIHwgdHJhbnNsYXRlOiB7IGxpbWl0OiBzdW1tYXJ5UXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIGNsYXNzPVwibGxtLXN1bW1hcnktYWN0aW9uc1wiPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImlzTG9hZGluZzsgZWxzZSBjbG9zZUJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAge3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5DQU5DRUxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiPlxyXG4gICAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cImNyZWF0ZVN1bW1hcnkoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0NyZWF0aW5nRGlzYWJsZWRcIlxyXG4gICAgPlxyXG4gICAgICB7e1xyXG4gICAgICAgICghaXNTdW1tYXJpemVkXHJcbiAgICAgICAgICA/IFwiTExNLlNVTU1BUllfTU9EQUwuQ1JFQVRFXCJcclxuICAgICAgICAgIDogXCJMTE0uU1VNTUFSWV9NT0RBTC5SRUdFTkVSQVRFXCJcclxuICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ1wiIFtkaWFtZXRlcl09XCIyMFwiIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJtbC0yXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7OztBQU9yRCxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDekYsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQixJQUFhO1FBRjdCLGVBQVUsR0FBVixVQUFVLENB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SUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbkYsQ0FBQzsrR0FyR1Usc0JBQXNCLDRFQXNDdkIsZUFBZTttR0F0Q2Qsc0JBQXNCLDBEQ2RuQyx3K0RBdUNBOzs0RkR6QmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBMEMzQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExMTURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBMTE1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IExMTUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLXN1bW1hcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc2hvd0RlZmF1bHRFcnJvck1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIHNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIGlzUXVvdGFMb2FkZWQhOiBib29sZWFuO1xyXG4gIGxhbmd1YWdlITogc3RyaW5nO1xyXG4gIHN1bW1hcnlRdW90YUxlZnQhOiBudW1iZXI7XHJcbiAgc3Vic2NyaXB0aW9uVXJsITogc3RyaW5nO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpc1N1bW1hcml6ZWQhOiBib29sZWFuO1xyXG5cclxuICBpbml0aWFsVGV4dCE6IHN0cmluZztcclxuICBzdW1tYXJpemVkVGV4dCA9ICcnO1xyXG4gIG1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcblxyXG4gIG1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGlzQ3JlYXRpbmdEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5pbml0aWFsVGV4dCB8fCAhdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93TWlzc2luZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ICYmICF0aGlzLm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgJiYgdGhpcy5pc1F1b3RhTG9hZGVkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbVNlcnZpY2U6IExMTVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbUhlbHBlclNlcnZpY2U6IExMTUhlbHBlclNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBMTE1EYXRhXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0aGlzLmRhdGEudGV4dDtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSB0aGlzLmRhdGEubGFuZ3VhZ2U7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3VtbWFyeSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmxsbVNlcnZpY2VcclxuICAgICAgLnN1bW1hcml6ZSh7IHRleHQ6IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dCwgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UgfSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzU3VtbWFyaXplZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN1bW1hcml6ZWRUZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUXVvdGEodHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB0ZXh0RWRpdEV2ZW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRleHQ7XHJcbiAgfVxyXG5cclxuICBjb3B5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3N1bW1hcnknLCB7IGFjdGlvbjogJ2NvcHknIH0pO1xyXG4gIH1cclxuICBcclxuICBkaXNsaWtlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3N1bW1hcnknLCB7IGFjdGlvbjogJ2Rpc2xpa2UnIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KCdzdW1tYXJ5JywgeyBhY3Rpb246ICdzdW1tYXJ5JyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFF1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlbWFpbmluZ1F1b3RhKGRlY3JlYXNlKS5zdWJzY3JpYmUoKHJlbWFpbmluZ1F1b3RhKSA9PiB7XHJcbiAgICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHJlbWFpbmluZ1F1b3RhO1xyXG4gICAgICB0aGlzLmlzUXVvdGFMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNldFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlID0gdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxwPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93TWlzc2luZ1F1b3RhTWVzc2FnZVwiIFttZXNzYWdlXT1cInJlYWNoZWRRdW90YU1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cIm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSB0cnVlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvck1lc3NhZ2VcIiBbbWVzc2FnZV09XCJkZWZhdWx0RXJyb3JNZXNzYWdlXCIgKGNsb3NlQ2xpY2tlZCk9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJzdW1tYXJpemVkVGV4dCAhPT0gJycgPyBzdW1tYXJpemVkVGV4dCA6IGluaXRpYWxUZXh0XCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhc3VtbWFyeVF1b3RhTGVmdFwiICh0ZXh0RWRpdEV2ZW50KT1cInRleHRFZGl0RXZlbnQoJGV2ZW50KVwiIChjb3B5RXZlbnQpPVwiY29weVBsYXVzaWJsZUV2ZW50KClcIiAoZGlzbGlrZUV2ZW50KT1cImRpc2xpa2VQbGF1c2libGVFdmVudCgpXCI+PC9saWItbGxtLXRleHRhcmVhPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5TVU1NQVJZX01PREFMLkxJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogc3VtbWFyeVF1b3RhTGVmdCwgc3Vic2NyaXB0aW9uVXJsOiBzdWJzY3JpcHRpb25VcmwgfVwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IFtjbGFzcy53LWZ1bGxdPVwiIXNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2VcIiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBcIkxMTS5TVU1NQVJZX01PREFMLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJjcmVhdGVTdW1tYXJ5KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNDcmVhdGluZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3tcclxuICAgICAgICAoIWlzU3VtbWFyaXplZFxyXG4gICAgICAgICAgPyBcIkxMTS5TVU1NQVJZX01PREFMLkNSRUFURVwiXHJcbiAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fVxyXG4gICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMjBcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWwtMlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -25,7 +25,7 @@ export class RephraseComponent {
25
25
  return this.llmHelperService.getDefaultErrorMessage();
26
26
  }
27
27
  get showMissingQuotaMessage() {
28
- return !this.rephraseQuotaLeft && !this.missingQuotaMessageClosed;
28
+ return !this.rephraseQuotaLeft && !this.missingQuotaMessageClosed && this.isQuotaLoaded;
29
29
  }
30
30
  constructor(llmService, llmHelperService, data) {
31
31
  this.llmService = llmService;
@@ -104,6 +104,7 @@ export class RephraseComponent {
104
104
  refreshQuota(decrease) {
105
105
  this.llmHelperService.getRemainingQuota(decrease).subscribe((remainingQuota) => {
106
106
  this.rephraseQuotaLeft = remainingQuota;
107
+ this.isQuotaLoaded = true;
107
108
  this.setQuotaMessage();
108
109
  });
109
110
  }
@@ -111,13 +112,13 @@ export class RephraseComponent {
111
112
  this.showRemainingQuotaMessage = this.rephraseQuotaLeft <= this.trialRequestCount;
112
113
  }
113
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseComponent, deps: [{ token: i1.LLMService }, { token: i2.LLMHelperService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseComponent, selector: "lib-rephrase", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:220px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseComponent, selector: "lib-rephrase", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:180px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
115
116
  }
116
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseComponent, decorators: [{
117
118
  type: Component,
118
- args: [{ selector: 'lib-rephrase', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:220px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"] }]
119
+ args: [{ selector: 'lib-rephrase', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}:host ::ng-deep .llm-textarea{min-height:180px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"] }]
119
120
  }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.LLMHelperService }, { type: undefined, decorators: [{
120
121
  type: Inject,
121
122
  args: [MAT_DIALOG_DATA]
122
123
  }] }]; } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwaHJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL3JlcGhyYXNlL3JlcGhyYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9yZXBocmFzZS9yZXBocmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQixJQUFhO1FBRjdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFTO1FBakNoRCx5QkFBb0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBTy9DLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUVoQixxQkFBZ0IsR0FBNkMsRUFBRSxDQUFDO1FBRS9ELGtCQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2QyxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFeEMsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBa0IvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztRQUN4RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVILE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVoSCxJQUFJLHdCQUF3QixFQUFFO1lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDNUYsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvRTtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQzNJO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyx3QkFBd0IsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN4RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxRQUFpQjtRQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVU7YUFDaEMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDakksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztZQUN0QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLGVBQWUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBa0I7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDcEYsQ0FBQzsrR0E5SFUsaUJBQWlCLDRFQXdDbEIsZUFBZTttR0F4Q2QsaUJBQWlCLG9EQ2Y5QixpaEdBeURBOzs0RkQxQ2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7OzBCQTRDckIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMTE1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMTE1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMTE1Xcml0aW5nU3R5bGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLXdyaXRpbmctc3R5bGUuZW51bSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IExMTUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVwaHJhc2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBocmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwaHJhc2UuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwaHJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc2hvd0RlZmF1bHRFcnJvck1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIHNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIHJlcGhyYXNlUXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuICBwcmV2aW91c1dyaXRpbmdTdHlsZSE6IExMTVdyaXRpbmdTdHlsZTtcclxuICBzZWxlY3RlZFdyaXRpbmdTdHlsZSA9IExMTVdyaXRpbmdTdHlsZS5HRU5FUkFMO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpbml0aWFsVGV4dCE6IHN0cmluZztcclxuICByZXBocmFzZWRUZXh0ID0gJyc7XHJcbiAgbWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gIHByaXZhdGUgc2F2ZWRSZXBocmFzaW5nczoge3N0eWxlOiBMTE1Xcml0aW5nU3R5bGUsIHRleHQ6IHN0cmluZ31bXSA9IFtdO1xyXG4gIFxyXG4gIHJlYWRvbmx5IHdyaXRpbmdTdHlsZXMgPSBPYmplY3QudmFsdWVzKExMTVdyaXRpbmdTdHlsZSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuXHJcbiAgbWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IGZhbHNlO1xyXG5cclxuICBnZXQgaXNSZXBocmFzaW5nRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuaW5pdGlhbFRleHQgfHwgIXRoaXMucmVwaHJhc2VRdW90YUxlZnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdEVycm9yTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0RGVmYXVsdEVycm9yTWVzc2FnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dNaXNzaW5nUXVvdGFNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0ICYmICF0aGlzLm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtSGVscGVyU2VydmljZTogTExNSGVscGVyU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExMTURhdGFcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRoaXMuZGF0YS50ZXh0O1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25VcmwgPSB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25Vcmw7XHJcbiAgICB0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrUmVwaHJhc2VkVGV4dFNhdmVzKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRXcml0aW5nU3R5bGVTYXZlID0gdGhpcy5zYXZlZFJlcGhyYXNpbmdzLmZpbmQoKHJlcGhyYXNpbmcpID0+IHJlcGhyYXNpbmcuc3R5bGUgPT09IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUpO1xyXG4gICAgY29uc3QgcHJldmlvdXNXcml0aW5nU3R5bGVTYXZlID0gdGhpcy5zYXZlZFJlcGhyYXNpbmdzLmZpbmQoKHNhdmUpID0+IHNhdmUuc3R5bGUgPT09IHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUpO1xyXG4gICAgXHJcbiAgICBpZiAocHJldmlvdXNXcml0aW5nU3R5bGVTYXZlKSB7XHJcbiAgICAgIGNvbnN0IHNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcbiAgICAgIGlmIChzYXZlKSB7XHJcbiAgICAgICAgc2F2ZS50ZXh0ID0gdGhpcy5yZXBocmFzZWRUZXh0ICE9PSAnJyA/IHRoaXMucmVwaHJhc2VkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5wdXNoKHsgc3R5bGU6IHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUsIHRleHQ6IHRoaXMucmVwaHJhc2VkVGV4dCAhPT0gJycgPyB0aGlzLnJlcGhyYXNlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0IH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLnJlcGhyYXNlZFRleHQgPSBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmU/LnRleHQgPz8gdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICBzYXZlV3JpdGluZ1N0eWxlQmVmb3JlQ2hhbmdlKGlzT3BlbmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzT3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlID0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZTtcclxuICB9XHJcblxyXG4gIHJlcGhyYXNlVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGxtU2VydmljZVxyXG4gICAgICAucmVwaHJhc2UoeyB0ZXh0OiB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZXBocmFzZWRUZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUXVvdGEodHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB0ZXh0RWRpdEV2ZW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLnJlcGhyYXNlZFRleHQgPSAnJztcclxuICB9XHJcblxyXG4gIGNvcHlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgncmVwaHJhc2UnLCB7IGFjdGlvbjogJ2NvcHknIH0pO1xyXG4gIH1cclxuICBcclxuICBkaXNsaWtlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3JlcGhyYXNlJywgeyBhY3Rpb246ICdkaXNsaWtlJyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3JlcGhyYXNlJywgeyB3cml0aW5nU3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hRdW90YShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZW1haW5pbmdRdW90YShkZWNyZWFzZSkuc3Vic2NyaWJlKChyZW1haW5pbmdRdW90YSkgPT4ge1xyXG4gICAgICB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0ID0gcmVtYWluaW5nUXVvdGE7XHJcbiAgICAgIHRoaXMuc2V0UXVvdGFNZXNzYWdlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UgPSB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlJFUEhSQVNFX01PREFMLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cD57eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cInNob3dNaXNzaW5nUXVvdGFNZXNzYWdlXCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiIChjbG9zZUNsaWNrZWQpPVwibWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IHRydWVcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZVwiIFttZXNzYWdlXT1cImRlZmF1bHRFcnJvck1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cInNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2VcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7ICdMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCAob3BlbmVkQ2hhbmdlKT1cInNhdmVXcml0aW5nU3R5bGVCZWZvcmVDaGFuZ2UoJGV2ZW50KVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoKVwiIFsodmFsdWUpXT1cInNlbGVjdGVkV3JpdGluZ1N0eWxlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAge3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHN0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgXCJMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuU1BFQ0lGSUNfU1RZTEVcIiB8IHRyYW5zbGF0ZSA6IFxyXG4gICAgICB7IHN0eWxlOiAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc2VsZWN0ZWRXcml0aW5nU3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH0gXHJcbiAgICB9fVxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBpbmZvLWljb25cIlxyXG4gICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVE9PTFRJUF8nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZVwiIFxyXG4gICAgPlxyXG4gICAgICBpbmZvXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJyZXBocmFzZWRUZXh0ICE9PSAnJyA/IHJlcGhyYXNlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXJlcGhyYXNlUXVvdGFMZWZ0XCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5SRVBIUkFTRV9NT0RBTC5MSU1JVCcgfCB0cmFuc2xhdGU6IHsgbGltaXQ6IHJlcGhyYXNlUXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFX01PREFMLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XHJcbiAgICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cInJlcGhyYXNlVGV4dCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzUmVwaHJhc2luZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuUkVQSFJBU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMjBcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWwtMlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwaHJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL3JlcGhyYXNlL3JlcGhyYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9yZXBocmFzZS9yZXBocmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxpQkFBaUI7SUEwQjVCLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMxRixDQUFDO0lBRUQsWUFDbUIsVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ2xCLElBQWE7UUFGN0Is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QUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLFlBQVksQ0FBQyxRQUFrQjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDN0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNwRixDQUFDOytHQWhJVSxpQkFBaUIsNEVBeUNsQixlQUFlO21HQXpDZCxpQkFBaUIsb0RDZjlCLGloR0F5REE7OzRGRDFDYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzs7MEJBNkNyQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExMTVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IExMTURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExMTVdyaXRpbmdTdHlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0td3JpdGluZy1zdHlsZS5lbnVtJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHsgTExNSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xsbS1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBsYXVzaWJsZUhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3BsYXVzaWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1yZXBocmFzZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGhyYXNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXBocmFzZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXBocmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBzaG93RGVmYXVsdEVycm9yTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgaXNRdW90YUxvYWRlZCE6IGJvb2xlYW47XHJcbiAgcmVwaHJhc2VRdW90YUxlZnQhOiBudW1iZXI7XHJcbiAgc3Vic2NyaXB0aW9uVXJsITogc3RyaW5nO1xyXG4gIHByZXZpb3VzV3JpdGluZ1N0eWxlITogTExNV3JpdGluZ1N0eWxlO1xyXG4gIHNlbGVjdGVkV3JpdGluZ1N0eWxlID0gTExNV3JpdGluZ1N0eWxlLkdFTkVSQUw7XHJcblxyXG4gIHJlYWNoZWRRdW90YU1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGluaXRpYWxUZXh0ITogc3RyaW5nO1xyXG4gIHJlcGhyYXNlZFRleHQgPSAnJztcclxuICBtYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBzYXZlZFJlcGhyYXNpbmdzOiB7c3R5bGU6IExMTVdyaXRpbmdTdHlsZSwgdGV4dDogc3RyaW5nfVtdID0gW107XHJcbiAgXHJcbiAgcmVhZG9ubHkgd3JpdGluZ1N0eWxlcyA9IE9iamVjdC52YWx1ZXMoTExNV3JpdGluZ1N0eWxlKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSB0cmlhbFJlcXVlc3RDb3VudCA9IDE1O1xyXG5cclxuICBtaXNzaW5nUXVvdGFNZXNzYWdlQ2xvc2VkID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc1JlcGhyYXNpbmdEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5pbml0aWFsVGV4dCB8fCAhdGhpcy5yZXBocmFzZVF1b3RhTGVmdDtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0RXJyb3JNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGxtSGVscGVyU2VydmljZS5nZXREZWZhdWx0RXJyb3JNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd01pc3NpbmdRdW90YU1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMucmVwaHJhc2VRdW90YUxlZnQgJiYgIXRoaXMubWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCAmJiB0aGlzLmlzUXVvdGFMb2FkZWQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtSGVscGVyU2VydmljZTogTExNSGVscGVyU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExMTURhdGFcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRoaXMuZGF0YS50ZXh0O1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25VcmwgPSB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25Vcmw7XHJcbiAgICB0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrUmVwaHJhc2VkVGV4dFNhdmVzKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRXcml0aW5nU3R5bGVTYXZlID0gdGhpcy5zYXZlZFJlcGhyYXNpbmdzLmZpbmQoKHJlcGhyYXNpbmcpID0+IHJlcGhyYXNpbmcuc3R5bGUgPT09IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUpO1xyXG4gICAgY29uc3QgcHJldmlvdXNXcml0aW5nU3R5bGVTYXZlID0gdGhpcy5zYXZlZFJlcGhyYXNpbmdzLmZpbmQoKHNhdmUpID0+IHNhdmUuc3R5bGUgPT09IHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUpO1xyXG4gICAgXHJcbiAgICBpZiAocHJldmlvdXNXcml0aW5nU3R5bGVTYXZlKSB7XHJcbiAgICAgIGNvbnN0IHNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcbiAgICAgIGlmIChzYXZlKSB7XHJcbiAgICAgICAgc2F2ZS50ZXh0ID0gdGhpcy5yZXBocmFzZWRUZXh0ICE9PSAnJyA/IHRoaXMucmVwaHJhc2VkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5wdXNoKHsgc3R5bGU6IHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUsIHRleHQ6IHRoaXMucmVwaHJhc2VkVGV4dCAhPT0gJycgPyB0aGlzLnJlcGhyYXNlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0IH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLnJlcGhyYXNlZFRleHQgPSBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmU/LnRleHQgPz8gdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICBzYXZlV3JpdGluZ1N0eWxlQmVmb3JlQ2hhbmdlKGlzT3BlbmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzT3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlID0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZTtcclxuICB9XHJcblxyXG4gIHJlcGhyYXNlVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGxtU2VydmljZVxyXG4gICAgICAucmVwaHJhc2UoeyB0ZXh0OiB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZXBocmFzZWRUZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUXVvdGEodHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB0ZXh0RWRpdEV2ZW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLnJlcGhyYXNlZFRleHQgPSAnJztcclxuICB9XHJcblxyXG4gIGNvcHlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgncmVwaHJhc2UnLCB7IGFjdGlvbjogJ2NvcHknIH0pO1xyXG4gIH1cclxuICBcclxuICBkaXNsaWtlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3JlcGhyYXNlJywgeyBhY3Rpb246ICdkaXNsaWtlJyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3JlcGhyYXNlJywgeyB3cml0aW5nU3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hRdW90YShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZW1haW5pbmdRdW90YShkZWNyZWFzZSkuc3Vic2NyaWJlKChyZW1haW5pbmdRdW90YSkgPT4ge1xyXG4gICAgICB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0ID0gcmVtYWluaW5nUXVvdGE7XHJcbiAgICAgIHRoaXMuaXNRdW90YUxvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2V0UXVvdGFNZXNzYWdlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UgPSB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlJFUEhSQVNFX01PREFMLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cD57eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cInNob3dNaXNzaW5nUXVvdGFNZXNzYWdlXCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiIChjbG9zZUNsaWNrZWQpPVwibWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IHRydWVcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZVwiIFttZXNzYWdlXT1cImRlZmF1bHRFcnJvck1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cInNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2VcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7ICdMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCAob3BlbmVkQ2hhbmdlKT1cInNhdmVXcml0aW5nU3R5bGVCZWZvcmVDaGFuZ2UoJGV2ZW50KVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoKVwiIFsodmFsdWUpXT1cInNlbGVjdGVkV3JpdGluZ1N0eWxlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAge3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHN0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgXCJMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuU1BFQ0lGSUNfU1RZTEVcIiB8IHRyYW5zbGF0ZSA6IFxyXG4gICAgICB7IHN0eWxlOiAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc2VsZWN0ZWRXcml0aW5nU3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH0gXHJcbiAgICB9fVxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBpbmZvLWljb25cIlxyXG4gICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVE9PTFRJUF8nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZVwiIFxyXG4gICAgPlxyXG4gICAgICBpbmZvXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJyZXBocmFzZWRUZXh0ICE9PSAnJyA/IHJlcGhyYXNlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXJlcGhyYXNlUXVvdGFMZWZ0XCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5SRVBIUkFTRV9NT0RBTC5MSU1JVCcgfCB0cmFuc2xhdGU6IHsgbGltaXQ6IHJlcGhyYXNlUXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFX01PREFMLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XHJcbiAgICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cInJlcGhyYXNlVGV4dCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzUmVwaHJhc2luZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuUkVQSFJBU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMjBcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWwtMlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -42,11 +42,11 @@ export class LLMTextareaComponent {
42
42
  this.copyEvent.emit();
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaComponent, deps: [{ token: i1.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMTextareaComponent, selector: "lib-llm-textarea", inputs: { text: "text", disabled: "disabled" }, outputs: { textEditEvent: "textEditEvent", dislikeEvent: "dislikeEvent", copyEvent: "copyEvent" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:350px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMTextareaComponent, selector: "lib-llm-textarea", inputs: { text: "text", disabled: "disabled" }, outputs: { textEditEvent: "textEditEvent", dislikeEvent: "dislikeEvent", copyEvent: "copyEvent" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaComponent, decorators: [{
48
48
  type: Component,
49
- args: [{ selector: 'lib-llm-textarea', template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:350px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"] }]
49
+ args: [{ selector: 'lib-llm-textarea', template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"] }]
50
50
  }], ctorParameters: function () { return [{ type: i1.Clipboard }]; }, propDecorators: { textarea: [{
51
51
  type: ViewChild,
52
52
  args: ['textarea']
@@ -46,13 +46,13 @@ export class TerminologyCreateCollectionDialogComponent {
46
46
  this.subscription.unsubscribe();
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TerminologyCreateCollectionDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.TerminologyConfigService }, { token: i3.TranslateService }, { token: i4.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TerminologyCreateCollectionDialogComponent, selector: "lib-terminology-create-collection-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.TITLE\" | translate }}</h1>\r\n<tld-close-button class=\"close-button\" mat-dialog-close> </tld-close-button>\r\n<div mat-dialog-content>\r\n <p class=\"main-description\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_1' | translate : { appName, termPortalName }\"></p>\r\n <p class=\"text-s\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_2' | translate\"></p>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field appearance=\"outline\" class=\"collection-name-form-field\">\r\n <mat-label>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_LABEL\" | translate }} </mat-label>\r\n <input matInput formControlName=\"collectionName\" (keyup.enter)=\"create()\" />\r\n <mat-error *ngIf=\"form.controls['collectionName'].errors\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_ERROR\" | translate : { minLength: minLength, maxLength: maxLength } }}</mat-error>\r\n </mat-form-field>\r\n</form>\r\n</div>\r\n<div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"glossary-create-actions\">\r\n <button mat-flat-button (click)=\"create()\" cdkFocusInitial color=\"accent\" [disabled]=\"form.invalid\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CREATE\" | translate }}</button>\r\n <button mat-stroked-button mat-dialog-close color=\"accent\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CANCEL\" | translate }}</button>\r\n</div>\r\n", styles: ["input{outline:none!important}.create-dialog-wrapper{position:relative}.close-button{position:absolute;right:1em;top:1em}.main-description{margin-bottom:.25em}.collection-name-form-field{margin-top:2em}.glossary-create-actions{margin-left:1em;margin-bottom:.75em}.mdc-dialog__content{padding:0 24px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TerminologyCreateCollectionDialogComponent, selector: "lib-terminology-create-collection-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.TITLE\" | translate }}</h1>\r\n<tld-close-button class=\"close-button\" mat-dialog-close> </tld-close-button>\r\n<div mat-dialog-content>\r\n <p class=\"main-description\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_1' | translate : { appName, termPortalName }\"></p>\r\n <p class=\"text-s\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_2' | translate\"></p>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field appearance=\"outline\" class=\"collection-name-form-field\">\r\n <mat-label>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_LABEL\" | translate }} </mat-label>\r\n <input matInput formControlName=\"collectionName\" (keyup.enter)=\"create()\" />\r\n <mat-error *ngIf=\"form.controls['collectionName'].errors\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_ERROR\" | translate : { minLength: minLength, maxLength: maxLength } }}</mat-error>\r\n </mat-form-field>\r\n</form>\r\n</div>\r\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"glossary-create-actions\">\r\n <button mat-stroked-button mat-dialog-close color=\"accent\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CANCEL\" | translate }}</button>\r\n <button mat-flat-button (click)=\"create()\" cdkFocusInitial color=\"accent\" [disabled]=\"form.invalid\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CREATE\" | translate }}</button>\r\n</mat-dialog-actions>\r\n", styles: ["input{outline:none!important}.create-dialog-wrapper{position:relative}.close-button{position:absolute;right:1em;top:1em}.main-description{margin-bottom:.25em}.collection-name-form-field{margin-top:2em}.mdc-dialog__content{padding:0 24px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TerminologyCreateCollectionDialogComponent, decorators: [{
52
52
  type: Component,
53
- args: [{ selector: "lib-terminology-create-collection-dialog", template: "<h1 mat-dialog-title>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.TITLE\" | translate }}</h1>\r\n<tld-close-button class=\"close-button\" mat-dialog-close> </tld-close-button>\r\n<div mat-dialog-content>\r\n <p class=\"main-description\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_1' | translate : { appName, termPortalName }\"></p>\r\n <p class=\"text-s\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_2' | translate\"></p>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field appearance=\"outline\" class=\"collection-name-form-field\">\r\n <mat-label>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_LABEL\" | translate }} </mat-label>\r\n <input matInput formControlName=\"collectionName\" (keyup.enter)=\"create()\" />\r\n <mat-error *ngIf=\"form.controls['collectionName'].errors\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_ERROR\" | translate : { minLength: minLength, maxLength: maxLength } }}</mat-error>\r\n </mat-form-field>\r\n</form>\r\n</div>\r\n<div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"glossary-create-actions\">\r\n <button mat-flat-button (click)=\"create()\" cdkFocusInitial color=\"accent\" [disabled]=\"form.invalid\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CREATE\" | translate }}</button>\r\n <button mat-stroked-button mat-dialog-close color=\"accent\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CANCEL\" | translate }}</button>\r\n</div>\r\n", styles: ["input{outline:none!important}.create-dialog-wrapper{position:relative}.close-button{position:absolute;right:1em;top:1em}.main-description{margin-bottom:.25em}.collection-name-form-field{margin-top:2em}.glossary-create-actions{margin-left:1em;margin-bottom:.75em}.mdc-dialog__content{padding:0 24px!important}\n"] }]
53
+ args: [{ selector: "lib-terminology-create-collection-dialog", template: "<h1 mat-dialog-title>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.TITLE\" | translate }}</h1>\r\n<tld-close-button class=\"close-button\" mat-dialog-close> </tld-close-button>\r\n<div mat-dialog-content>\r\n <p class=\"main-description\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_1' | translate : { appName, termPortalName }\"></p>\r\n <p class=\"text-s\" [innerHtml]=\"'TERM_COLLECTIONS.CREATE_DIALOG.DESCRIPTION_2' | translate\"></p>\r\n <form [formGroup]=\"form\">\r\n <mat-form-field appearance=\"outline\" class=\"collection-name-form-field\">\r\n <mat-label>{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_LABEL\" | translate }} </mat-label>\r\n <input matInput formControlName=\"collectionName\" (keyup.enter)=\"create()\" />\r\n <mat-error *ngIf=\"form.controls['collectionName'].errors\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.COLLECTION_NAME_ERROR\" | translate : { minLength: minLength, maxLength: maxLength } }}</mat-error>\r\n </mat-form-field>\r\n</form>\r\n</div>\r\n<mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"glossary-create-actions\">\r\n <button mat-stroked-button mat-dialog-close color=\"accent\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CANCEL\" | translate }}</button>\r\n <button mat-flat-button (click)=\"create()\" cdkFocusInitial color=\"accent\" [disabled]=\"form.invalid\">{{ \"TERM_COLLECTIONS.CREATE_DIALOG.CREATE\" | translate }}</button>\r\n</mat-dialog-actions>\r\n", styles: ["input{outline:none!important}.create-dialog-wrapper{position:relative}.close-button{position:absolute;right:1em;top:1em}.main-description{margin-bottom:.25em}.collection-name-form-field{margin-top:2em}.mdc-dialog__content{padding:0 24px!important}\n"] }]
54
54
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.TerminologyConfigService }, { type: i3.TranslateService }, { type: i4.FormBuilder }, { type: undefined, decorators: [{
55
55
  type: Inject,
56
56
  args: [MAT_DIALOG_DATA]
57
57
  }] }]; } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy90ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3Rlcm1pbm9sb2d5L2NvbXBvbmVudHMvdGVybWlub2xvZ3ktcGFuZWwvdGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24vdGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24tZGlhbG9nL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7QUFVekUsTUFBTSxPQUFPLDBDQUEwQztJQWNyRCxZQUNtQixTQUE0QixFQUM1QixNQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsRUFBZSxFQUNBLElBQWdDO1FBSi9DLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNBLFNBQUksR0FBSixJQUFJLENBQTRCO1FBVmxFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxrQkFBa0IsQ0FBQztJQVVoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUksQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRTtZQUNwRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDO1lBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUM7U0FDakU7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ2pILElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDOytHQWhEVSwwQ0FBMEMsaUpBbUIzQyxlQUFlO21HQW5CZCwwQ0FBMEMsZ0ZDWnZELDI2Q0FpQkE7OzRGRExhLDBDQUEwQztrQkFMdEQsU0FBUzsrQkFDRSwwQ0FBMEM7OzBCQXVCakQsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb25maWcvc2VydmljZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi90ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neUNyZWF0ZUNvbGxlY3Rpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29sbGVjdGlvbk5hbWUhOiBzdHJpbmc7XHJcbiAgbWluTGVuZ3RoITogbnVtYmVyO1xyXG4gIG1heExlbmd0aCE6IG51bWJlcjtcclxuICB0ZXJtUG9ydGFsTmFtZSE6IHN0cmluZztcclxuICBhcHBOYW1lITogc3RyaW5nO1xyXG5cclxuICBhcHBOYW1lS2V5ID0gXCJBUFBfTkFNRVwiO1xyXG4gIHRlcm1Qb3J0YWxLZXkgPSBcIlRFUk1fUE9SVEFMX05BTUVcIjtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgfVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY29sbGVjdGlvbk5hbWU6IFt0aGlzLmRhdGEuY29sbGVjdGlvbk5hbWUsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGggJiYgdGhpcy5jb25maWcudGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aCkge1xyXG4gICAgICB0aGlzLm1pbkxlbmd0aCA9IHRoaXMuY29uZmlnLnRlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGg7XHJcbiAgICAgIHRoaXMubWF4TGVuZ3RoID0gdGhpcy5jb25maWcudGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oW3RoaXMuYXBwTmFtZUtleSwgdGhpcy50ZXJtUG9ydGFsS2V5XSkuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5hcHBOYW1lID0gdHJhbnNsYXRpb25zW3RoaXMuYXBwTmFtZUtleV07XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy50ZXJtQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtUG9ydGFsTmFtZSA9IHRyYW5zbGF0aW9uc1t0aGlzLnRlcm1Qb3J0YWxLZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlLmNvbGxlY3Rpb25OYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgXCJURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjx0bGQtY2xvc2UtYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgbWF0LWRpYWxvZy1jbG9zZT4gPC90bGQtY2xvc2UtYnV0dG9uPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cIm1haW4tZGVzY3JpcHRpb25cIiBbaW5uZXJIdG1sXT1cIidURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuREVTQ1JJUFRJT05fMScgfCB0cmFuc2xhdGUgOiB7IGFwcE5hbWUsIHRlcm1Qb3J0YWxOYW1lIH1cIj48L3A+XHJcbiAgPHAgY2xhc3M9XCJ0ZXh0LXNcIiBbaW5uZXJIdG1sXT1cIidURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuREVTQ1JJUFRJT05fMicgfCB0cmFuc2xhdGVcIj48L3A+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImNvbGxlY3Rpb24tbmFtZS1mb3JtLWZpZWxkXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgXCJURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuQ09MTEVDVElPTl9OQU1FX0xBQkVMXCIgfCB0cmFuc2xhdGUgfX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb2xsZWN0aW9uTmFtZVwiIChrZXl1cC5lbnRlcik9XCJjcmVhdGUoKVwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWydjb2xsZWN0aW9uTmFtZSddLmVycm9yc1wiPnt7IFwiVEVSTV9DT0xMRUNUSU9OUy5DUkVBVEVfRElBTE9HLkNPTExFQ1RJT05fTkFNRV9FUlJPUlwiIHwgdHJhbnNsYXRlIDogeyBtaW5MZW5ndGg6IG1pbkxlbmd0aCwgbWF4TGVuZ3RoOiBtYXhMZW5ndGggfSB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJnbG9zc2FyeS1jcmVhdGUtYWN0aW9uc1wiPlxyXG4gIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjcmVhdGUoKVwiIGNka0ZvY3VzSW5pdGlhbCBjb2xvcj1cImFjY2VudFwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj57eyBcIlRFUk1fQ09MTEVDVElPTlMuQ1JFQVRFX0RJQUxPRy5DUkVBVEVcIiB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY29sb3I9XCJhY2NlbnRcIj57eyBcIlRFUk1fQ09MTEVDVElPTlMuQ1JFQVRFX0RJQUxPRy5DQU5DRUxcIiB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy90ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3Rlcm1pbm9sb2d5L2NvbXBvbmVudHMvdGVybWlub2xvZ3ktcGFuZWwvdGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24vdGVybWlub2xvZ3ktY3JlYXRlLWNvbGxlY3Rpb24tZGlhbG9nL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7QUFVekUsTUFBTSxPQUFPLDBDQUEwQztJQWNyRCxZQUNtQixTQUE0QixFQUM1QixNQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsRUFBZSxFQUNBLElBQWdDO1FBSi9DLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNBLFNBQUksR0FBSixJQUFJLENBQTRCO1FBVmxFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxrQkFBa0IsQ0FBQztJQVVoQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUksQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRTtZQUNwRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDO1lBQ2hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUM7U0FDakU7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ2pILElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDOytHQWhEVSwwQ0FBMEMsaUpBbUIzQyxlQUFlO21HQW5CZCwwQ0FBMEMsZ0ZDWnZELG83Q0FpQkE7OzRGRExhLDBDQUEwQztrQkFMdEQsU0FBUzsrQkFDRSwwQ0FBMEM7OzBCQXVCakQsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb25maWcvc2VydmljZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2dcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3Rlcm1pbm9sb2d5LWNyZWF0ZS1jb2xsZWN0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi90ZXJtaW5vbG9neS1jcmVhdGUtY29sbGVjdGlvbi1kaWFsb2cuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neUNyZWF0ZUNvbGxlY3Rpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29sbGVjdGlvbk5hbWUhOiBzdHJpbmc7XHJcbiAgbWluTGVuZ3RoITogbnVtYmVyO1xyXG4gIG1heExlbmd0aCE6IG51bWJlcjtcclxuICB0ZXJtUG9ydGFsTmFtZSE6IHN0cmluZztcclxuICBhcHBOYW1lITogc3RyaW5nO1xyXG5cclxuICBhcHBOYW1lS2V5ID0gXCJBUFBfTkFNRVwiO1xyXG4gIHRlcm1Qb3J0YWxLZXkgPSBcIlRFUk1fUE9SVEFMX05BTUVcIjtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgfVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgY29sbGVjdGlvbk5hbWU6IFt0aGlzLmRhdGEuY29sbGVjdGlvbk5hbWUsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGggJiYgdGhpcy5jb25maWcudGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aCkge1xyXG4gICAgICB0aGlzLm1pbkxlbmd0aCA9IHRoaXMuY29uZmlnLnRlcm1Db25maWcuY29sbGVjdGlvbk5hbWVNaW5MZW5ndGg7XHJcbiAgICAgIHRoaXMubWF4TGVuZ3RoID0gdGhpcy5jb25maWcudGVybUNvbmZpZy5jb2xsZWN0aW9uTmFtZU1heExlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oW3RoaXMuYXBwTmFtZUtleSwgdGhpcy50ZXJtUG9ydGFsS2V5XSkuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5hcHBOYW1lID0gdHJhbnNsYXRpb25zW3RoaXMuYXBwTmFtZUtleV07XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy50ZXJtQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy50ZXJtUG9ydGFsTmFtZSA9IHRyYW5zbGF0aW9uc1t0aGlzLnRlcm1Qb3J0YWxLZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtLnZhbHVlLmNvbGxlY3Rpb25OYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgXCJURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjx0bGQtY2xvc2UtYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgbWF0LWRpYWxvZy1jbG9zZT4gPC90bGQtY2xvc2UtYnV0dG9uPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cIm1haW4tZGVzY3JpcHRpb25cIiBbaW5uZXJIdG1sXT1cIidURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuREVTQ1JJUFRJT05fMScgfCB0cmFuc2xhdGUgOiB7IGFwcE5hbWUsIHRlcm1Qb3J0YWxOYW1lIH1cIj48L3A+XHJcbiAgPHAgY2xhc3M9XCJ0ZXh0LXNcIiBbaW5uZXJIdG1sXT1cIidURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuREVTQ1JJUFRJT05fMicgfCB0cmFuc2xhdGVcIj48L3A+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImNvbGxlY3Rpb24tbmFtZS1mb3JtLWZpZWxkXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgXCJURVJNX0NPTExFQ1RJT05TLkNSRUFURV9ESUFMT0cuQ09MTEVDVElPTl9OQU1FX0xBQkVMXCIgfCB0cmFuc2xhdGUgfX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb2xsZWN0aW9uTmFtZVwiIChrZXl1cC5lbnRlcik9XCJjcmVhdGUoKVwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWydjb2xsZWN0aW9uTmFtZSddLmVycm9yc1wiPnt7IFwiVEVSTV9DT0xMRUNUSU9OUy5DUkVBVEVfRElBTE9HLkNPTExFQ1RJT05fTkFNRV9FUlJPUlwiIHwgdHJhbnNsYXRlIDogeyBtaW5MZW5ndGg6IG1pbkxlbmd0aCwgbWF4TGVuZ3RoOiBtYXhMZW5ndGggfSB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG48L2Rpdj5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgY2xhc3M9XCJnbG9zc2FyeS1jcmVhdGUtYWN0aW9uc1wiPlxyXG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY29sb3I9XCJhY2NlbnRcIj57eyBcIlRFUk1fQ09MTEVDVElPTlMuQ1JFQVRFX0RJQUxPRy5DQU5DRUxcIiB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJjcmVhdGUoKVwiIGNka0ZvY3VzSW5pdGlhbCBjb2xvcj1cImFjY2VudFwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj57eyBcIlRFUk1fQ09MTEVDVElPTlMuQ1JFQVRFX0RJQUxPRy5DUkVBVEVcIiB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG48L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuIl19