@tsi-developpement/tsi-shared-ui 1.8.40 → 1.8.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs
CHANGED
|
@@ -29,7 +29,9 @@ import * as i20 from "../../tsi-form/tsi-form.component";
|
|
|
29
29
|
import * as i21 from "../../../pipes/localize.pipe";
|
|
30
30
|
export class AddReportPopupComponent extends TsiFormComponentBaseComponent {
|
|
31
31
|
get isReportForFiche() {
|
|
32
|
-
return !this.
|
|
32
|
+
return !this._router.url.includes('edition-personalisee')
|
|
33
|
+
&& !this.config.data?.fromEndpoint?.includes("getallpaged")
|
|
34
|
+
&& this.config.data?.fromEndpoint != undefined;
|
|
33
35
|
}
|
|
34
36
|
constructor(ref, reportingService, config, notificationService, dashboardModuleService, _confirm, _httpClient, _router) {
|
|
35
37
|
super(ref, config);
|
|
@@ -98,7 +100,7 @@ export class AddReportPopupComponent extends TsiFormComponentBaseComponent {
|
|
|
98
100
|
this.report.endPointKey = this.config.data?.fromEndpoint;
|
|
99
101
|
this.report.endPointValue = this.config.data?.fromEndpoint;
|
|
100
102
|
}
|
|
101
|
-
if (this.config.data?.fromEndpoint && !this.isReportForFiche && !this.customReportingMode) {
|
|
103
|
+
if (this.config.data?.fromEndpoint && !this.isReportForFiche && !this.customReportingMode && !this.enableMultiSelectEndpoints) {
|
|
102
104
|
this.reportingService.getApiAsKeyValueByValue(encodeURIComponent(this.config.data.fromEndpoint)).subscribe({
|
|
103
105
|
next: (res) => {
|
|
104
106
|
console.log(res);
|
|
@@ -203,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
203
205
|
type: Component,
|
|
204
206
|
args: [{ selector: 'app-add-report-popup', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abr\u00E9g\u00E9 -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxi\u00E9me Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox> \r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche && !enableMultiSelectEndpoints\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"customReportingMode && !enableMultiSelectEndpoints \" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche\"\r\n id-field=\"value\"\r\n label-field=\"value\"\r\n [(bind)]=\"selectedEndpoints\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\"\r\n [multiple]=\"true\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\">\r\n </Tsi-Search-Combo>\r\n\r\n <p-multiSelect *ngIf=\"!isReportForFiche && enableMultiSelectEndpoints\" [options]=\"endpointsOptions\" [(ngModel)]=\"selectedEndpoints\"\r\n selectedItemsLabel=\"{0} {{ 'endpoint_selected' | localize }}\" optionLabel=\"value\"\r\n optionValue=\"value\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'shared_reporting_choose_endpoints' | localize }}\"\r\n (onPanelShow)=\"handleOpen()\"\r\n [filter]=\"true\"\r\n (onFilter)=\"onFilter($event)\"\r\n display=\"chip\"\r\n class=\"rounded-multiselect\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.value}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </div>\r\n\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\" \r\n [showSaveAndCloseButton]=\"false\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [".flx{display:flex;justify-content:center;align-items:center}::ng-deep .rounded-multiselect .p-multiselect{border-radius:12px!important}::ng-deep .rounded-multiselect .p-multiselect-label{border-radius:12px!important}\n"] }]
|
|
205
207
|
}], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i2.ReportingService }, { type: i1.DynamicDialogConfig }, { type: i3.TsiNotificationService }, { type: i4.DashboardModuleService }, { type: i5.TsiConfirmationService }, { type: i6.HttpClient }, { type: i7.Router }] });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvbWFuYWdlLXJlcG9ydGluZy9hZGQtcmVwb3J0LXBvcHVwL2FkZC1yZXBvcnQtcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1yZXBvcnRpbmcvYWRkLXJlcG9ydC1wb3B1cC9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFxQnhFLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxTQUFTLENBQUE7SUFDaEgsQ0FBQztJQW1CRCxZQUNrQixHQUFxQixFQUM5QixnQkFBa0MsRUFDekIsTUFBMkIsRUFDbkMsbUJBQTJDLEVBQzNDLHNCQUE4QyxFQUM5QyxRQUFnQyxFQUNoQyxXQUF1QixFQUN2QixPQUFlO1FBRXZCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFUSCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQ25DLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBaER6QixlQUFVLEdBQTRDO1lBQ3BELEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUNwRCxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7U0FDekMsQ0FBQztRQUVGLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBSWxELHNCQUFpQixHQUFVLEVBQUUsQ0FBQTtRQUM3QixxQkFBZ0IsR0FBVSxFQUFFLENBQUE7UUFDNUIsK0JBQTBCLEdBQVksS0FBSyxDQUFBO1FBRW5DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU0zQyxXQUFNLEdBQUc7WUFDUCxVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsRUFBRTtZQUNmLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUE7UUFFRCxZQUFPLEdBQVUsRUFBRSxDQUFDO0lBYXBCLENBQUM7SUFFUSxRQUFRO1FBRWYsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUU3RyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztZQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBRXJELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7b0JBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztvQkFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQTtRQUNoRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUE7UUFFaEUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUE7WUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFBO1FBQzVELENBQUM7UUFHRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDekcsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDbEIsQ0FBQzthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUE7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFdEIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUVwQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVE7UUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2xCLFNBQVMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUNsRSxDQUNGLENBQUM7WUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEYsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXZELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEVBQ2pFLEVBQUUsTUFBTSxFQUFFLENBQ1gsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ2xILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBZTtRQUNqQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxJQUFJO1FBRVgsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUVaLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU87UUFDVCxDQUFDO2FBQ0ksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDdkUsT0FBTztRQUNULENBQUM7YUFDSSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDM0UsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUTthQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDRDQUE0QyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDNUYsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ3hCLENBQUM7UUFDSCxDQUFDLENBQ0EsQ0FBQztJQUVOLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxhQUFrQjtRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQjthQUN4QixhQUFhLEVBQUU7YUFDZixTQUFTLENBQ1I7WUFDRSxJQUFJLEVBQUUsQ0FBQyxNQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7U0FDRixDQUNGLENBQUE7SUFDTCxDQUFDOytHQXROVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrQ0FGdkIsQ0FBQyxHQUFHLFlBQVksQ0FBQyxpRENsQjlCLGlrUUFrSlc7OzRGRDlIRSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCLENBQUMsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgQWRtaW5pc3RyYXRpb25FbmRwb2ludHMgfSBmcm9tICcuLi8uLi8uLi9lbmQtcG9pbnRzJztcclxuaW1wb3J0IHsgVHNpUmVwb3J0VHlwZSwgTW9kZXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IFRzaUZvcm1Db21wb25lbnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdHNpLWJhc2UvY29tcG9uZW50cy90c2ktZm9ybS1iYXNlL3RzaS1mb3JtLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGFzaGJvYXJkTW9kdWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcG9ydGluZy9kYXNoYm9hcmQtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IFJlcG9ydGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnRpbmcvcmVwb3J0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUc2lOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL3RzaS1ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRzaUNvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vdHNpLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFkZC1yZXBvcnQtcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbLi4uYXBwUHJvdmlkZXJzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkUmVwb3J0UG9wdXBDb21wb25lbnQgZXh0ZW5kcyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGRhdGFTb3VyY2U6IHsga2V5OiBUc2lSZXBvcnRUeXBlLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtcclxuICAgIHsga2V5OiBUc2lSZXBvcnRUeXBlLkxpc3QsIHZhbHVlOiBcIkVuZCB1c2VyIHJlcG9ydFwiIH0sXHJcbiAgICB7IGtleTogVHNpUmVwb3J0VHlwZS5EYXNoYm9hcmQsIHZhbHVlOiBcIkRhc2hib2FyZFwiIH0sXHJcbiAgICB7IGtleTogVHNpUmVwb3J0VHlwZS5SVEYsIHZhbHVlOiBcIlJURlwiIH1cclxuICBdO1xyXG5cclxuICBpc0dldEJ5SWRSZXF1ZXN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbW9kZXMgPSBNb2RlcztcclxuICBpc0VkaXRpb25QZXJzb25uYWxpc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhZG1pbmlzdHJhdGlvbkVuZHBvaW50cyA9IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzO1xyXG4gIHJlcG9ydEJ1c2luZXNzQ2xhc3M/OiBzdHJpbmdcclxuICBjdXN0b21SZXBvcnRpbmdNb2RlPzogYm9vbGVhblxyXG5cclxuICBzZWxlY3RlZEVuZHBvaW50czogYW55W10gPSBbXVxyXG4gIGVuZHBvaW50c09wdGlvbnM6IGFueVtdID0gW11cclxuICBlbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50czogYm9vbGVhbiA9IGZhbHNlXHJcblxyXG4gIHByaXZhdGUgX2lzUmVwb3J0Rm9yRmljaGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGlzUmVwb3J0Rm9yRmljaGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuY29uZmlnLmRhdGE/LmZyb21FbmRwb2ludD8uaW5jbHVkZXMoXCJnZXRhbGxwYWdlZFwiKSAmJiB0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnQgIT0gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICByZXBvcnQgPSB7XHJcbiAgICByZXBvcnRUeXBlOiAnJyxcclxuICAgIHJlcG9ydE5hbWU6ICcnLFxyXG4gICAgcmVwb3J0TmFtZUFicmVnZTogJycsXHJcbiAgICB0cmlPcmRyZTogMCxcclxuICAgIG1vZHVsZTogJycsXHJcbiAgICBpbXByZXNzOiAnJyxcclxuICAgIGVkaXRpb25VbmlxdWU6IGZhbHNlLFxyXG4gICAgZW5kUG9pbnRLZXk6ICcnLFxyXG4gICAgZW5kUG9pbnRWYWx1ZTogJycsXHJcbiAgICBwYXJhbTogJycsXHJcbiAgICBmb3JtTmFtZTogJycsXHJcbiAgICBkaXNwbGF5OiBmYWxzZSxcclxuICB9XHJcblxyXG4gIG1vZHVsZXM6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZjogRHluYW1pY0RpYWxvZ1JlZixcclxuICAgIHB1YmxpYyByZXBvcnRpbmdTZXJ2aWNlOiBSZXBvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGFzaGJvYXJkTW9kdWxlU2VydmljZTogRGFzaGJvYXJkTW9kdWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpcm06IFRzaUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKHJlZiwgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHMgPSB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCdlZGl0aW9uLXBlcnNvbmFsaXNlZScpIHx8IHRoaXMuaXNSZXBvcnRGb3JGaWNoZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YS52YWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIj4+PiB0aGlzLmNvbmZpZy5kYXRhOiBcIiwgdGhpcy5jb25maWcuZGF0YSk7XHJcbiAgICAgIHRoaXMucmVwb3J0LnJlcG9ydFR5cGUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLnJlcG9ydFR5cGU7XHJcbiAgICAgIHRoaXMucmVwb3J0LnJlcG9ydE5hbWUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLm5hbWU7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZT8ucmVzdEVuZHBvaW50O1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZT8ucmVzdEVuZHBvaW50O1xyXG4gICAgICB0aGlzLnJlcG9ydC5tb2R1bGUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLm1vZHVsZTtcclxuICAgICAgdGhpcy5yZXBvcnQudHJpT3JkcmUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLm9yZGVyO1xyXG4gICAgICB0aGlzLnJlcG9ydC5mb3JtTmFtZSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWUuZm9ybU5hbWU7XHJcbiAgICAgIHRoaXMucmVwb3J0LnJlcG9ydE5hbWVBYnJlZ2UgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLnNob3J0TmFtZTtcclxuICAgICAgdGhpcy5yZXBvcnQuZGlzcGxheSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWUuZGlzcGxheTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZU11bHRpU2VsZWN0RW5kcG9pbnRzKSB7XHJcbiAgICAgICAgdGhpcy5lbmRwb2ludHNPcHRpb25zID0gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXlcclxuICAgICAgICAgID8gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkuc3BsaXQoJzsnKS5tYXAoeCA9PiAoeyBsYWJlbDogeCwgdmFsdWU6IHggfSkpXHJcbiAgICAgICAgICA6IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMgPSB0aGlzLnJlcG9ydC5lbmRQb2ludEtleVxyXG4gICAgICAgICAgPyB0aGlzLnJlcG9ydC5lbmRQb2ludEtleS5zcGxpdCgnOycpXHJcbiAgICAgICAgICA6IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXBvcnRCdXNpbmVzc0NsYXNzID0gdGhpcy5jb25maWcuZGF0YT8ucmVwb3J0QnVzaW5lc3NDbGFzc1xyXG4gICAgdGhpcy5jdXN0b21SZXBvcnRpbmdNb2RlID0gdGhpcy5jb25maWcuZGF0YT8uY3VzdG9tUmVwb3J0aW5nTW9kZVxyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbVJlcG9ydGluZ01vZGUpIHtcclxuICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkgPSB0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnRcclxuICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHRoaXMuY29uZmlnLmRhdGE/LmZyb21FbmRwb2ludFxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50ICYmICF0aGlzLmlzUmVwb3J0Rm9yRmljaGUgJiYgIXRoaXMuY3VzdG9tUmVwb3J0aW5nTW9kZSkge1xyXG4gICAgICB0aGlzLnJlcG9ydGluZ1NlcnZpY2UuZ2V0QXBpQXNLZXlWYWx1ZUJ5VmFsdWUoZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuY29uZmlnLmRhdGEuZnJvbUVuZHBvaW50KSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gcmVzWzBdPy5rZXk7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gcmVzWzBdPy52YWx1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kZSA9IHRoaXMuY29uZmlnLmRhdGEubW9kZVxyXG4gICAgdGhpcy5pc0VkaXRpb25QZXJzb25uYWxpc2UgPSB0aGlzLmNvbmZpZy5kYXRhLmlzRWRpdGlvblBlcnNvbm5hbGlzZVxyXG4gICAgY29uc29sZS5sb2codGhpcy5tb2RlKVxyXG5cclxuICAgIHRoaXMuYWxsb3dTYXZlV2l0aG91dENoYW5nZXMgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuZ2V0QWxsTW9kdWxlcygpO1xyXG4gIH1cclxuXHJcbiAgcmVwb3J0VHlwZUNoYW5nZShldnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coZXZ0KVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgaGFuZGxlT3BlbigpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLl9odHRwQ2xpZW50LmdldDxhbnlbXT4oXHJcbiAgICAgICAgICBlbmNvZGVVUkkodGhpcy5hZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IGRhdGEgfHwgW107XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFsuLi4gdGhpcy5zZWxlY3RlZEVuZHBvaW50cy5tYXAoeCA9PiAoeyBsYWJlbDogeCwgdmFsdWU6IHggfSkpLFxyXG4gICAgICAuLi50aGlzLmVuZHBvaW50c09wdGlvbnNdXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGVuZHBvaW50czonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25GaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5fZ2VuZXJhdGVIdHRwUGFyYW1zKGV2ZW50Py5maWx0ZXIpO1xyXG5cclxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuX2h0dHBDbGllbnQuZ2V0PGFueVtdPihcclxuICAgICAgICAgIGVuY29kZVVSSSh0aGlzLmFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyKCkpLFxyXG4gICAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IGRhdGEgfHwgW107XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFsuLi50aGlzLnNlbGVjdGVkRW5kcG9pbnRzLm1hcCh4ID0+ICh7IGxhYmVsOiB4LCB2YWx1ZTogeCB9KSksIC4uLnRoaXMuZW5kcG9pbnRzT3B0aW9uc11cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgZW5kcG9pbnRzOicsIGVycm9yKTtcclxuICAgICAgdGhpcy5lbmRwb2ludHNPcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfZ2VuZXJhdGVIdHRwUGFyYW1zKGZpbHRlcj86IHN0cmluZyk6IEh0dHBQYXJhbXMge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3ZhbHVlJywgZmlsdGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBzYXZlKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZU11bHRpU2VsZWN0RW5kcG9pbnRzKSB7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gdGhpcy5zZWxlY3RlZEVuZHBvaW50cy5qb2luKCc7Jyk7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50VmFsdWUgPSB0aGlzLnNlbGVjdGVkRW5kcG9pbnRzLmpvaW4oJzsnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci5zYXZlKClcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucmVwb3J0LnJlcG9ydFR5cGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfdHlwZV9yZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5yZXBvcnQucmVwb3J0TmFtZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLndhcm4oXCJzaGFyZWRfcmVwb3J0aW5nX3JlcG9ydF9uYW1lX3JlcXVpcmVkXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmlzRWRpdGlvblBlcnNvbm5hbGlzZSAmJiB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLndhcm4oXCJzaGFyZWRfcmVwb3J0aW5nX3JlcG9ydF9lbmRwb2ludF9yZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NvbmZpcm1cclxuICAgICAgLmNvbmZpcm0odGhpcy5sKCdzaGFyZWRfcmVwb3J0aW5nX3JlcG9ydF9jb25maXJtUmVkaXJlY3Rpb24nKSwgdW5kZWZpbmVkLCAocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhblJlZGlyZWN0JywgSlNPTi5zdHJpbmdpZnkodHJ1ZSkpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlKHRoaXMucmVwb3J0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhblJlZGlyZWN0JywgSlNPTi5zdHJpbmdpZnkoZmFsc2UpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0aGlzLnJlcG9ydClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEVuZHBvaW50Q2hhbmdlKGVuZHBvaW50VmFsdWU6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5yZXBvcnQpXHJcbiAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gZW5kcG9pbnRWYWx1ZTtcclxuICAgIHRoaXMuaXNHZXRCeUlkUmVxdWVzdCA9IGVuZHBvaW50VmFsdWUuaW5jbHVkZXMoXCJ7aWR9XCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBbGxNb2R1bGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRNb2R1bGVTZXJ2aWNlXHJcbiAgICAgIC5nZXRBbGxNb2R1bGVzKClcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuZXh0OiAodmFsdWVzOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzICYmIEFycmF5LmlzQXJyYXkodmFsdWVzKSAmJiB2YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubW9kdWxlcyA9IHZhbHVlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gIH1cclxufVxyXG4iLCI8dHNpLWZvcm0gY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAob25TdWJtaXQpPVwic2F2ZSgpXCI+XHJcbiAgICA8aDQ+XHJcbiAgICAgICAgPFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInTm91dmVhdSBSYXBwb3J0J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgPC9oND5cclxuICAgIDxwLXBhbmVsIGhlYWRlcj1cIkluZm9ybWF0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIFwiPlxyXG4gICAgICAgICAgICA8IS0tIFR5cGUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfdHlwZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbZGlzYWJsZWRdPVwidGhpcy5tb2RlICE9PSBtb2Rlcy5jcmVhdGVcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwicmVwb3J0LnJlcG9ydFR5cGVcIiBbZGF0YXNvdXJjZV09XCJkYXRhU291cmNlXCI+XHJcbiAgICAgICAgICAgICAgICA8L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIE5vbSBkdSByYXBwb3J0IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3JlcG9ydE5hbWVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidyZXBvcnROYW1lJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LnJlcG9ydE5hbWVcIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gTm9tIGFicsOpZ8OpIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3JlcG9ydE5hbWVBYnJlZ2VcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidyZXBvcnROYW1lQWJyZWdlJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LnJlcG9ydE5hbWVBYnJlZ2VcIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIE9yZHJlIGRlIHRyaSAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00IHctNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3RyaU9yZHJlXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRzaS1JbnRlZ2VyIFtpbnB1dE5hbWVdPVwiJ3RyaU9yZHJlJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LnRyaU9yZHJlXCI+PC9Uc2ktSW50ZWdlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBBZmZpY2hlciBkYXNoYm9hcmQgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCB3LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9kaXNwbGF5XCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRzaS1DaGVja0JveCBbaW5wdXROYW1lXT1cIidkaXNwbGF5J1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmRpc3BsYXlcIj48L1RzaS1DaGVja0JveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBNb2R1bGUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfTW9kdWxlXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvIGlkLWZpZWxkPVwiY29kZVwiIGxhYmVsLWZpZWxkPVwibGliZWxsZVwiIFttdWx0aXBsZV09XCJmYWxzZVwiIFsoYmluZCldPVwicmVwb3J0Lm1vZHVsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFzb3VyY2VdPVwibW9kdWxlc1wiIFtpc0ZpbHRlcmVkXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICA8L1RzaS1TZWFyY2gtQ29tYm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIERldXhpw6ltZSBJbXByZXNzIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX2ltcHByZXNzXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXROYW1lXT1cIidpbXBwcmVzcydcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5pbXByZXNzXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEVkaXRpb24gdW5pcXVlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgY29sLWZvcm0tbGFiZWwgZmx4XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUNoZWNrQm94IFtpbnB1dE5hbWVdPVwiJ0VkaXRpb25VbmlxdWUnXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQuZWRpdGlvblVuaXF1ZVwiPjwvVHNpLUNoZWNrQm94PiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfRWRpdGlvblVuaXF1ZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBFbmRwb2ludCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9lbmRwb2ludFwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAqbmdJZj1cIiFpc1JlcG9ydEZvckZpY2hlICYmICFlbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50c1wiIGlkLWZpZWxkPVwia2V5XCIgbGFiZWwtZmllbGQ9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVzLmVkaXQgPT09IG1vZGUgfHwgaXNFZGl0aW9uUGVyc29ubmFsaXNlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGFiZWxDaGFuZ2UpPVwic2VsZWN0ZWRFbmRwb2ludENoYW5nZSgkZXZlbnQpXCIgWyhiaW5kKV09XCJyZXBvcnQuZW5kUG9pbnRLZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlbGVtZW50U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFwaUFzS2V5VmFsdWVQYWlyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyKClcIiBbaXNGaWx0ZXJlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L1RzaS1TZWFyY2gtQ29tYm8+XHJcblxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCJjdXN0b21SZXBvcnRpbmdNb2RlICYmICFlbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cyBcIiBpZC1maWVsZD1cInZhbHVlXCIgbGFiZWwtZmllbGQ9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGFiZWxDaGFuZ2UpPVwic2VsZWN0ZWRFbmRwb2ludENoYW5nZSgkZXZlbnQpXCIgWyhiaW5kKV09XCJyZXBvcnQuZW5kUG9pbnRLZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyQnlCdXNpbmVzc0NsYXNzTmFtZSh0aGlzLnJlcG9ydEJ1c2luZXNzQ2xhc3MpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvICpuZ0lmPVwiaXNSZXBvcnRGb3JGaWNoZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQtZmllbGQ9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwtZmllbGQ9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhiaW5kKV09XCJzZWxlY3RlZEVuZHBvaW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xpc3RTb3VyY2VVcmxdPVwiYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0QWxsQXBpQXNLZXlWYWx1ZVBhaXJCeUJ1c2luZXNzQ2xhc3NOYW1lKHRoaXMucmVwb3J0QnVzaW5lc3NDbGFzcylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0ZpbHRlcmVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTGFiZWxDaGFuZ2UpPVwic2VsZWN0ZWRFbmRwb2ludENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L1RzaS1TZWFyY2gtQ29tYm8+XHJcblxyXG4gICAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3QgKm5nSWY9XCIhaXNSZXBvcnRGb3JGaWNoZSAmJiBlbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50c1wiIFtvcHRpb25zXT1cImVuZHBvaW50c09wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRW5kcG9pbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zTGFiZWw9XCJ7MH0ge3sgJ2VuZHBvaW50X3NlbGVjdGVkJyB8IGxvY2FsaXplIH19XCIgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cInsnbWluLXdpZHRoJzogJzE4MHB4J31cIiBwbGFjZWhvbGRlcj1cInt7ICdzaGFyZWRfcmVwb3J0aW5nX2Nob29zZV9lbmRwb2ludHMnIHwgbG9jYWxpemUgfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblBhbmVsU2hvdyk9XCJoYW5kbGVPcGVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uRmlsdGVyKT1cIm9uRmlsdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk9XCJjaGlwXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdW5kZWQtbXVsdGlzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbiBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLnZhbHVlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3AtbXVsdGlTZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZm9ybU5hbWVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbZGlzYWJsZWRdPVwidHJ1ZVwiIFtpbnB1dE5hbWVdPVwiJ2Zvcm1OYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQuZm9ybU5hbWVcIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gUGFyYW0gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0dldEJ5SWRSZXF1ZXN0XCIgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfcGFyYW1cIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0dldEJ5SWRSZXF1ZXN0XCIgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidwYXJhbSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5wYXJhbVwiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvcC1wYW5lbD5cclxuICAgIDxiciAvPlxyXG4gICAgPHAtcGFuZWwgaGVhZGVyPVwiQ29uZmlndXJhdGlvbiBQaXZvdCBHcmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgXCI+XHJcbiAgICAgICAgICAgIDwhLS0gQ2xhc3Mgb3IgdmlldyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidDbGFzcyBvciB2aWV3J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVRleHQtQm94IFtpbnB1dE5hbWVdPVwiJ2RkZGQnXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFF1ZXJ5IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ1F1ZXJ5J1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05IGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVRleHQtQXJlYSBbcm93c109XCIyXCI+PC9Uc2ktVGV4dC1BcmVhPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvcC1wYW5lbD5cclxuXHJcbiAgICA8VHNpLU1vZGFsLUZvb3RlciBbY2FuY2VsRGlzYWJsZWRdPVwic2F2aW5nXCIgW3NhdmVEaXNhYmxlZF09XCJzYXZpbmdcIiAob25DYW5jZWxDbGljayk9XCJoaWRlKClcIiBcclxuICAgIFtzaG93U2F2ZUFuZENsb3NlQnV0dG9uXT1cImZhbHNlXCI+PC9Uc2ktTW9kYWwtRm9vdGVyPlxyXG48L3RzaS1mb3JtPiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvbWFuYWdlLXJlcG9ydGluZy9hZGQtcmVwb3J0LXBvcHVwL2FkZC1yZXBvcnQtcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1yZXBvcnRpbmcvYWRkLXJlcG9ydC1wb3B1cC9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFxQnhFLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUM7ZUFDcEQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQztlQUN4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SSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUNBLENBQUM7SUFFTixDQUFDO0lBRUQsc0JBQXNCLENBQUMsYUFBa0I7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxzQkFBc0I7YUFDeEIsYUFBYSxFQUFFO2FBQ2YsU0FBUyxDQUNSO1lBQ0UsSUFBSSxFQUFFLENBQUMsTUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FDRixDQUFBO0lBQ0wsQ0FBQzsrR0F4TlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0NBRnZCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDbEI5Qixpa1FBa0pXOzs0RkQ5SEUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IFRzaVJlcG9ydFR5cGUsIE1vZGVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhc2hib2FyZE1vZHVsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnRpbmcvZGFzaGJvYXJkLW1vZHVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVwb3J0aW5nL3JlcG9ydGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHNpTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi90c2ktbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUc2lDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL3RzaS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtcmVwb3J0LXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogWy4uLmFwcFByb3ZpZGVyc11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlcG9ydFBvcHVwQ29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhU291cmNlOiB7IGtleTogVHNpUmVwb3J0VHlwZSwgdmFsdWU6IHN0cmluZyB9W10gPSBbXHJcbiAgICB7IGtleTogVHNpUmVwb3J0VHlwZS5MaXN0LCB2YWx1ZTogXCJFbmQgdXNlciByZXBvcnRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuRGFzaGJvYXJkLCB2YWx1ZTogXCJEYXNoYm9hcmRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuUlRGLCB2YWx1ZTogXCJSVEZcIiB9XHJcbiAgXTtcclxuXHJcbiAgaXNHZXRCeUlkUmVxdWVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vZGVzID0gTW9kZXM7XHJcbiAgaXNFZGl0aW9uUGVyc29ubmFsaXNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWRtaW5pc3RyYXRpb25FbmRwb2ludHMgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cztcclxuICByZXBvcnRCdXNpbmVzc0NsYXNzPzogc3RyaW5nXHJcbiAgY3VzdG9tUmVwb3J0aW5nTW9kZT86IGJvb2xlYW5cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludHM6IGFueVtdID0gW11cclxuICBlbmRwb2ludHNPcHRpb25zOiBhbnlbXSA9IFtdXHJcbiAgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHM6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBwcml2YXRlIF9pc1JlcG9ydEZvckZpY2hlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc1JlcG9ydEZvckZpY2hlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKCdlZGl0aW9uLXBlcnNvbmFsaXNlZScpXHJcbiAgICAgICYmICF0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnQ/LmluY2x1ZGVzKFwiZ2V0YWxscGFnZWRcIilcclxuICAgICAgJiYgdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50ICE9IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgcmVwb3J0ID0ge1xyXG4gICAgcmVwb3J0VHlwZTogJycsXHJcbiAgICByZXBvcnROYW1lOiAnJyxcclxuICAgIHJlcG9ydE5hbWVBYnJlZ2U6ICcnLFxyXG4gICAgdHJpT3JkcmU6IDAsXHJcbiAgICBtb2R1bGU6ICcnLFxyXG4gICAgaW1wcmVzczogJycsXHJcbiAgICBlZGl0aW9uVW5pcXVlOiBmYWxzZSxcclxuICAgIGVuZFBvaW50S2V5OiAnJyxcclxuICAgIGVuZFBvaW50VmFsdWU6ICcnLFxyXG4gICAgcGFyYW06ICcnLFxyXG4gICAgZm9ybU5hbWU6ICcnLFxyXG4gICAgZGlzcGxheTogZmFsc2UsXHJcbiAgfVxyXG5cclxuICBtb2R1bGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSByZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgcmVwb3J0aW5nU2VydmljZTogUmVwb3J0aW5nU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhc2hib2FyZE1vZHVsZVNlcnZpY2U6IERhc2hib2FyZE1vZHVsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maXJtOiBUc2lDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVuYWJsZU11bHRpU2VsZWN0RW5kcG9pbnRzID0gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnZWRpdGlvbi1wZXJzb25hbGlzZWUnKSB8fCB0aGlzLmlzUmVwb3J0Rm9yRmljaGU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEudmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCI+Pj4gdGhpcy5jb25maWcuZGF0YTogXCIsIHRoaXMuY29uZmlnLmRhdGEpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5yZXBvcnRUeXBlO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5uYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQubW9kdWxlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5tb2R1bGU7XHJcbiAgICAgIHRoaXMucmVwb3J0LnRyaU9yZHJlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5vcmRlcjtcclxuICAgICAgdGhpcy5yZXBvcnQuZm9ybU5hbWUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmZvcm1OYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lQWJyZWdlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5zaG9ydE5hbWU7XHJcbiAgICAgIHRoaXMucmVwb3J0LmRpc3BsYXkgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmRpc3BsYXk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5XHJcbiAgICAgICAgICA/IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5LnNwbGl0KCc7JykubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRW5kcG9pbnRzID0gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXlcclxuICAgICAgICAgID8gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkuc3BsaXQoJzsnKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVwb3J0QnVzaW5lc3NDbGFzcyA9IHRoaXMuY29uZmlnLmRhdGE/LnJlcG9ydEJ1c2luZXNzQ2xhc3NcclxuICAgIHRoaXMuY3VzdG9tUmVwb3J0aW5nTW9kZSA9IHRoaXMuY29uZmlnLmRhdGE/LmN1c3RvbVJlcG9ydGluZ01vZGVcclxuXHJcbiAgICBpZiAodGhpcy5jdXN0b21SZXBvcnRpbmdNb2RlKSB7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50VmFsdWUgPSB0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnRcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGE/LmZyb21FbmRwb2ludCAmJiAhdGhpcy5pc1JlcG9ydEZvckZpY2hlICYmICF0aGlzLmN1c3RvbVJlcG9ydGluZ01vZGUgJiYgIXRoaXMuZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHMpIHtcclxuICAgICAgdGhpcy5yZXBvcnRpbmdTZXJ2aWNlLmdldEFwaUFzS2V5VmFsdWVCeVZhbHVlKGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNvbmZpZy5kYXRhLmZyb21FbmRwb2ludCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpXHJcbiAgICAgICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHJlc1swXT8ua2V5O1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHJlc1swXT8udmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZGUgPSB0aGlzLmNvbmZpZy5kYXRhLm1vZGVcclxuICAgIHRoaXMuaXNFZGl0aW9uUGVyc29ubmFsaXNlID0gdGhpcy5jb25maWcuZGF0YS5pc0VkaXRpb25QZXJzb25uYWxpc2VcclxuICAgIGNvbnNvbGUubG9nKHRoaXMubW9kZSlcclxuXHJcbiAgICB0aGlzLmFsbG93U2F2ZVdpdGhvdXRDaGFuZ2VzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmdldEFsbE1vZHVsZXMoKTtcclxuICB9XHJcblxyXG4gIHJlcG9ydFR5cGVDaGFuZ2UoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGV2dClcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhbmRsZU9wZW4oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5faHR0cENsaWVudC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgZW5jb2RlVVJJKHRoaXMuYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0QWxsQXBpQXNLZXlWYWx1ZVBhaXIoKSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4uIHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKSxcclxuICAgICAgLi4udGhpcy5lbmRwb2ludHNPcHRpb25zXVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBlbmRwb2ludHM6JywgZXJyb3IpO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2dlbmVyYXRlSHR0cFBhcmFtcyhldmVudD8uZmlsdGVyKTtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLl9odHRwQ2xpZW50LmdldDxhbnlbXT4oXHJcbiAgICAgICAgICBlbmNvZGVVUkkodGhpcy5hZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpKSxcclxuICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZEVuZHBvaW50cy5tYXAoeCA9PiAoeyBsYWJlbDogeCwgdmFsdWU6IHggfSkpLCAuLi50aGlzLmVuZHBvaW50c09wdGlvbnNdXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGVuZHBvaW50czonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dlbmVyYXRlSHR0cFBhcmFtcyhmaWx0ZXI/OiBzdHJpbmcpOiBIdHRwUGFyYW1zIHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKGZpbHRlcikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2YWx1ZScsIGZpbHRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMuam9pbignOycpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gdGhpcy5zZWxlY3RlZEVuZHBvaW50cy5qb2luKCc7Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIuc2F2ZSgpXHJcbiAgICBcclxuICAgIGlmICh0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID09PSAnJykge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uud2FybihcInNoYXJlZF9yZXBvcnRpbmdfcmVwb3J0X3R5cGVfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMucmVwb3J0LnJlcG9ydE5hbWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfbmFtZV9yZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc0VkaXRpb25QZXJzb25uYWxpc2UgJiYgdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfZW5kcG9pbnRfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jb25maXJtXHJcbiAgICAgIC5jb25maXJtKHRoaXMubCgnc2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfY29uZmlybVJlZGlyZWN0aW9uJyksIHVuZGVmaW5lZCwgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KHRydWUpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0aGlzLnJlcG9ydCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSk7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodGhpcy5yZXBvcnQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludENoYW5nZShlbmRwb2ludFZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVwb3J0KVxyXG4gICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IGVuZHBvaW50VmFsdWU7XHJcbiAgICB0aGlzLmlzR2V0QnlJZFJlcXVlc3QgPSBlbmRwb2ludFZhbHVlLmluY2x1ZGVzKFwie2lkfVwiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWxsTW9kdWxlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkTW9kdWxlU2VydmljZVxyXG4gICAgICAuZ2V0QWxsTW9kdWxlcygpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmV4dDogKHZhbHVlczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlcykgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZHVsZXMgPSB2YWx1ZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICB9XHJcbn1cclxuIiwiPHRzaS1mb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKG9uU3VibWl0KT1cInNhdmUoKVwiPlxyXG4gICAgPGg0PlxyXG4gICAgICAgIDxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ05vdXZlYXUgUmFwcG9ydCdcIj48L1RzaS1MYWJlbD5cclxuICAgIDwvaDQ+XHJcbiAgICA8cC1wYW5lbCBoZWFkZXI9XCJJbmZvcm1hdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBcIj5cclxuICAgICAgICAgICAgPCEtLSBUeXBlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3R5cGVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gW2Rpc2FibGVkXT1cInRoaXMubW9kZSAhPT0gbW9kZXMuY3JlYXRlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cInJlcG9ydC5yZXBvcnRUeXBlXCIgW2RhdGFzb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBOb20gZHUgcmFwcG9ydCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIE5vbSBhYnLDqWfDqSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZUFicmVnZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBPcmRyZSBkZSB0cmkgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCB3LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV90cmlPcmRyZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIid0cmlPcmRyZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC50cmlPcmRyZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWZmaWNoZXIgZGFzaGJvYXJkIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgdy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZGlzcGxheVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktQ2hlY2tCb3ggW2lucHV0TmFtZV09XCInZGlzcGxheSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5kaXNwbGF5XCI+PC9Uc2ktQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gTW9kdWxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX01vZHVsZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBpZC1maWVsZD1cImNvZGVcIiBsYWJlbC1maWVsZD1cImxpYmVsbGVcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIiBbKGJpbmQpXT1cInJlcG9ydC5tb2R1bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhc291cmNlXT1cIm1vZHVsZXNcIiBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBEZXV4acOpbWUgSW1wcmVzcyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9pbXBwcmVzc1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVRleHQtQm94IFtkaXNhYmxlZF09XCJ0cnVlXCIgW2lucHV0TmFtZV09XCInaW1wcHJlc3MnXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQuaW1wcmVzc1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBFZGl0aW9uIHVuaXF1ZSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IGNvbC1mb3JtLWxhYmVsIGZseFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1DaGVja0JveCBbaW5wdXROYW1lXT1cIidFZGl0aW9uVW5pcXVlJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmVkaXRpb25VbmlxdWVcIj48L1RzaS1DaGVja0JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX0VkaXRpb25VbmlxdWVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRW5kcG9pbnQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZW5kcG9pbnRcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCIhaXNSZXBvcnRGb3JGaWNoZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2Rlcy5lZGl0ID09PSBtb2RlIHx8IGlzRWRpdGlvblBlcnNvbm5hbGlzZSA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbZWxlbWVudFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBcGlBc0tleVZhbHVlUGFpcigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpXCIgW2lzRmlsdGVyZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvICpuZ0lmPVwiY3VzdG9tUmVwb3J0aW5nTW9kZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHMgXCIgaWQtZmllbGQ9XCJ2YWx1ZVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpckJ5QnVzaW5lc3NDbGFzc05hbWUodGhpcy5yZXBvcnRCdXNpbmVzc0NsYXNzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzRmlsdGVyZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvVHNpLVNlYXJjaC1Db21ibz5cclxuXHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAqbmdJZj1cImlzUmVwb3J0Rm9yRmljaGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwic2VsZWN0ZWRFbmRwb2ludHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyQnlCdXNpbmVzc0NsYXNzTmFtZSh0aGlzLnJlcG9ydEJ1c2luZXNzQ2xhc3MpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0ICpuZ0lmPVwiIWlzUmVwb3J0Rm9yRmljaGUgJiYgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBbb3B0aW9uc109XCJlbmRwb2ludHNPcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZHBvaW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiezB9IHt7ICdlbmRwb2ludF9zZWxlY3RlZCcgfCBsb2NhbGl6ZSB9fVwiIG9wdGlvbkxhYmVsPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxODBweCd9XCIgcGxhY2Vob2xkZXI9XCJ7eyAnc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfZW5kcG9pbnRzJyB8IGxvY2FsaXplIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAob25QYW5lbFNob3cpPVwiaGFuZGxlT3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5PVwiY2hpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLW11bHRpc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi52YWx1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX2Zvcm1OYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXROYW1lXT1cIidmb3JtTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmZvcm1OYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFBhcmFtIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3BhcmFtXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncGFyYW0nXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQucGFyYW1cIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcbiAgICA8YnIgLz5cclxuICAgIDxwLXBhbmVsIGhlYWRlcj1cIkNvbmZpZ3VyYXRpb24gUGl2b3QgR3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIFwiPlxyXG4gICAgICAgICAgICA8IS0tIENsYXNzIG9yIHZpZXcgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInQ2xhc3Mgb3IgdmlldydcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidkZGRkJ1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBRdWVyeSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidRdWVyeSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUFyZWEgW3Jvd3NdPVwiMlwiPjwvVHNpLVRleHQtQXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcblxyXG4gICAgPFRzaS1Nb2RhbC1Gb290ZXIgW2NhbmNlbERpc2FibGVkXT1cInNhdmluZ1wiIFtzYXZlRGlzYWJsZWRdPVwic2F2aW5nXCIgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCIgXHJcbiAgICBbc2hvd1NhdmVBbmRDbG9zZUJ1dHRvbl09XCJmYWxzZVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuPC90c2ktZm9ybT4iXX0=
|
|
@@ -18270,7 +18270,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
18270
18270
|
|
|
18271
18271
|
class AddReportPopupComponent extends TsiFormComponentBaseComponent {
|
|
18272
18272
|
get isReportForFiche() {
|
|
18273
|
-
return !this.
|
|
18273
|
+
return !this._router.url.includes('edition-personalisee')
|
|
18274
|
+
&& !this.config.data?.fromEndpoint?.includes("getallpaged")
|
|
18275
|
+
&& this.config.data?.fromEndpoint != undefined;
|
|
18274
18276
|
}
|
|
18275
18277
|
constructor(ref, reportingService, config, notificationService, dashboardModuleService, _confirm, _httpClient, _router) {
|
|
18276
18278
|
super(ref, config);
|
|
@@ -18339,7 +18341,7 @@ class AddReportPopupComponent extends TsiFormComponentBaseComponent {
|
|
|
18339
18341
|
this.report.endPointKey = this.config.data?.fromEndpoint;
|
|
18340
18342
|
this.report.endPointValue = this.config.data?.fromEndpoint;
|
|
18341
18343
|
}
|
|
18342
|
-
if (this.config.data?.fromEndpoint && !this.isReportForFiche && !this.customReportingMode) {
|
|
18344
|
+
if (this.config.data?.fromEndpoint && !this.isReportForFiche && !this.customReportingMode && !this.enableMultiSelectEndpoints) {
|
|
18343
18345
|
this.reportingService.getApiAsKeyValueByValue(encodeURIComponent(this.config.data.fromEndpoint)).subscribe({
|
|
18344
18346
|
next: (res) => {
|
|
18345
18347
|
console.log(res);
|