nuxeo-development-framework 1.9.3 → 1.9.5
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/bundles/nuxeo-development-framework.umd.js +27 -15
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +19 -7
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +2 -2
- package/esm2015/lib/components/table/table/table.component.js +12 -11
- package/esm2015/lib/components/table/table.module.js +5 -4
- package/esm2015/lib/shared/components/spinner/spinner.component.js +1 -1
- package/fesm2015/nuxeo-development-framework.js +27 -15
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +2 -1
- package/lib/components/table/table.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -44,6 +44,7 @@ export class DynamicChartComponent {
|
|
|
44
44
|
this.combinedData = false;
|
|
45
45
|
this.card = false;
|
|
46
46
|
this.cardTitle = '';
|
|
47
|
+
this.isInternalActive = false; // used to control on showing results of internal coresp results in charts
|
|
47
48
|
Chart.defaults.global.defaultFontFamily = "FS Albert Arabic Web";
|
|
48
49
|
Chart.defaults.global.defaultFontSize = 13;
|
|
49
50
|
this.translate.onLangChange
|
|
@@ -254,11 +255,20 @@ export class DynamicChartComponent {
|
|
|
254
255
|
totalItems: data.totalSize,
|
|
255
256
|
};
|
|
256
257
|
}));
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
if (this.isInternalActive) {
|
|
259
|
+
return forkJoin([getOutgoing$, getIncoming$, getInternal$]).pipe(map((data) => {
|
|
260
|
+
let combinedData = [...data[0].data, ...data[1].data, ...data[2].data];
|
|
261
|
+
this.isFetching = false;
|
|
262
|
+
return combinedData;
|
|
263
|
+
}));
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
return forkJoin([getOutgoing$, getIncoming$]).pipe(map((data) => {
|
|
267
|
+
let combinedData = [...data[0].data, ...data[1].data];
|
|
268
|
+
this.isFetching = false;
|
|
269
|
+
return combinedData;
|
|
270
|
+
}));
|
|
271
|
+
}
|
|
262
272
|
}
|
|
263
273
|
previewCorrespondences() {
|
|
264
274
|
console.log("params", this.systemCurrentLifeCycleState);
|
|
@@ -308,7 +318,7 @@ export class DynamicChartComponent {
|
|
|
308
318
|
}
|
|
309
319
|
}
|
|
310
320
|
DynamicChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicChartComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i2.CallApiService }, { token: i3.Router }, { token: i4.ChartDataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
311
|
-
DynamicChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicChartComponent, selector: "cts-dynamic-chart", inputs: { prefix: "prefix", chartType: "chartType", randomColors: "randomColors", pageProvider: "pageProvider", headers: "headers", observable: "observable", aggregations: "aggregations", quickFilters: "quickFilters", systemCurrentLifeCycleState: "systemCurrentLifeCycleState", range: "range", label: "label", selectedRange: "selectedRange", colors: "colors", randomColor: "randomColor", fetchedKey: "fetchedKey", pageProviderTwo: "pageProviderTwo", quickFilterTwo: "quickFilterTwo", quickFilterThree: "quickFilterThree", combinedData: "combinedData", statusOne: "statusOne", statusTwo: "statusTwo", statusThree: "statusThree", min: "min", max: "max", width: "width", height: "height", card: "card", cardTitle: "cardTitle" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["revenueLineChart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-continer\" *ngIf=\"card; else test\">\r\n <div class=\"chart-card-header\">\r\n <div class=\"chart-card-title\">{{ cardTitle | translate }}</div>\r\n <button class=\"chart-card-button\" (click)=\"previewCorrespondences()\">\r\n {{ \"report.Preview\" | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"isFetching\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div class=\"stat\" [style.height.px]=\"height\">\r\n <div [hidden]=\"data.data?.length == 0 || data.length == 0\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n <div class=\"no-stats\" *ngIf=\"data.data?.length == 0 || data.length == 0\">\r\n <span>{{ \"STATS.noData\" | translate }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #test>\r\n <div class=\"stat\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n</ng-template>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.no-stats{width:100%;height:100%;display:grid;place-items:center}.card-continer{background:#ffffff;border-radius:5px;width:100%;padding:16px 20px;box-shadow:0 1px 1px #00000017}.card-continer .chart-card-header{display:flex;justify-content:space-between;align-items:center}.card-continer .chart-card-header .chart-card-title{font-weight:500}.card-continer .chart-card-header .chart-card-button{all:unset;background:#3341551a;color:#465573;padding:6px 18px;border-radius:24px;font-size:16px;cursor:pointer}.card-continer .chart-card-header .chart-card-button:hover{background:#8f98aa;color:#fff}\n"], components: [{ type: i5.SpinnerComponent, selector: "cts-spinner" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
321
|
+
DynamicChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicChartComponent, selector: "cts-dynamic-chart", inputs: { prefix: "prefix", chartType: "chartType", randomColors: "randomColors", pageProvider: "pageProvider", headers: "headers", observable: "observable", aggregations: "aggregations", quickFilters: "quickFilters", systemCurrentLifeCycleState: "systemCurrentLifeCycleState", range: "range", label: "label", selectedRange: "selectedRange", colors: "colors", randomColor: "randomColor", fetchedKey: "fetchedKey", pageProviderTwo: "pageProviderTwo", quickFilterTwo: "quickFilterTwo", quickFilterThree: "quickFilterThree", combinedData: "combinedData", statusOne: "statusOne", statusTwo: "statusTwo", statusThree: "statusThree", min: "min", max: "max", width: "width", height: "height", card: "card", cardTitle: "cardTitle", isInternalActive: "isInternalActive" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["revenueLineChart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-continer\" *ngIf=\"card; else test\">\r\n <div class=\"chart-card-header\">\r\n <div class=\"chart-card-title\">{{ cardTitle | translate }}</div>\r\n <button class=\"chart-card-button\" (click)=\"previewCorrespondences()\">\r\n {{ \"report.Preview\" | translate }}\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"isFetching\">\r\n <cts-spinner></cts-spinner>\r\n </ng-container>\r\n <div class=\"stat\" [style.height.px]=\"height\">\r\n <div [hidden]=\"data.data?.length == 0 || data.length == 0\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n <div class=\"no-stats\" *ngIf=\"data.data?.length == 0 || data.length == 0\">\r\n <span>{{ \"STATS.noData\" | translate }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #test>\r\n <div class=\"stat\">\r\n <canvas #revenueLineChart [height]=\"height\" [width]=\"width\"></canvas>\r\n </div>\r\n</ng-template>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.no-stats{width:100%;height:100%;display:grid;place-items:center}.card-continer{background:#ffffff;border-radius:5px;width:100%;padding:16px 20px;box-shadow:0 1px 1px #00000017}.card-continer .chart-card-header{display:flex;justify-content:space-between;align-items:center}.card-continer .chart-card-header .chart-card-title{font-weight:500}.card-continer .chart-card-header .chart-card-button{all:unset;background:#3341551a;color:#465573;padding:6px 18px;border-radius:24px;font-size:16px;cursor:pointer}.card-continer .chart-card-header .chart-card-button:hover{background:#8f98aa;color:#fff}\n"], components: [{ type: i5.SpinnerComponent, selector: "cts-spinner" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
312
322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicChartComponent, decorators: [{
|
|
313
323
|
type: Component,
|
|
314
324
|
args: [{
|
|
@@ -375,5 +385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
375
385
|
type: Input
|
|
376
386
|
}], cardTitle: [{
|
|
377
387
|
type: Input
|
|
388
|
+
}], isInternalActive: [{
|
|
389
|
+
type: Input
|
|
378
390
|
}] } });
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtY2hhcnQvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0L2R5bmFtaWMtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUtMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBYyxPQUFPLEVBQWlCLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBQy9CLGNBQWM7QUFNZCxNQUFNLE9BQU8scUJBQXFCO0lBZ0VoQyxZQUNTLFNBQTJCLEVBQzNCLGNBQWlDLEVBQ2hDLE9BQXVCLEVBQVMsTUFBYyxFQUMvQyxTQUEyQjtRQUgzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQy9DLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBakVwQyxXQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsa0JBQWtCO1FBRzVCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRS9CLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBRXZCLFlBQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUI7UUFLckMsVUFBSyxHQUFHLHdCQUF3QixDQUFDO1FBRzFDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMseUJBQXlCO1FBQ3hDLFdBQU0sR0FBUTtZQUNyQixVQUFVLEVBQUUsU0FBUztZQUNyQixVQUFVLEVBQUUsU0FBUztZQUNyQixLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsU0FBUztZQUNuQixNQUFNLEVBQUUsU0FBUztZQUNqQixRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDO1FBQ0YsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFVN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFnQnJCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFYixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBUWIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7UUFDakUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFOztnQkFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUN6QixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FDOUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQ2YsRUFBRSxFQUNGLEVBQUUsQ0FDSCxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUM3RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUM1RCxJQUFJLEVBQUUsSUFBSTtvQkFDVixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtpQkFDcEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sS0FBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztxQkFDekM7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDeEI7aUJBQ0Y7cUJBQU07b0JBQ0wseURBQXlEO29CQUN6RCxvQkFBb0I7b0JBQ3BCLHdCQUF3QjtvQkFDeEIsWUFBWTtvQkFDWixvQkFBb0I7b0JBQ3BCLE9BQU87b0JBQ1AsaUJBQWlCO29CQUNqQixLQUFLO29CQUNMLDZDQUE2QztvQkFDN0MsaUNBQWlDO2lCQUNsQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUssUUFBUTs7WUFDWixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUNELFdBQVcsQ0FBQyxPQUFzQjs7UUFDaEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUEsTUFBQSxPQUFPLENBQUMsR0FBRywwQ0FBRSxXQUFXLENBQUEsQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxHQUFHLDBDQUFFLFdBQVcsQ0FBQSxDQUFDO1FBQzVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFBLE1BQUEsT0FBTyxDQUFDLEtBQUssMENBQUUsV0FBVyxDQUFBLENBQUM7UUFDbEUsSUFBSSxVQUFVLElBQUksVUFBVSxJQUFJLFlBQVksRUFBRTtZQUM1QyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN6QixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTztpQkFDaEIsS0FBSyxDQUNKO2dCQUNFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2xDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0Isc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2hDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNoQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUM1QyxJQUFJLENBQUMsMkJBQTJCLENBQ2pDO2FBQ0YsRUFDRDtnQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEIsQ0FDRjtpQkFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTztvQkFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTs0QkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7NEJBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRzt3QkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7cUJBQ3JCLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixPQUFPO29CQUNMLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztpQkFDM0IsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxlQUFlLENBQ2IsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXO1FBRVgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDOUIsS0FBSyxDQUNKO1lBQ0UsWUFBWSxFQUFFLGVBQWU7WUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVEsRUFBRSxDQUFDO1lBQ1gsc0JBQXNCLEVBQUUsYUFBYTtZQUNyQyxZQUFZLEVBQUUsY0FBYztZQUM1QixzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNoQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNoQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUM1QyxJQUFJLENBQUMsMkJBQTJCLENBQ2pDO1NBQ0YsRUFDRDtZQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUNGO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTztnQkFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTt3QkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3BCLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDWixNQUFNLEVBQUUsU0FBUztvQkFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzNCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDOUIsS0FBSyxDQUNKO1lBQ0UsWUFBWSxFQUFFLGVBQWU7WUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVEsRUFBRSxDQUFDO1lBQ1gsc0JBQXNCLEVBQUUsYUFBYTtZQUNyQyxZQUFZLEVBQUUsY0FBYztZQUM1QixzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNoQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNoQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUM1QyxJQUFJLENBQUMsMkJBQTJCLENBQ2pDO1NBQ0YsRUFDRDtZQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUNGO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTztnQkFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTt3QkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3BCLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDWixNQUFNLEVBQUUsU0FBUztvQkFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzNCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEMsS0FBSyxDQUNKO1lBQ0UsWUFBWSxFQUFFLGVBQWU7WUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVEsRUFBRSxDQUFDO1lBQ1gsc0JBQXNCLEVBQUUsYUFBYTtZQUNyQyxZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLHNCQUFzQixFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2hDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2hDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQzVDLElBQUksQ0FBQywyQkFBMkIsQ0FDakM7U0FDRixFQUNEO1lBQ0UsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3RCLENBQ0Y7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPO2dCQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUQsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVO3dCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDcEIsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHO29CQUNaLE1BQU0sRUFBRSxXQUFXO29CQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQzNCLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsT0FBTztnQkFDTCxJQUFJLEVBQUUsS0FBSztnQkFDWCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVM7YUFDM0IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixPQUFPLFFBQVEsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBQ3RELElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixXQUFXLEdBQUc7Z0JBQ1osWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDdkMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtnQkFDN0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRzthQUNkLENBQUM7U0FDSDthQUFNO1lBQ0wsV0FBVyxHQUFHO2dCQUNaLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQiwyQkFBMkIsRUFBRSxJQUFJLENBQUMsMkJBQTJCO2dCQUM3RCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2FBQ2QsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLEVBQUU7WUFDaEQsV0FBVyxFQUFFLFdBQVc7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNuQixPQUFPLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsRCxDQUFDOztrSEE5WFUscUJBQXFCO3NHQUFyQixxQkFBcUIsKzRCQzNCbEMsaStCQTBCQTsyRkRDYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7aUJBQzlDO3dOQUVtRCxLQUFLO3NCQUF0RCxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFaEQsTUFBTTtzQkFETCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVOLGFBQWE7c0JBRFosS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBY04sV0FBVztzQkFEVixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04sR0FBRztzQkFERixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSBcImNoYXJ0LmpzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgLCBTdWJzY3JpcHRpb24sIGZvcmtKb2lufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL0NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXJ0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY2hhcnQtZGF0YS5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0ICdjaGFydGpzLXBsdWdpbi1waWVjaGFydC1vdXRsYWJlbHMnO1xyXG5pbXBvcnQgJ2NoYXJ0anMtcGx1Z2luLWxhYmVscyc7XHJcbi8qKiBAaWdub3JlICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImN0cy1keW5hbWljLWNoYXJ0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9keW5hbWljLWNoYXJ0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtY2hhcnQuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ2hhcnRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgncmV2ZW51ZUxpbmVDaGFydCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjaGFydDogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKVxyXG4gIHByZWZpeCA9ICdTVEFUUy4nOyAvLyBmb3IgdHJhbnNsYXRpb25cclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZTsgLy8gZnVuY3Rpb25zIGV4aXN0IGluc2lkZSBDaGFydERhdGFTZXJ2aWNlXHJcbiAgQElucHV0KCkgcmFuZG9tQ29sb3JzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjaGFydE9iajtcclxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNyZWF0Q2hhcnQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgQElucHV0KCkgcGFnZVByb3ZpZGVyOyAvLyBkZWZpbmUgYXBpIHRvIGdldCB0aGUgZGF0YSBmcm9tXHJcbiAgQElucHV0KCkgaGVhZGVycyA9IHt9OyAvLyBoZWFkZXJzIGluIGNvbnN0YW50c1xyXG4gIEBJbnB1dCgpIG9ic2VydmFibGU7IC8vIG9ic2VydmFibGUgaW4gY2FzZSBvZiBjYWxsIGFwaSBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnRcclxuICBASW5wdXQoKSBhZ2dyZWdhdGlvbnM7XHJcbiAgQElucHV0KCkgcXVpY2tGaWx0ZXJzO1xyXG4gIEBJbnB1dCgpIHN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZTtcclxuICBASW5wdXQoKSByYW5nZSA9ICdbXCJmcm9tX25vdy03ZF90b19ub3dcIl0nO1xyXG4gIEBJbnB1dCgpIGxhYmVsO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRSYW5nZSA9IFwid2Vla1wiOyAvLyByYW5nZSB0byBiZSBmaWx0ZXJkIG9uXHJcbiAgQElucHV0KCkgY29sb3JzOiBhbnkgPSB7XHJcbiAgICBpblByb2dyZXNzOiAnIzNjM2NmMCcsXHJcbiAgICByZWdpc3RlcmVkOiAnIzVhMTQ5NicsXHJcbiAgICBkcmFmdDogJyM1OTY5NzMnLFxyXG4gICAgYXJjaGl2ZWQ6ICcjZmJiNjJjJyxcclxuICAgIGNsb3NlZDogJyMwMGRjYTUnLFxyXG4gICAgYXNzaWduZWQ6ICcjZmQ2NjcwJyxcclxuICAgIHVuZGVmaW5lZDogJyNmN2Y4ZjknLFxyXG4gICAgb3RoZXI6ICcjZjE3MjA1JyxcclxuICB9O1xyXG4gIGRhdGE6IGFueSA9IFtdO1xyXG4gIGlzRmV0Y2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGFydHM6IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcmFuZG9tQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIGZldGNoZWRLZXk7XHJcbiAgQElucHV0KClcclxuICBwYWdlUHJvdmlkZXJUd287XHJcbiAgQElucHV0KClcclxuICBxdWlja0ZpbHRlclR3bztcclxuICBASW5wdXQoKVxyXG4gIHF1aWNrRmlsdGVyVGhyZWU7XHJcbiAgQElucHV0KClcclxuICBjb21iaW5lZERhdGEgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c09uZTtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c1R3bztcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c1RocmVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgbWluO1xyXG4gIEBJbnB1dCgpXHJcbiAgbWF4O1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ7XHJcbiAgQElucHV0KClcclxuICBjYXJkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjYXJkVGl0bGUgPSAnJztcclxuICBteURhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBjYWxsQXBpOiBDYWxsQXBpU2VydmljZSxwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGNoYXJ0RGF0YTogQ2hhcnREYXRhU2VydmljZVxyXG4gICkge1xyXG4gICAgQ2hhcnQuZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRGb250RmFtaWx5ID0gXCJGUyBBbGJlcnQgQXJhYmljIFdlYlwiO1xyXG4gICAgQ2hhcnQuZGVmYXVsdHMuZ2xvYmFsLmRlZmF1bHRGb250U2l6ZSA9IDEzO1xyXG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdENoYXJ0Lm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGNyZWF0ZUNoYXJ0KCkge1xyXG4gICAgdGhpcy5jcmVhdENoYXJ0LnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YSgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgbGV0IHJhbmRvbUNvbG9ycyA9IHt9O1xyXG4gICAgICAgIGlmICh0aGlzLnJhbmRvbUNvbG9ycykge1xyXG4gICAgICAgICAgZGF0YS5kYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgcmFuZG9tQ29sb3JzW2l0ZW0ubGFiZWxdID0gdGhpcy5zdHJpbmdUb0hzbENvbG9yKFxyXG4gICAgICAgICAgICAgIGAke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgICA0MCxcclxuICAgICAgICAgICAgICA3MFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29sb3JzID0gdGhpcy5yYW5kb21Db2xvcnMgPyByYW5kb21Db2xvcnMgOiB0aGlzLmNvbG9ycztcclxuICAgICAgICBjb25zdCB7IG9wdGlvbnMsIGNoYXJ0RGF0YSB9ID0gdGhpcy5jaGFydERhdGFbdGhpcy5jaGFydFR5cGVdKHtcclxuICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgICBjb2xvcnM6IHRoaXMuY29sb3JzLFxyXG4gICAgICAgICAgcHJlZml4OiB0aGlzLnByZWZpeCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZGF0YS5kYXRhPy5sZW5ndGggfHwgZGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5jaGFydE9iaikge1xyXG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLmNoYXJ0Lm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFydE9iaiA9IG5ldyBDaGFydChjdHgsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGFydE9iai5jaGFydC5kYXRhID0gY2hhcnREYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0T2JqLnVwZGF0ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBjb25zdCBjdHggPSB0aGlzLmNoYXJ0Lm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICAgIC8vIGxldCBub09wdGlvbnMgPSB7XHJcbiAgICAgICAgICAvLyAgIHR5cGU6IG9wdGlvbnMudHlwZSxcclxuICAgICAgICAgIC8vICAgZGF0YToge1xyXG4gICAgICAgICAgLy8gICAgIGRhdGFzZXRzOiBbXSxcclxuICAgICAgICAgIC8vICAgfSxcclxuICAgICAgICAgIC8vICAgb3B0aW9uczoge30sXHJcbiAgICAgICAgICAvLyB9O1xyXG4gICAgICAgICAgLy8gdGhpcy5jaGFydE9iaiA9IG5ldyBDaGFydChjdHgsIG5vT3B0aW9ucyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmNoYXJ0T2JqLmNoYXJ0LmRhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdGF0cygpIHtcclxuICAgIHRoaXMuY3JlYXRlQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY3JlYXRlQ2hhcnQoKTtcclxuICAgICAgdGhpcy5jcmVhdENoYXJ0Lm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCBtaW5DaGFuZ2VkID0gY2hhbmdlcy5taW4gJiYgIWNoYW5nZXMubWluPy5maXJzdENoYW5nZTtcclxuICAgIGNvbnN0IG1heENoYW5nZWQgPSBjaGFuZ2VzLm1heCAmJiAhY2hhbmdlcy5tYXg/LmZpcnN0Q2hhbmdlO1xyXG4gICAgY29uc3QgcmFuZ2VDaGFuZ2VkID0gY2hhbmdlcy5yYW5nZSAmJiAhY2hhbmdlcy5yYW5nZT8uZmlyc3RDaGFuZ2U7XHJcbiAgICBpZiAobWluQ2hhbmdlZCB8fCBtYXhDaGFuZ2VkIHx8IHJhbmdlQ2hhbmdlZCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNyZWF0Q2hhcnQubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLm15RGF0YVN1YnNjcmlwdGlvbiA/IHRoaXMubXlEYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiAnJztcclxuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmNyZWF0Q2hhcnQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgZ2V0RGF0YSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5pc0ZldGNoaW5nID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbWJpbmVkRGF0YSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDb21iaW5lZERhdGEoXHJcbiAgICAgICAgdGhpcy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgdGhpcy5xdWlja0ZpbHRlcnMsXHJcbiAgICAgICAgdGhpcy5yYW5nZSxcclxuICAgICAgICB0aGlzLnBhZ2VQcm92aWRlclR3byxcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVyVHdvLFxyXG4gICAgICAgIHRoaXMucXVpY2tGaWx0ZXJUaHJlZSxcclxuICAgICAgICB0aGlzLnN0YXR1c09uZSxcclxuICAgICAgICB0aGlzLnN0YXR1c1R3byxcclxuICAgICAgICB0aGlzLnN0YXR1c1RocmVlXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYWxsQXBpXHJcbiAgICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBwYWdlUHJvdmlkZXI6IHRoaXMucGFnZVByb3ZpZGVyLFxyXG4gICAgICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiAxLFxyXG4gICAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfYWdnOiB0aGlzLnJhbmdlLFxyXG4gICAgICAgICAgICBxdWlja0ZpbHRlcnM6IHRoaXMucXVpY2tGaWx0ZXJzLFxyXG4gICAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWluOiB0aGlzLm1pbixcclxuICAgICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX21heDogdGhpcy5tYXgsXHJcbiAgICAgICAgICAgIHN5c3RlbV9jdXJyZW50TGlmZUN5Y2xlU3RhdGVfMzogSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAgICAgICAgdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGVcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0c1xyXG4gICAgICAgICAgICAgID8gZGF0YS5hZ2dyZWdhdGlvbnNbdGhpcy5hZ2dyZWdhdGlvbnNdLmJ1Y2tldHMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5mZXRjaGVkS2V5XHJcbiAgICAgICAgICAgICAgICAgICAgPyBfLmdldChpdGVtLCB0aGlzLmZldGNoZWRLZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgICAgY291bnQ6IGl0ZW0uZG9jQ291bnQsXHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgICA6IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBkYXRhOiBpdGVtcyxcclxuICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbWJpbmVkRGF0YShcclxuICAgIHBhZ2VQcm92aWRlck9uZSxcclxuICAgIHF1aWNrRmlsdGVyT25lLFxyXG4gICAgc2VsZWN0ZWRSYW5nZSxcclxuICAgIHBhZ2VQcm92aWRlclR3byxcclxuICAgIHF1aWNrRmlsdGVyVHdvLFxyXG4gICAgcXVpY2tGaWx0ZXJUaHJlZSxcclxuICAgIHN0YXR1c09uZSxcclxuICAgIHN0YXR1c1R3byxcclxuICAgIHN0YXR1c1RocmVlXHJcbiAgKSB7XHJcbiAgICBjb25zdCBnZXRPdXRnb2luZyQgPSB0aGlzLmNhbGxBcGlcclxuICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjogcGFnZVByb3ZpZGVyT25lLFxyXG4gICAgICAgICAgY3VycmVudFBhZ2VJbmRleDogMCxcclxuICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgIHBhZ2VTaXplOiAxLFxyXG4gICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX2FnZzogc2VsZWN0ZWRSYW5nZSxcclxuICAgICAgICAgIHF1aWNrRmlsdGVyczogcXVpY2tGaWx0ZXJPbmUsXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWluOiB0aGlzLm1pbixcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9tYXg6IHRoaXMubWF4LFxyXG4gICAgICAgICAgc3lzdGVtX2N1cnJlbnRMaWZlQ3ljbGVTdGF0ZV8zOiBKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGVcclxuICAgICAgICAgICksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0c1xyXG4gICAgICAgICAgICA/IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzLm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmZldGNoZWRLZXlcclxuICAgICAgICAgICAgICAgICAgPyBfLmdldChpdGVtLCB0aGlzLmZldGNoZWRLZXkpXHJcbiAgICAgICAgICAgICAgICAgIDogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICBjb3VudDogaXRlbS5kb2NDb3VudCxcclxuICAgICAgICAgICAgICAgIGlkOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIHN0YXR1czogc3RhdHVzT25lLFxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkYXRhOiBpdGVtcyxcclxuICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICBjb25zdCBnZXRJbmNvbWluZyQgPSB0aGlzLmNhbGxBcGlcclxuICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjogcGFnZVByb3ZpZGVyVHdvLFxyXG4gICAgICAgICAgY3VycmVudFBhZ2VJbmRleDogMCxcclxuICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgIHBhZ2VTaXplOiAxLFxyXG4gICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX2FnZzogc2VsZWN0ZWRSYW5nZSxcclxuICAgICAgICAgIHF1aWNrRmlsdGVyczogcXVpY2tGaWx0ZXJUd28sXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWluOiB0aGlzLm1pbixcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9tYXg6IHRoaXMubWF4LFxyXG4gICAgICAgICAgc3lzdGVtX2N1cnJlbnRMaWZlQ3ljbGVTdGF0ZV8zOiBKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGVcclxuICAgICAgICAgICksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0c1xyXG4gICAgICAgICAgICA/IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzLm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmZldGNoZWRLZXlcclxuICAgICAgICAgICAgICAgICAgPyBfLmdldChpdGVtLCB0aGlzLmZldGNoZWRLZXkpXHJcbiAgICAgICAgICAgICAgICAgIDogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICBjb3VudDogaXRlbS5kb2NDb3VudCxcclxuICAgICAgICAgICAgICAgIGlkOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIHN0YXR1czogc3RhdHVzVHdvLFxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkYXRhOiBpdGVtcyxcclxuICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGdldEludGVybmFsJCA9IHRoaXMuY2FsbEFwaVxyXG4gICAgICAucXVlcnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFnZVByb3ZpZGVyOiBwYWdlUHJvdmlkZXJUd28sXHJcbiAgICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfYWdnOiBzZWxlY3RlZFJhbmdlLFxyXG4gICAgICAgICAgcXVpY2tGaWx0ZXJzOiBxdWlja0ZpbHRlclRocmVlLFxyXG4gICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX21pbjogdGhpcy5taW4sXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWF4OiB0aGlzLm1heCxcclxuICAgICAgICAgIHN5c3RlbV9jdXJyZW50TGlmZUN5Y2xlU3RhdGVfMzogSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAgICAgIHRoaXMuc3lzdGVtQ3VycmVudExpZmVDeWNsZVN0YXRlXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZGF0YS5hZ2dyZWdhdGlvbnNbdGhpcy5hZ2dyZWdhdGlvbnNdLmJ1Y2tldHNcclxuICAgICAgICAgICAgPyBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0cy5tYXAoKGl0ZW0pID0+ICh7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5mZXRjaGVkS2V5XHJcbiAgICAgICAgICAgICAgICAgID8gXy5nZXQoaXRlbSwgdGhpcy5mZXRjaGVkS2V5KVxyXG4gICAgICAgICAgICAgICAgICA6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgY291bnQ6IGl0ZW0uZG9jQ291bnQsXHJcbiAgICAgICAgICAgICAgICBpZDogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c1RocmVlLFxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkYXRhOiBpdGVtcyxcclxuICAgICAgICAgICAgdG90YWxJdGVtczogZGF0YS50b3RhbFNpemUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2dldE91dGdvaW5nJCwgZ2V0SW5jb21pbmckLCBnZXRJbnRlcm5hbCRdKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICBsZXQgY29tYmluZWREYXRhID0gWy4uLmRhdGFbMF0uZGF0YSwgLi4uZGF0YVsxXS5kYXRhLCAuLi5kYXRhWzJdLmRhdGFdO1xyXG4gICAgICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBjb21iaW5lZERhdGE7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJldmlld0NvcnJlc3BvbmRlbmNlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwicGFyYW1zXCIsdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGUpXHJcbiAgICBsZXQgcXVlcnlQYXJhbXM7XHJcbiAgICBpZiAodGhpcy5jb21iaW5lZERhdGEpIHtcclxuICAgICAgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgY29tYmluZWREYXRhOiB0aGlzLmNvbWJpbmVkRGF0YSxcclxuICAgICAgICBwYWdlUHJvdmlkZXI6IHRoaXMucGFnZVByb3ZpZGVyLFxyXG4gICAgICAgIGhlYWRlcnM6IEpTT04uc3RyaW5naWZ5KHRoaXMuaGVhZGVycyksXHJcbiAgICAgICAgcmFuZ2U6IHRoaXMucmFuZ2UsXHJcbiAgICAgICAgYWdncmVnYXRpb25zOiB0aGlzLmFnZ3JlZ2F0aW9ucyxcclxuICAgICAgICBxdWlja0ZpbHRlck9uZTogdGhpcy5xdWlja0ZpbHRlcnMsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJUd286IHRoaXMucXVpY2tGaWx0ZXJUd28sXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJUaHJlZTogdGhpcy5xdWlja0ZpbHRlclRocmVlLFxyXG4gICAgICAgIHN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZTogdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGUsXHJcbiAgICAgICAgc3RhdHVzT25lOiB0aGlzLnN0YXR1c09uZSxcclxuICAgICAgICBzdGF0dXNUd286IHRoaXMuc3RhdHVzVHdvLFxyXG4gICAgICAgIHN0YXR1c1RocmVlOiB0aGlzLnN0YXR1c1RocmVlLFxyXG4gICAgICAgIG1pbjogdGhpcy5taW4sXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAgIGNvbWJpbmVkRGF0YTogdGhpcy5jb21iaW5lZERhdGEsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLnBhZ2VQcm92aWRlcixcclxuICAgICAgICBxdWlja0ZpbHRlck9uZTogdGhpcy5xdWlja0ZpbHRlcnMsXHJcbiAgICAgICAgaGVhZGVyczogSlNPTi5zdHJpbmdpZnkodGhpcy5oZWFkZXJzKSxcclxuICAgICAgICByYW5nZTogdGhpcy5yYW5nZSxcclxuICAgICAgICBhZ2dyZWdhdGlvbnM6IHRoaXMuYWdncmVnYXRpb25zLFxyXG4gICAgICAgIHN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZTogdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGUsXHJcbiAgICAgICAgbWluOiB0aGlzLm1pbixcclxuICAgICAgICBtYXg6IHRoaXMubWF4LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydyZXBvcnQnLCAnY2hhcnQtZGV0YWlscyddLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBzdHJpbmdUb0hzbENvbG9yKHN0ciwgcywgbCkge1xyXG4gICAgdmFyIGhhc2ggPSAwO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaGFzaCA9IHN0ci5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XHJcbiAgICB9XHJcbiAgICB2YXIgaCA9IGhhc2ggJSAzNjA7XHJcbiAgICByZXR1cm4gJ2hzbCgnICsgaCArICcsICcgKyBzICsgJyUsICcgKyBsICsgJyUpJztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQtY29udGluZXJcIiAqbmdJZj1cImNhcmQ7IGVsc2UgdGVzdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjaGFydC1jYXJkLWhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNhcmQtdGl0bGVcIj57eyBjYXJkVGl0bGUgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJjaGFydC1jYXJkLWJ1dHRvblwiIChjbGljayk9XCJwcmV2aWV3Q29ycmVzcG9uZGVuY2VzKClcIj5cclxuICAgICAge3sgXCJyZXBvcnQuUHJldmlld1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGZXRjaGluZ1wiPlxyXG4gICAgPGN0cy1zcGlubmVyPjwvY3RzLXNwaW5uZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cInN0YXRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiPlxyXG4gICAgPGRpdiBbaGlkZGVuXT1cImRhdGEuZGF0YT8ubGVuZ3RoID09IDAgfHwgZGF0YS5sZW5ndGggPT0gMFwiPlxyXG4gICAgICA8Y2FudmFzICNyZXZlbnVlTGluZUNoYXJ0IFtoZWlnaHRdPVwiaGVpZ2h0XCIgW3dpZHRoXT1cIndpZHRoXCI+PC9jYW52YXM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJuby1zdGF0c1wiICpuZ0lmPVwiZGF0YS5kYXRhPy5sZW5ndGggPT0gMCB8fCBkYXRhLmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgIDxzcGFuPnt7IFwiU1RBVFMubm9EYXRhXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3Rlc3Q+XHJcbiAgPGRpdiBjbGFzcz1cInN0YXRcIj5cclxuICAgIDxjYW52YXMgI3JldmVudWVMaW5lQ2hhcnQgW2hlaWdodF09XCJoZWlnaHRcIiBbd2lkdGhdPVwid2lkdGhcIj48L2NhbnZhcz5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiJdfQ==
|
|
391
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtY2hhcnQvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0L2R5bmFtaWMtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUtMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBYyxPQUFPLEVBQWlCLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBQy9CLGNBQWM7QUFNZCxNQUFNLE9BQU8scUJBQXFCO0lBa0VoQyxZQUNTLFNBQTJCLEVBQzNCLGNBQWlDLEVBQ2hDLE9BQXVCLEVBQVMsTUFBYyxFQUMvQyxTQUEyQjtRQUgzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQy9DLGNBQVMsR0FBVCxTQUFT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RSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVoRCxNQUFNO3NCQURMLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRU4sYUFBYTtzQkFEWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFjTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sV0FBVztzQkFEVixLQUFLO2dCQUdOLEdBQUc7c0JBREYsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSBcImNoYXJ0LmpzXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgLCBTdWJzY3JpcHRpb24sIGZvcmtKb2lufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL0NvcmUvc2VydmljZXMvY2FsbEFwaS9jYWxsLWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXJ0RGF0YVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY2hhcnQtZGF0YS5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0ICdjaGFydGpzLXBsdWdpbi1waWVjaGFydC1vdXRsYWJlbHMnO1xyXG5pbXBvcnQgJ2NoYXJ0anMtcGx1Z2luLWxhYmVscyc7XHJcbi8qKiBAaWdub3JlICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImN0cy1keW5hbWljLWNoYXJ0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9keW5hbWljLWNoYXJ0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtY2hhcnQuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ2hhcnRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgncmV2ZW51ZUxpbmVDaGFydCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjaGFydDogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKVxyXG4gIHByZWZpeCA9ICdTVEFUUy4nOyAvLyBmb3IgdHJhbnNsYXRpb25cclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZTsgLy8gZnVuY3Rpb25zIGV4aXN0IGluc2lkZSBDaGFydERhdGFTZXJ2aWNlXHJcbiAgQElucHV0KCkgcmFuZG9tQ29sb3JzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjaGFydE9iajtcclxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGNyZWF0Q2hhcnQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgQElucHV0KCkgcGFnZVByb3ZpZGVyOyAvLyBkZWZpbmUgYXBpIHRvIGdldCB0aGUgZGF0YSBmcm9tXHJcbiAgQElucHV0KCkgaGVhZGVycyA9IHt9OyAvLyBoZWFkZXJzIGluIGNvbnN0YW50c1xyXG4gIEBJbnB1dCgpIG9ic2VydmFibGU7IC8vIG9ic2VydmFibGUgaW4gY2FzZSBvZiBjYWxsIGFwaSBpcyBjYWxsZWQgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnRcclxuICBASW5wdXQoKSBhZ2dyZWdhdGlvbnM7XHJcbiAgQElucHV0KCkgcXVpY2tGaWx0ZXJzO1xyXG4gIEBJbnB1dCgpIHN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZTtcclxuICBASW5wdXQoKSByYW5nZSA9ICdbXCJmcm9tX25vdy03ZF90b19ub3dcIl0nO1xyXG4gIEBJbnB1dCgpIGxhYmVsO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRSYW5nZSA9IFwid2Vla1wiOyAvLyByYW5nZSB0byBiZSBmaWx0ZXJkIG9uXHJcbiAgQElucHV0KCkgY29sb3JzOiBhbnkgPSB7XHJcbiAgICBpblByb2dyZXNzOiAnIzNjM2NmMCcsXHJcbiAgICByZWdpc3RlcmVkOiAnIzVhMTQ5NicsXHJcbiAgICBkcmFmdDogJyM1OTY5NzMnLFxyXG4gICAgYXJjaGl2ZWQ6ICcjZmJiNjJjJyxcclxuICAgIGNsb3NlZDogJyMwMGRjYTUnLFxyXG4gICAgYXNzaWduZWQ6ICcjZmQ2NjcwJyxcclxuICAgIHVuZGVmaW5lZDogJyNmN2Y4ZjknLFxyXG4gICAgb3RoZXI6ICcjZjE3MjA1JyxcclxuICB9O1xyXG4gIGRhdGE6IGFueSA9IFtdO1xyXG4gIGlzRmV0Y2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGFydHM6IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcmFuZG9tQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIGZldGNoZWRLZXk7XHJcbiAgQElucHV0KClcclxuICBwYWdlUHJvdmlkZXJUd287XHJcbiAgQElucHV0KClcclxuICBxdWlja0ZpbHRlclR3bztcclxuICBASW5wdXQoKVxyXG4gIHF1aWNrRmlsdGVyVGhyZWU7XHJcbiAgQElucHV0KClcclxuICBjb21iaW5lZERhdGEgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c09uZTtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c1R3bztcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1c1RocmVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgbWluO1xyXG4gIEBJbnB1dCgpXHJcbiAgbWF4O1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ7XHJcbiAgQElucHV0KClcclxuICBjYXJkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjYXJkVGl0bGUgPSAnJztcclxuXHJcbiAgQElucHV0KCkgaXNJbnRlcm5hbEFjdGl2ZSA9IGZhbHNlOyAvLyB1c2VkIHRvIGNvbnRyb2wgb24gc2hvd2luZyByZXN1bHRzIG9mIGludGVybmFsIGNvcmVzcCByZXN1bHRzIGluIGNoYXJ0c1xyXG4gIG15RGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGNhbGxBcGk6IENhbGxBcGlTZXJ2aWNlLHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2hhcnREYXRhOiBDaGFydERhdGFTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBDaGFydC5kZWZhdWx0cy5nbG9iYWwuZGVmYXVsdEZvbnRGYW1pbHkgPSBcIkZTIEFsYmVydCBBcmFiaWMgV2ViXCI7XHJcbiAgICBDaGFydC5kZWZhdWx0cy5nbG9iYWwuZGVmYXVsdEZvbnRTaXplID0gMTM7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmNyZWF0Q2hhcnQubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgY3JlYXRlQ2hhcnQoKSB7XHJcbiAgICB0aGlzLmNyZWF0Q2hhcnQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5nZXREYXRhKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBsZXQgcmFuZG9tQ29sb3JzID0ge307XHJcbiAgICAgICAgaWYgKHRoaXMucmFuZG9tQ29sb3JzKSB7XHJcbiAgICAgICAgICBkYXRhLmRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICByYW5kb21Db2xvcnNbaXRlbS5sYWJlbF0gPSB0aGlzLnN0cmluZ1RvSHNsQ29sb3IoXHJcbiAgICAgICAgICAgICAgYCR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAgIDQwLFxyXG4gICAgICAgICAgICAgIDcwXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb2xvcnMgPSB0aGlzLnJhbmRvbUNvbG9ycyA/IHJhbmRvbUNvbG9ycyA6IHRoaXMuY29sb3JzO1xyXG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucywgY2hhcnREYXRhIH0gPSB0aGlzLmNoYXJ0RGF0YVt0aGlzLmNoYXJ0VHlwZV0oe1xyXG4gICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgIGNvbG9yczogdGhpcy5jb2xvcnMsXHJcbiAgICAgICAgICBwcmVmaXg6IHRoaXMucHJlZml4LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkYXRhLmRhdGE/Lmxlbmd0aCB8fCBkYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmNoYXJ0T2JqKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuY2hhcnQubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0T2JqID0gbmV3IENoYXJ0KGN0eCwgb3B0aW9ucyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0T2JqLmNoYXJ0LmRhdGEgPSBjaGFydERhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnRPYmoudXBkYXRlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIGNvbnN0IGN0eCA9IHRoaXMuY2hhcnQubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgLy8gbGV0IG5vT3B0aW9ucyA9IHtcclxuICAgICAgICAgIC8vICAgdHlwZTogb3B0aW9ucy50eXBlLFxyXG4gICAgICAgICAgLy8gICBkYXRhOiB7XHJcbiAgICAgICAgICAvLyAgICAgZGF0YXNldHM6IFtdLFxyXG4gICAgICAgICAgLy8gICB9LFxyXG4gICAgICAgICAgLy8gICBvcHRpb25zOiB7fSxcclxuICAgICAgICAgIC8vIH07XHJcbiAgICAgICAgICAvLyB0aGlzLmNoYXJ0T2JqID0gbmV3IENoYXJ0KGN0eCwgbm9PcHRpb25zKTtcclxuICAgICAgICAgIC8vIHRoaXMuY2hhcnRPYmouY2hhcnQuZGF0YSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN0YXRzKCkge1xyXG4gICAgdGhpcy5jcmVhdGVDaGFydCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jcmVhdGVDaGFydCgpO1xyXG4gICAgICB0aGlzLmNyZWF0Q2hhcnQubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IG1pbkNoYW5nZWQgPSBjaGFuZ2VzLm1pbiAmJiAhY2hhbmdlcy5taW4/LmZpcnN0Q2hhbmdlO1xyXG4gICAgY29uc3QgbWF4Q2hhbmdlZCA9IGNoYW5nZXMubWF4ICYmICFjaGFuZ2VzLm1heD8uZmlyc3RDaGFuZ2U7XHJcbiAgICBjb25zdCByYW5nZUNoYW5nZWQgPSBjaGFuZ2VzLnJhbmdlICYmICFjaGFuZ2VzLnJhbmdlPy5maXJzdENoYW5nZTtcclxuICAgIGlmIChtaW5DaGFuZ2VkIHx8IG1heENoYW5nZWQgfHwgcmFuZ2VDaGFuZ2VkKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY3JlYXRDaGFydC5uZXh0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubXlEYXRhU3Vic2NyaXB0aW9uID8gdGhpcy5teURhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSA6ICcnO1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuY3JlYXRDaGFydC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICBnZXREYXRhKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzRmV0Y2hpbmcgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuY29tYmluZWREYXRhKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldENvbWJpbmVkRGF0YShcclxuICAgICAgICB0aGlzLnBhZ2VQcm92aWRlcixcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycyxcclxuICAgICAgICB0aGlzLnJhbmdlLFxyXG4gICAgICAgIHRoaXMucGFnZVByb3ZpZGVyVHdvLFxyXG4gICAgICAgIHRoaXMucXVpY2tGaWx0ZXJUd28sXHJcbiAgICAgICAgdGhpcy5xdWlja0ZpbHRlclRocmVlLFxyXG4gICAgICAgIHRoaXMuc3RhdHVzT25lLFxyXG4gICAgICAgIHRoaXMuc3RhdHVzVHdvLFxyXG4gICAgICAgIHRoaXMuc3RhdHVzVGhyZWVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhbGxBcGlcclxuICAgICAgICAucXVlcnkoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhZ2VQcm92aWRlcjogdGhpcy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9hZ2c6IHRoaXMucmFuZ2UsXHJcbiAgICAgICAgICAgIHF1aWNrRmlsdGVyczogdGhpcy5xdWlja0ZpbHRlcnMsXHJcbiAgICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9taW46IHRoaXMubWluLFxyXG4gICAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWF4OiB0aGlzLm1heCxcclxuICAgICAgICAgICAgc3lzdGVtX2N1cnJlbnRMaWZlQ3ljbGVTdGF0ZV8zOiBKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgICB0aGlzLnN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzXHJcbiAgICAgICAgICAgICAgPyBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0cy5tYXAoKGl0ZW0pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmZldGNoZWRLZXlcclxuICAgICAgICAgICAgICAgICAgICA/IF8uZ2V0KGl0ZW0sIHRoaXMuZmV0Y2hlZEtleSlcclxuICAgICAgICAgICAgICAgICAgICA6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgICBjb3VudDogaXRlbS5kb2NDb3VudCxcclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGRhdGE6IGl0ZW1zLFxyXG4gICAgICAgICAgICAgIHRvdGFsSXRlbXM6IGRhdGEudG90YWxTaXplLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tYmluZWREYXRhKFxyXG4gICAgcGFnZVByb3ZpZGVyT25lLFxyXG4gICAgcXVpY2tGaWx0ZXJPbmUsXHJcbiAgICBzZWxlY3RlZFJhbmdlLFxyXG4gICAgcGFnZVByb3ZpZGVyVHdvLFxyXG4gICAgcXVpY2tGaWx0ZXJUd28sXHJcbiAgICBxdWlja0ZpbHRlclRocmVlLFxyXG4gICAgc3RhdHVzT25lLFxyXG4gICAgc3RhdHVzVHdvLFxyXG4gICAgc3RhdHVzVGhyZWVcclxuICApIHtcclxuICAgIGNvbnN0IGdldE91dGdvaW5nJCA9IHRoaXMuY2FsbEFwaVxyXG4gICAgICAucXVlcnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFnZVByb3ZpZGVyOiBwYWdlUHJvdmlkZXJPbmUsXHJcbiAgICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfYWdnOiBzZWxlY3RlZFJhbmdlLFxyXG4gICAgICAgICAgcXVpY2tGaWx0ZXJzOiBxdWlja0ZpbHRlck9uZSxcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9taW46IHRoaXMubWluLFxyXG4gICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX21heDogdGhpcy5tYXgsXHJcbiAgICAgICAgICBzeXN0ZW1fY3VycmVudExpZmVDeWNsZVN0YXRlXzM6IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICB0aGlzLnN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzXHJcbiAgICAgICAgICAgID8gZGF0YS5hZ2dyZWdhdGlvbnNbdGhpcy5hZ2dyZWdhdGlvbnNdLmJ1Y2tldHMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZmV0Y2hlZEtleVxyXG4gICAgICAgICAgICAgICAgICA/IF8uZ2V0KGl0ZW0sIHRoaXMuZmV0Y2hlZEtleSlcclxuICAgICAgICAgICAgICAgICAgOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIGNvdW50OiBpdGVtLmRvY0NvdW50LFxyXG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXNPbmUsXHJcbiAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRhdGE6IGl0ZW1zLFxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIGNvbnN0IGdldEluY29taW5nJCA9IHRoaXMuY2FsbEFwaVxyXG4gICAgICAucXVlcnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFnZVByb3ZpZGVyOiBwYWdlUHJvdmlkZXJUd28sXHJcbiAgICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgICAgcGFnZVNpemU6IDEsXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfYWdnOiBzZWxlY3RlZFJhbmdlLFxyXG4gICAgICAgICAgcXVpY2tGaWx0ZXJzOiBxdWlja0ZpbHRlclR3byxcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9taW46IHRoaXMubWluLFxyXG4gICAgICAgICAgZHVibGluY29yZV9jcmVhdGVkX21heDogdGhpcy5tYXgsXHJcbiAgICAgICAgICBzeXN0ZW1fY3VycmVudExpZmVDeWNsZVN0YXRlXzM6IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgICAgICB0aGlzLnN5c3RlbUN1cnJlbnRMaWZlQ3ljbGVTdGF0ZVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzXHJcbiAgICAgICAgICAgID8gZGF0YS5hZ2dyZWdhdGlvbnNbdGhpcy5hZ2dyZWdhdGlvbnNdLmJ1Y2tldHMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZmV0Y2hlZEtleVxyXG4gICAgICAgICAgICAgICAgICA/IF8uZ2V0KGl0ZW0sIHRoaXMuZmV0Y2hlZEtleSlcclxuICAgICAgICAgICAgICAgICAgOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIGNvdW50OiBpdGVtLmRvY0NvdW50LFxyXG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXNUd28sXHJcbiAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRhdGE6IGl0ZW1zLFxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgY29uc3QgZ2V0SW50ZXJuYWwkID0gdGhpcy5jYWxsQXBpXHJcbiAgICAgIC5xdWVyeShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYWdlUHJvdmlkZXI6IHBhZ2VQcm92aWRlclR3byxcclxuICAgICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICBwYWdlU2l6ZTogMSxcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9hZ2c6IHNlbGVjdGVkUmFuZ2UsXHJcbiAgICAgICAgICBxdWlja0ZpbHRlcnM6IHF1aWNrRmlsdGVyVGhyZWUsXHJcbiAgICAgICAgICBkdWJsaW5jb3JlX2NyZWF0ZWRfbWluOiB0aGlzLm1pbixcclxuICAgICAgICAgIGR1YmxpbmNvcmVfY3JlYXRlZF9tYXg6IHRoaXMubWF4LFxyXG4gICAgICAgICAgc3lzdGVtX2N1cnJlbnRMaWZlQ3ljbGVTdGF0ZV8zOiBKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgdGhpcy5zeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGVcclxuICAgICAgICAgICksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBkYXRhLmFnZ3JlZ2F0aW9uc1t0aGlzLmFnZ3JlZ2F0aW9uc10uYnVja2V0c1xyXG4gICAgICAgICAgICA/IGRhdGEuYWdncmVnYXRpb25zW3RoaXMuYWdncmVnYXRpb25zXS5idWNrZXRzLm1hcCgoaXRlbSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmZldGNoZWRLZXlcclxuICAgICAgICAgICAgICAgICAgPyBfLmdldChpdGVtLCB0aGlzLmZldGNoZWRLZXkpXHJcbiAgICAgICAgICAgICAgICAgIDogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICBjb3VudDogaXRlbS5kb2NDb3VudCxcclxuICAgICAgICAgICAgICAgIGlkOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIHN0YXR1czogc3RhdHVzVGhyZWUsXHJcbiAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRhdGE6IGl0ZW1zLFxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiBkYXRhLnRvdGFsU2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgaWYodGhpcy5pc0ludGVybmFsQWN0aXZlKXtcclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW2dldE91dGdvaW5nJCwgZ2V0SW5jb21pbmckLCBnZXRJbnRlcm5hbCRdKS5waXBlKFxyXG4gICAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb21iaW5lZERhdGEgPSBbLi4uZGF0YVswXS5kYXRhLCAuLi5kYXRhWzFdLmRhdGEsIC4uLmRhdGFbMl0uZGF0YV07XHJcbiAgICAgICAgICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gY29tYmluZWREYXRhO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW2dldE91dGdvaW5nJCwgZ2V0SW5jb21pbmckXSkucGlwZShcclxuICAgICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29tYmluZWREYXRhID0gWy4uLmRhdGFbMF0uZGF0YSwgLi4uZGF0YVsxXS5kYXRhXTtcclxuICAgICAgICAgICAgdGhpcy5pc0ZldGNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lZERhdGE7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHByZXZpZXdDb3JyZXNwb25kZW5jZXMoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInBhcmFtc1wiLHRoaXMuc3lzdGVtQ3VycmVudExpZmVDeWNsZVN0YXRlKVxyXG4gICAgbGV0IHF1ZXJ5UGFyYW1zO1xyXG4gICAgaWYgKHRoaXMuY29tYmluZWREYXRhKSB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAgIGNvbWJpbmVkRGF0YTogdGhpcy5jb21iaW5lZERhdGEsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLnBhZ2VQcm92aWRlcixcclxuICAgICAgICBoZWFkZXJzOiBKU09OLnN0cmluZ2lmeSh0aGlzLmhlYWRlcnMpLFxyXG4gICAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxyXG4gICAgICAgIGFnZ3JlZ2F0aW9uczogdGhpcy5hZ2dyZWdhdGlvbnMsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJPbmU6IHRoaXMucXVpY2tGaWx0ZXJzLFxyXG4gICAgICAgIHF1aWNrRmlsdGVyVHdvOiB0aGlzLnF1aWNrRmlsdGVyVHdvLFxyXG4gICAgICAgIHF1aWNrRmlsdGVyVGhyZWU6IHRoaXMucXVpY2tGaWx0ZXJUaHJlZSxcclxuICAgICAgICBzeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGU6IHRoaXMuc3lzdGVtQ3VycmVudExpZmVDeWNsZVN0YXRlLFxyXG4gICAgICAgIHN0YXR1c09uZTogdGhpcy5zdGF0dXNPbmUsXHJcbiAgICAgICAgc3RhdHVzVHdvOiB0aGlzLnN0YXR1c1R3byxcclxuICAgICAgICBzdGF0dXNUaHJlZTogdGhpcy5zdGF0dXNUaHJlZSxcclxuICAgICAgICBtaW46IHRoaXMubWluLFxyXG4gICAgICAgIG1heDogdGhpcy5tYXgsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICBjb21iaW5lZERhdGE6IHRoaXMuY29tYmluZWREYXRhLFxyXG4gICAgICAgIHBhZ2VQcm92aWRlcjogdGhpcy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJPbmU6IHRoaXMucXVpY2tGaWx0ZXJzLFxyXG4gICAgICAgIGhlYWRlcnM6IEpTT04uc3RyaW5naWZ5KHRoaXMuaGVhZGVycyksXHJcbiAgICAgICAgcmFuZ2U6IHRoaXMucmFuZ2UsXHJcbiAgICAgICAgYWdncmVnYXRpb25zOiB0aGlzLmFnZ3JlZ2F0aW9ucyxcclxuICAgICAgICBzeXN0ZW1DdXJyZW50TGlmZUN5Y2xlU3RhdGU6IHRoaXMuc3lzdGVtQ3VycmVudExpZmVDeWNsZVN0YXRlLFxyXG4gICAgICAgIG1pbjogdGhpcy5taW4sXHJcbiAgICAgICAgbWF4OiB0aGlzLm1heCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncmVwb3J0JywgJ2NoYXJ0LWRldGFpbHMnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgc3RyaW5nVG9Ic2xDb2xvcihzdHIsIHMsIGwpIHtcclxuICAgIHZhciBoYXNoID0gMDtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGhhc2ggPSBzdHIuY2hhckNvZGVBdChpKSArICgoaGFzaCA8PCA1KSAtIGhhc2gpO1xyXG4gICAgfVxyXG4gICAgdmFyIGggPSBoYXNoICUgMzYwO1xyXG4gICAgcmV0dXJuICdoc2woJyArIGggKyAnLCAnICsgcyArICclLCAnICsgbCArICclKSc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWNvbnRpbmVyXCIgKm5nSWY9XCJjYXJkOyBlbHNlIHRlc3RcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2hhcnQtY2FyZC1oZWFkZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jYXJkLXRpdGxlXCI+e3sgY2FyZFRpdGxlIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiY2hhcnQtY2FyZC1idXR0b25cIiAoY2xpY2spPVwicHJldmlld0NvcnJlc3BvbmRlbmNlcygpXCI+XHJcbiAgICAgIHt7IFwicmVwb3J0LlByZXZpZXdcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmV0Y2hpbmdcIj5cclxuICAgIDxjdHMtc3Bpbm5lcj48L2N0cy1zcGlubmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJzdGF0XCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIj5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJkYXRhLmRhdGE/Lmxlbmd0aCA9PSAwIHx8IGRhdGEubGVuZ3RoID09IDBcIj5cclxuICAgICAgPGNhbnZhcyAjcmV2ZW51ZUxpbmVDaGFydCBbaGVpZ2h0XT1cImhlaWdodFwiIFt3aWR0aF09XCJ3aWR0aFwiPjwvY2FudmFzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibm8tc3RhdHNcIiAqbmdJZj1cImRhdGEuZGF0YT8ubGVuZ3RoID09IDAgfHwgZGF0YS5sZW5ndGggPT0gMFwiPlxyXG4gICAgICA8c3Bhbj57eyBcIlNUQVRTLm5vRGF0YVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN0ZXN0PlxyXG4gIDxkaXYgY2xhc3M9XCJzdGF0XCI+XHJcbiAgICA8Y2FudmFzICNyZXZlbnVlTGluZUNoYXJ0IFtoZWlnaHRdPVwiaGVpZ2h0XCIgW3dpZHRoXT1cIndpZHRoXCI+PC9jYW52YXM+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
|
|
@@ -128,9 +128,9 @@ export class DynamicFormDepartmentComponent {
|
|
|
128
128
|
this.onSelecting.emit(selectedItems);
|
|
129
129
|
}
|
|
130
130
|
writeValue(value) {
|
|
131
|
-
if (value) {
|
|
132
|
-
|
|
133
|
-
}
|
|
131
|
+
// if (value) { // removed to allow to reset value of tree
|
|
132
|
+
this.selection = value;
|
|
133
|
+
// }
|
|
134
134
|
}
|
|
135
135
|
registerOnChange(fn) {
|
|
136
136
|
this.propagateChange = fn;
|
|
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
201
201
|
}], actionClicked: [{
|
|
202
202
|
type: Output
|
|
203
203
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQXdEekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUF6RC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFC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Q0FBQztvQkFDdkQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzswQkE0REksSUFBSTs7MEJBQUksUUFBUTs0Q0F2RFYsUUFBUTtzQkFBaEIsS0FBSztnQkFHTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0UsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIE5nQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgZGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duIGlucHV0IGFscmVhZHkgd2l0aCBkZXBhcnRtZW50cyBiYWNrZW5kLFxyXG4gKiAgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiBEZXBhcnRtZW50IHRyZWUgZHJvcGRvd25cclxuICogQGV4YW1wbGVcclxuICogICA8YXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50XHJcbiAqICAgICAgIGxhYmVsPVwiRmllbGQgTGFiZWxcIlxyXG4gKiAgICAgICBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyIHRleHRcIlxyXG4gKiAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqICAgICA+XHJcbiAqICAgPC9hcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQ+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybURlcGFydG1lbnRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF0YSA9IFtdO1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIENhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIC8qKiBpcyB0cmVlIHNlYXJjaGFibGUgKi9cclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAvKiogSW5wdXQgRmllbGQgbGFiZWwgKi9cclxuICBASW5wdXQoKSBsYWJlbDtcclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudFRyZWU7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb247XHJcbiAgICAvKiogdG8gYWxsb3cgY3VzdG9tIHBhcmVudCBwcm9wZXJ0eSBuYW1lICB0byBiZSBwYWFzc2VkIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgICBASW5wdXQoKSBjdXN0b21QYXJlbnRQcm9wZXJ0eTtcclxuXHJcbiAgLyoqIGVtaXR0ZWQgd2hlbiBpdGVtIGlzIHNlbGVjdGVkICovXHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBlbWl0dGVkIHdoZW4gYWN0aW9uIGlzIGNsaWNrZWQgKi9cclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgc2VsZWN0aW9uO1xyXG4gIGFyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgLy8gZnVuY3Rpb24gcmVsYXRlZCB0byB2YWx1ZSBhY2Nlc3NvclxyXG4gIHByb3BhZ2F0ZUNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG4gIHZhbGlkYXRlRm46IGFueSA9ICgpID0+IHsgfTtcclxuICBwdWJsaWMgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7XHJcbiAgICAvKkVtcHR5Ki9cclxuICB9O1xyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkZXBhcnRtZW50QXBpOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRyb2w6IE5nQ29udHJvbFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoXHJcbiAgICAgIGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmFyYWJpYyA9IHJlcztcclxuICAgICAgICBhd2FpdCB0aGlzLmdldExpc09mT3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnNlbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24gPyB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiAnJztcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlY3Vyc2l2ZUZpbGwoZW50cmllcywgbGV2ZWwgPSAwKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgZW50cmllcy5tYXAoYXN5bmMgKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCB0cmVlVmlld09iaiA9IHRoaXMudHJlZXZpZXdcclxuICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLmFyYWJpY1xyXG4gICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6YXJhYmljTmFtZScpIDogJ2RlcHQ6YXJhYmljTmFtZSddXHJcbiAgICAgICAgICAgICAgICA6ICctLSdcclxuICAgICAgICAgICAgICA6IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmVuZ2xpc2hOYW1lJykgOiAnZGVwdDplbmdsaXNoTmFtZSddXHJcbiAgICAgICAgICAgICAgICA6ICctLScsXHJcbiAgICAgICAgICAgIHZhbHVlOiB7IC4uLml0ZW0sIGxldmVsIH0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogIHRoaXMubXVsdGlwbGUgPyBpdGVtLnVpZCA6IGl0ZW0udGl0bGUsXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0cmVlSXRlbSA9IG5ldyBUcmVldmlld0l0ZW0oe1xyXG4gICAgICAgICAgLi4udHJlZVZpZXdPYmosXHJcbiAgICAgICAgICBjb2xsYXBzZWQ6IGxldmVsID49IDIgJiYgdGhpcy50cmVldmlldyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICAgIC4uLih0aGlzLm11bHRpcGxlICYmIHsgY2hlY2tlZDogZmFsc2UgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXRlbS5jb250ZXh0UGFyYW1ldGVycyAmJlxyXG4gICAgICAgICAgaXRlbS5jb250ZXh0UGFyYW1ldGVycy5jaGlsZHJlbi5lbnRyaWVzLmxlbmd0aFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAhdGhpcy50cmVldmlldyAmJlxyXG4gICAgICAgICAgICAobGV2ZWwgPT0gMiB8fCAobGV2ZWwgPiAyICYmIChsZXZlbCArIDEpICUgMyA9PSAwKSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25zdCBleHRlbmRlZCA9IGF3YWl0IHRoaXMuZGVwYXJ0bWVudEFwaVxyXG4gICAgICAgICAgICAgIC5nZXREZXBhcnRtZW50TmVzdGVkVHJlZShpdGVtLnRpdGxlLCB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlICwgdGhpcy5jdXN0b21QYXJlbnRQcm9wZXJ0eSlcclxuICAgICAgICAgICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgdHJlZUl0ZW0uY2hpbGRyZW4gPSBhd2FpdCB0aGlzLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgICAgZXh0ZW5kZWQuZW50cmllcyxcclxuICAgICAgICAgICAgICBsZXZlbCArIDFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcyxcclxuICAgICAgICAgICAgICBsZXZlbCArIDFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyZWVJdGVtO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldExpc09mT3B0aW9ucygpIHtcclxuICAgIHRoaXMuZGVwYXJ0bWVudEFwaS5nZXREZXBhcnRtZW50VHJlZSh0aGlzLnBwX2RlcGFydG1lbnRUcmVlKS5zdWJzY3JpYmUoYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kYXRhID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKHJlcy5lbnRyaWVzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRpdGVtcyhzZWxlY3RlZEl0ZW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShzZWxlY3RlZEl0ZW1zKTtcclxuICAgIHRoaXMub25TZWxlY3RpbmcuZW1pdChzZWxlY3RlZEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWUpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbik6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG4gIH1cclxuICBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuICB9XHJcbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuICAvLyBvblBsdXNDbGlja2VkKGUpIHtcclxuICAvLyAgIHRoaXMucGx1c0NsaWNrZWQubmV4dChlKTtcclxuICAvLyB9XHJcblxyXG4gIG9uQWN0aW9uKGUpIHtcclxuICAgIHRoaXMuYWN0aW9uQ2xpY2tlZC5lbWl0KGUpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIGh0dHA6Ly8zNS4xNTMuNjYuNTI6ODA4MC9udXhlby9hcGkvdjEvc2VhcmNoL3BwL1BQX0RlcGFydG1lbnQvZXhlY3V0ZT9wYWdlUHJvdmlkZXI9UFBfRGVwYXJ0bWVudCZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHRcclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfT1NfRGVwYXJ0bWVudHMvZXhlY3V0ZT9wYWdlUHJvdmlkZXI9UFBfT1NfRGVwYXJ0bWVudHMmY3VycmVudFBhZ2VJbmRleD0wJm9mZnNldD0wJnBhZ2VTaXplPTQwJnF1aWNrRmlsdGVycz1QYXJlbnQlMjBEZXB0IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XHJcbiAgPGRpdj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInNlbGVjdC1sYWJlbFwiXHJcbiAgICAgID57eyBsYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTxzcGFuICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtLTFcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxhcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdFxyXG4gIFt0cmVldmlld109XCJ0cmVldmlld1wiXHJcbiAgW3RyZWVWaWV3QXNGb3JtQ29udHJvbF09XCJ0cmVlVmlld0FzRm9ybUNvbnRyb2xcIlxyXG4gIFtkZWZhdWx0U2VsZWN0XT1cImRlZmF1bHRTZWxlY3RcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgW2l0ZW1zXT1cImRhdGFcIlxyXG4gIFtwcF9kZXBhcnRtZW50TmVzdGVkVHJlZV09XCJwcF9kZXBhcnRtZW50TmVzdGVkVHJlZVwiXHJcbiAgW3VzZUN1c3RvbUFkZEVkaXRBY3Rpb25dPVwidXNlQ3VzdG9tQWRkRWRpdEFjdGlvblwiXHJcbiAgW2N1c3RvbVByZWZpeF09XCJjdXN0b21QcmVmaXhcIlxyXG4gIFtjdXN0b21QYXJlbnRQcm9wZXJ0eV09XCJjdXN0b21QYXJlbnRQcm9wZXJ0eVwiXHJcbiAgKHZhbHVlQ2hhbmdlKT1cImdldFNlbGVjdGVkaXRlbXMoJGV2ZW50KVwiXHJcbiAgWyh2YWx1ZSldPVwic2VsZWN0aW9uXCJcclxuICAoYWN0aW9uQ2xpY2tlZCk9XCJvbkFjdGlvbigkZXZlbnQpXCJcclxuICBjbGFzcz1cImRyb3Bkb3duLXdyYXBwZXJcIlxyXG4gIFtuZ0NsYXNzXT1cInsnaW5wdXQtZmlsbGVkJyA6IHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ubGVuZ3RoID4gMCB9XCJcclxuPlxyXG48L2FwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0PlxyXG48bWF0LWVycm9yXHJcbiAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVycm9yLSdcIlxyXG4gIGNsYXNzPVwiYXBwLXRleHRpdGVtLWVkaXRhYmxlLWVycm9yXCJcclxuICAqbmdJZj1cImhhc0Vycm9ycygpXCJcclxuPlxyXG4gIDx1bD5cclxuICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgIHt7IFwiVkFMSURBVE9SUy5SRVFVSVJFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvbWF0LWVycm9yPlxyXG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQXdEekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUF6RC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFC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QUM7b0JBQ3ZELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBNERJLElBQUk7OzBCQUFJLFFBQVE7NENBdkRWLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUssb0JBQW9CO3NCQUE1QixLQUFLO2dCQUdFLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBTZWxmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCxcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQ29udHJvbCxcclxuICBOZ0NvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmVldmlld0l0ZW0gfSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kZXBhcnRtZW50LWFwaS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGRlcGFydG1lbnQgdHJlZSBkcm9wZG93biBpbnB1dCBhbHJlYWR5IHdpdGggZGVwYXJ0bWVudHMgYmFja2VuZCxcclxuICogIHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogRGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duXHJcbiAqIEBleGFtcGxlXHJcbiAqICAgPGFwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudFxyXG4gKiAgICAgICBsYWJlbD1cIkZpZWxkIExhYmVsXCJcclxuICogICAgICAgcGxhY2Vob2xkZXI9XCJQbGFjZWhvbGRlciB0ZXh0XCJcclxuICogICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiAgICAgPlxyXG4gKiAgIDwvYXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1EZXBhcnRtZW50Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRhdGEgPSBbXTtcclxuICAvKiogaXMgdHJlZSBWaWV3IG9yIGRyb3Bkb3duIHZpZXcgKi9cclxuICBASW5wdXQoKSB0cmVldmlldyA9IGZhbHNlO1xyXG4gIC8qKiB1c2UgdHJlZSB2aWV3IGluc2lkZSBmb3JtICovXHJcbiAgQElucHV0KClcclxuICB0cmVlVmlld0FzRm9ybUNvbnRyb2wgPSBmYWxzZTtcclxuICAvKiogUGxhY2Vob2xkZXIgdGV4dCAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIC8qKiBDYW4gc2VsZWN0IG11bHRpcGxlICovXHJcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAvKiogaXMgdHJlZSBzZWFyY2hhYmxlICovXHJcbiAgQElucHV0KCkgc2VhcmNoYWJsZSA9IHRydWU7XHJcbiAgLyoqIElucHV0IEZpZWxkIGxhYmVsICovXHJcbiAgQElucHV0KCkgbGFiZWw7XHJcbiAgQElucHV0KCkgZGVmYXVsdFNlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAvKiogY3VzdG9tIHBhZ2UgcHJvdmlkZXIgdG8gZ2V0IGRlcGFydG1lbnQgbmVzdGVkIHRyZWUgZnJvbSBpdCBjYW4gYmUgcGFzc2VkIGZyb20gb3V0c2lkZSBvciBub3QgcGFzc2VkIGFuZCB1c2UgdGhlIGRlZnVsdGUgdmFsdWUgKi9cclxuICBASW5wdXQoKSBwcF9kZXBhcnRtZW50TmVzdGVkVHJlZTtcclxuICAvKiogY3VzdG9tIHBhZ2UgcHJvdmlkZXIgdG8gZ2V0IGRlcGFydG1lbnQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcHJlZml4IHRvIGJlIHVzZWQgZm9yIGFkYXB0aW5nIGRhdGEgY29taW5nIGZyb20gYXBpICovXHJcbiAgQElucHV0KCkgY3VzdG9tUHJlZml4O1xyXG4gIC8qKiB0byBhbGxvdyBjdXN0b20gYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCBvdXRzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuICBASW5wdXQoKSB1c2VDdXN0b21BZGRFZGl0QWN0aW9uO1xyXG4gICAgLyoqIHRvIGFsbG93IGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSAgdG8gYmUgcGFhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gICAgQElucHV0KCkgY3VzdG9tUGFyZW50UHJvcGVydHk7XHJcblxyXG4gIC8qKiBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZW1pdHRlZCB3aGVuIGFjdGlvbiBpcyBjbGlja2VkICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGlvbjtcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuICBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICB2YWxpZGF0ZUZuOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xyXG4gICAgLypFbXB0eSovXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKFxyXG4gICAgICBhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRMaXNPZk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWN1cnNpdmVGaWxsKGVudHJpZXMsIGxldmVsID0gMCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGVudHJpZXMubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdHJlZVZpZXdPYmogPSB0aGlzLnRyZWV2aWV3XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5pdGVtLCBsZXZlbCB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYXJhYmljXHJcbiAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzphcmFiaWNOYW1lJykgOiAnZGVwdDphcmFiaWNOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJ1xyXG4gICAgICAgICAgICAgIDogaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6ZW5nbGlzaE5hbWUnKSA6ICdkZXB0OmVuZ2xpc2hOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJyxcclxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLm11bHRpcGxlID8gaXRlbS51aWQgOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdHJlZUl0ZW0gPSBuZXcgVHJlZXZpZXdJdGVtKHtcclxuICAgICAgICAgIC4uLnRyZWVWaWV3T2JqLFxyXG4gICAgICAgICAgY29sbGFwc2VkOiBsZXZlbCA+PSAyICYmIHRoaXMudHJlZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAuLi4odGhpcy5tdWx0aXBsZSAmJiB7IGNoZWNrZWQ6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgICAgICAgKGxldmVsID09IDIgfHwgKGxldmVsID4gMiAmJiAobGV2ZWwgKyAxKSAlIDMgPT0gMCkpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhd2FpdCB0aGlzLmRlcGFydG1lbnRBcGlcclxuICAgICAgICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoaXRlbS50aXRsZSwgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSAsIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGV4dGVuZGVkLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlSXRlbS5jaGlsZHJlbiA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICBpdGVtLmNvbnRleHRQYXJhbWV0ZXJzLmNoaWxkcmVuLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmVlSXRlbTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRMaXNPZk9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGkuZ2V0RGVwYXJ0bWVudFRyZWUodGhpcy5wcF9kZXBhcnRtZW50VHJlZSkuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChyZXMuZW50cmllcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW5nLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodmFsdWUpIHsgLy8gcmVtb3ZlZCB0byBhbGxvdyB0byByZXNldCB2YWx1ZSBvZiB0cmVlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIC8vIG9uUGx1c0NsaWNrZWQoZSkge1xyXG4gIC8vICAgdGhpcy5wbHVzQ2xpY2tlZC5uZXh0KGUpO1xyXG4gIC8vIH1cclxuXHJcbiAgb25BY3Rpb24oZSkge1xyXG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfRGVwYXJ0bWVudC9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9EZXBhcnRtZW50JmN1cnJlbnRQYWdlSW5kZXg9MCZvZmZzZXQ9MCZwYWdlU2l6ZT00MCZxdWlja0ZpbHRlcnM9UGFyZW50JTIwRGVwdFxyXG4vLyBodHRwOi8vMzUuMTUzLjY2LjUyOjgwODAvbnV4ZW8vYXBpL3YxL3NlYXJjaC9wcC9QUF9PU19EZXBhcnRtZW50cy9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9PU19EZXBhcnRtZW50cyZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHQiLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAgW3RyZWV2aWV3XT1cInRyZWV2aWV3XCJcclxuICBbdHJlZVZpZXdBc0Zvcm1Db250cm9sXT1cInRyZWVWaWV3QXNGb3JtQ29udHJvbFwiXHJcbiAgW2RlZmF1bHRTZWxlY3RdPVwiZGVmYXVsdFNlbGVjdFwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbaXRlbXNdPVwiZGF0YVwiXHJcbiAgW3BwX2RlcGFydG1lbnROZXN0ZWRUcmVlXT1cInBwX2RlcGFydG1lbnROZXN0ZWRUcmVlXCJcclxuICBbdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbl09XCJ1c2VDdXN0b21BZGRFZGl0QWN0aW9uXCJcclxuICBbY3VzdG9tUHJlZml4XT1cImN1c3RvbVByZWZpeFwiXHJcbiAgW2N1c3RvbVBhcmVudFByb3BlcnR5XT1cImN1c3RvbVBhcmVudFByb3BlcnR5XCJcclxuICAodmFsdWVDaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKHZhbHVlKV09XCJzZWxlY3Rpb25cIlxyXG4gIChhY3Rpb25DbGlja2VkKT1cIm9uQWN0aW9uKCRldmVudClcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd24td3JhcHBlclwiXHJcbiAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGggPiAwIH1cIlxyXG4+XHJcbjwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbjxtYXQtZXJyb3JcclxuICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICpuZ0lmPVwiaGFzRXJyb3JzKClcIlxyXG4+XHJcbiAgPHVsPlxyXG4gICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cclxuICAgICAge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9tYXQtZXJyb3I+XHJcbiJdfQ==
|