iptdevs-design-system 3.1.227 → 3.1.228
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/esm2020/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.mjs +26 -8
- package/fesm2015/iptdevs-design-system.mjs +26 -7
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +25 -7
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -365,13 +365,31 @@ export class CodFormStepFourComponent extends CodFormSteps {
|
|
|
365
365
|
}
|
|
366
366
|
setDataFromPreviusCodPrices() {
|
|
367
367
|
this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_payment.lenght == 1 ? 2 : 1);
|
|
368
|
-
this.codFormStepFour.
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
368
|
+
if (this.codFormStepFour.get('payment_method')?.value == 1) {
|
|
369
|
+
this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_price.fee_number);
|
|
370
|
+
this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
371
|
+
this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.financed_price);
|
|
372
|
+
this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
373
|
+
this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_price.fee_number);
|
|
374
|
+
this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
375
|
+
this.updateValueAndValidity();
|
|
376
|
+
}
|
|
377
|
+
else if (this.codFormStepFour.get('payment_method')?.value == 2) {
|
|
378
|
+
this.codFormStepFour.controls['quota_times'].setValue(1);
|
|
379
|
+
this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
380
|
+
this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.normal_price);
|
|
381
|
+
this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
382
|
+
this.codFormStepFour.controls['fee_number'].setValue(1);
|
|
383
|
+
this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
384
|
+
this.updateValueAndValidity();
|
|
385
|
+
}
|
|
386
|
+
// this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
387
|
+
// this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
|
|
388
|
+
// this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
389
|
+
// this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
|
|
390
|
+
// this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
391
|
+
// this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);
|
|
392
|
+
// this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
|
|
375
393
|
}
|
|
376
394
|
}
|
|
377
395
|
CodFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFourComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CalculateQuotesService }, { token: i3.CommunicatorService }, { token: i4.ParameterService }, { token: i5.CodFormControls }, { token: i6.CommercialService }, { token: i7.BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -388,4 +406,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
388
406
|
}], financingData: [{
|
|
389
407
|
type: Output
|
|
390
408
|
}] } });
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFVLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCaEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUEwQnhELFlBQ1UsRUFBZSxFQUNmLHNCQUE4QyxFQUM5QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FB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QUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekwsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakosQ0FBQzs7cUhBcllVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJQQzFCckMsNDNKQWtJQTsyRkR4R2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHdCQUF3QjtnU0FLekIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2RGb3JtU3RlcHMsIGxvY2FsU3RvcmFnZVZhbHVlcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLXN0ZXBzJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcywgQ2FsY3VsYXRlUXVvdGVzU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NhbGN1bGF0ZS1xdW90ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tdW5pY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbG9naWMvY29tbXVuaWNhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kUHJpY2VzLCBDb2RQcmljZXNScSwgSU9idGFpbkNvZFByaWNlc1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvY29tbWVyY2lhbC9jb21tZXJjaWFsLm1vZGVsJztcbmltcG9ydCB7IFBhcmFtZXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3BhcmFtZXRlcnMtc2VydmljZS9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbWVyY2lhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2NvbW1lcmNpYWwtc2VydmljZS9jb21lcmNpYWwuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5cbmludGVyZmFjZSBDb3Vyc2VUeXBlcyB7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBudW1iZXJfY2xhc3M6IG51bWJlcjtcbiAgYWNhZGVtaWNfcGxhbjogbnVtYmVyO1xuICB1cGRhdGVkX2F0OiBzdHJpbmc7XG4gIGNyZWF0ZWRfYXQ6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2QtZm9ybS1zdGVwLWZvdXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybVN0ZXBGb3VyQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXNFZGl0Q29kPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaW5pdGlhbERhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGVwRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGZpbmFuY2luZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb2RGb3JtU3RlcEZvdXIhOiBGb3JtR3JvdXA7XG4gIGlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXIuJztcbiAgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW1xuICAgIHsgY29kZTogJzEnLCBuYW1lOiAnRmluYW5jaWFkbycgfSxcbiAgICB7IGNvZGU6ICcyJywgbmFtZTogJ0NvbnRhZG8nIH0sXG4gIF07XG4gIGRhdGFGaW5hbmNpbmc6IGFueVtdID0gW107XG4gIGlzRmluYW5jaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VtZXN0cmFsOiBib29sZWFuID0gZmFsc2U7XG4gIGNvZFByaWNlczogQ29kUHJpY2VzW10gPSBbXTtcbiAgY29kUHJpY2VzRmlsdGVyOiBDb2RQcmljZXNbXSA9IFtdO1xuXG4gIGRhdGFQcmljZXM6YW55O1xuICBmZWVSZXNwb25zZTogYm9vbGVhbiA9IGZhbHNlO1xuICB0aGVyZUFyZVBsYW5zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gQ29udHJvbHMgZGVsIGZvcm11bGFyaW9cbiAgY29udHJvbHMgPSBuZXcgQ29kRm9ybUNvbnRyb2xzKCkuY29udHJvbHNbM107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVRdW90ZXNTZXJ2aWNlOiBDYWxjdWxhdGVRdW90ZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbXVuaWNhdG9yU2VydmljZTogQ29tbXVuaWNhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMudmFsaWRhdGVFcnJvcnMoKTtcbiAgICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gICAgdGhpcy5nZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKTtcbiAgICBpZiAoY2hhbmdlc1snaW5pdGlhbERhdGEnXSkge1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEgIT0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UgIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YUZyb21QcmV2aXVzQ29kUHJpY2VzKCk7XG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKTtcbiAgICAgICAgICB0aGlzLnNob3dUYWJsZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xuICAvLyAgIC8vIHRoaXMuY2xlYW5Db21wb25lbnQoKTtcbiAgLy8gICB0aGlzLmluaXRGb3JtKCk7XG4gIC8vICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgLy8gICB0aGlzLnZhbGlkYXRlRXJyb3JzKCk7XG4gIC8vICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAvLyAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gIC8vIH1cblxuXG4gIGdldFZhbHVlc09mU3RlcE9uZUNvbXBvbmVudCgpIHtcbiAgICAvLyBUaXBvIGRlIGN1cnNvIHNlbGVjY2lvbmFkb1xuICAgIHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5nZXRTZWxlY3RlZENvdXJzZVR5cGUoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENvdXJzZXNUeXBlcygpLnBpcGUoXG4gICAgICAgIG1hcCggKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBjb3Vyc2VUeXBlczogQ291cnNlVHlwZXNbXSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgcmV0dXJuIGNvdXJzZVR5cGVzLmZpbHRlciggKHsgbmFtZSB9KSA9PiBuYW1lLmluY2x1ZGVzKCdTZW1lc3RyYWwnKSApXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCAoY291cnNlVHlwZXM6IENvdXJzZVR5cGVzW10pID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3Vyc2VUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChjb3Vyc2VUeXBlc1tpXS5jb2RlLnRvU3RyaW5nKCkgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VtZXN0cmFsID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2VtZXN0cmFsID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgLy8gQ29udmVuaW8gc2VsZWNjaW9uYWRvXG4gICAgLy8gdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLmdldFNlbGVjdGVkQWdyZWVtZW50KCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAvLyAgIHRoaXMuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQodmFsdWUpO1xuICAgIC8vIH0pO1xuICB9XG5cbiAgZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoYWdyZWVtZW50Pzogc3RyaW5nKSB7XG4gICAgbGV0IGFncmVlbWVudFNlbGVjdGVkOiBzdHJpbmcgfCBudWxsO1xuICAgIGlmIChhZ3JlZW1lbnQpIHtcbiAgICAgIGFncmVlbWVudFNlbGVjdGVkID0gYWdyZWVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBhZ3JlZW1lbnRTZWxlY3RlZCA9IHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzEnKSB7XG4gICAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgIGFncmVlbWVudDogICAgIE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCksXG4gICAgICAgIHBheW1lbnRfbWV0aG9kOiAnY3VvdGEnXG4gICAgICB9XG4gICAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50VHlwZVBheW1lbnQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PntcbiAgICAgICAgdGhpcy5jb2RQcmljZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5jb2RlKVxuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLm5vcm1hbF9wcmljZSlcbiAgICAgIH0pXG4gICAgICB9ZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzInKSB7XG4gICAgICAgICAgbGV0IHJlcXVlc3Q6IENvZFByaWNlc1JxID0ge1xuICAgICAgICAgICAgYWdyZWVtZW50OiAgICAgTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSxcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kOiAnY29udGEnXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnRUeXBlUGF5bWVudChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+e1xuICAgICAgICAgICAgdGhpcy5jb2RQcmljZXMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uY29kZSk7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLm5vcm1hbF9wcmljZSlcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmVucm9sbG1lbnQpO1xuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSkuc3Vic2NyaWJlKHtcbiAgICAvLyAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgLy8gICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgLy8gICAgICAgY29uc3QgY29kUHJpY2VzOiBDb2RQcmljZXNbXSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgLy8gICAgICAgdGhpcy5jb2RQcmljZXMgPSBjb2RQcmljZXM7XG4gICAgLy8gICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMScpIHtcbiAgICAvLyAgICAgICAgICAgY29uc3QgYXV4ID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmFncmVlbWVudCA9PT0gTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSlbMF07XG4gICAgLy8gICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGF1eC5jb2RlKVxuICAgIC8vICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGF1eC5ub3JtYWxfcHJpY2UpXG4gICAgLy8gICAgICAgICB9ZWxzZSB7XG4gICAgLy8gICAgICAgICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzInKSB7XG4gICAgLy8gICAgICAgICAgICAgLy8gY29uc3QgYXV4ID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmFncmVlbWVudCA9PT0gTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSlbMF07XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgYXV4ID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmZlZV9udW1iZXIgPT09IDEpWzBdO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGF1eC5jb2RlKTtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGF1eC5ub3JtYWxfcHJpY2UpXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoYXV4LmVucm9sbG1lbnQpO1xuICAgIC8vICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9LFxuICAgIC8vICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUubG9nKGVycilcbiAgICAvLyB9KVxuICB9XG5cbiAgdmFsaWRhdGVFcnJvcnMoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2VzID0+IHtcbiAgICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTGEgY2FudGlkYWQgZGUgY3VvdGFzIG3DrW5pbWFzIGRlYmUgc2VyIDEnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5oYXNFcnJvcignbWF4JykpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTGEgY2FudGlkYWQgZGUgY3VvdGFzIG5vIGRlYmUgc2VyIHN1cGVyaW9yIGEgMTInO1xuICAgICAgfVxuICAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXInO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzZWFyY2hQcmljZUJ5VHlwZVBheW1lbnQoYWdyZWVtZW50U2VsZWN0ZWQ6IGFueSwgdHlwZTogc3RyaW5nLCBjaGFuZ2U6IHN0cmluZyl7XG4gICAgbGV0IHJlcXVlc3Q6IENvZFByaWNlc1JxID0ge1xuICAgICAgYWdyZWVtZW50OiAgICAgTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiB0eXBlXG4gICAgfVxuICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnRUeXBlUGF5bWVudChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+e1xuICAgICAgdGhpcy5jb2RQcmljZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pXG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ciA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcHJvZ3JhbV9wcmljZTogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGF5bWVudF9kYXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X21ldGhvZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcXVvdGFfdGltZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHRvdGFsX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYWlkX2xldmVsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV9wcmljZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZmVlX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5QYXltZW50TWV0aG9kRmllbGQoKTtcbiAgfVxuXG4gIGxpc3RlblBheW1lbnRNZXRob2RGaWVsZCgpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpO1xuICAgIGNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgLy8gRmluYW5jaWFkb1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzEnKSB7XG4gICAgICAgIC8vIFBvbmVyIHZhbGlkYWNpb25lc1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBwYXJhIHF1ZSBzZSB0b21lbiBsb3MgY2FtYmlvc1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIGxvcyBjb250cm9scyBnbG9iYWxlc1xuICAgICAgICB0aGlzLnVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZSlcbiAgICAgIH1cblxuICAgICAgLy8gZGUgY29udGFkb1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzInKSB7XG4gICAgICAgIC8vIFF1aXRhciBsYXMgdmFsaWRhY2lvbmVzXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgcGFyYSBxdWUgc2UgdG9tZW4gbG9zIGNhbWJpb3NcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBsb3MgY29udHJvbHMgZ2xvYmFsZXNcbiAgICAgICAgdGhpcy51cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2UpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2U6IHN0cmluZykge1xuICAgIGxldCBjb250cm9scyA9IHRoaXMuY29udHJvbHMuZmlsdGVyKGNvbnRyb2wgPT4gY29udHJvbC5uYW1lICE9PSAncGF5bWVudF9tZXRob2QnKTtcbiAgICBjb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzEnKSB0aGlzLmNvZEZvcm1Db250cm9scy5jaGFuZ2VWYWx1ZSg0LCBjb250cm9sLm5hbWUsIHRydWUpXG4gICAgICBpZiAoY2hhbmdlID09PSAnMicpIHtcbiAgICAgICAgaWYgKGNvbnRyb2wubmFtZSA9PT0gJ3F1b3RhX3RpbWVzJykgdGhpcy5jb2RGb3JtQ29udHJvbHMuY2hhbmdlVmFsdWUoNCwgY29udHJvbC5uYW1lLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoNCwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg0LCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dUYWJsZSgpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IHRydWU7XG4gICAgY29uc3QgdG90YWxfcHJpY2UgPSB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZTtcbiAgICBpZiAoKHRvdGFsX3ByaWNlID09PSAnbnVsbCcpIHx8IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmludmFsaWQpIHtcbiAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgIHRpdGxlOiAnRXJyb3IgdGFibGUnLFxuICAgICAgICB0ZXh0OiAnRGViZXMgaW5ncmVzYXIgZWwgbW9udG8gdG90YWwgZGUgbGEgbWF0csOtY3VsYSB5IGxhIGN1b3RhIGluaWNpYWwnLFxuICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICB9KVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENhbGN1bGFyIGN1b3Rhc1xuICAgIHRoaXMuZGF0YUZpbmFuY2luZyA9IFtdO1xuICAgIC8vIGNvbnN0IHF1b3RhVmFsdWVzID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLnF1b3RhX3ByaWNlO1xuICAgIC8vIGxldCBwYXJhbXM6IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcyA9IHtcbiAgICAvLyAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS52YWx1ZSksXG4gICAgLy8gICBxdW90YVZhbHVlcyxcbiAgICAvLyAgIHF1b3RhVGltZXM6IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWUpKVswXS5mZWVfbnVtYmVyLFxuICAgIC8vICAgdG90YWxQcmljZTogdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWUsXG4gICAgLy8gfVxuXG4gICAgbGV0IHBhcmFtczogQ2FsY3VsYXRlUXVvdGVzUGFyYW1zID0ge1xuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAgIHF1b3RhVmFsdWVzOiBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10udmFsdWUpLFxuICAgICAgcXVvdGFUaW1lczogTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10udmFsdWUpLFxuICAgICAgdG90YWxQcmljZTogdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWUsXG4gICAgfVxuXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gdGhpcy5jYWxjdWxhdGVRdW90ZXNTZXJ2aWNlLmNhbGN1bGF0ZVF1b3RlcyhwYXJhbXMpO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluYW5jaW5nRGF0YS5lbWl0KHRoaXMuZGF0YUZpbmFuY2luZyk7XG4gIH1cblxuICBjYWxjdWxhdGVOZXdRdW90ZXMoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzRmluYW5jaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQobnVsbCk7XG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmludmFsaWQpIHJldHVybjtcbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDVcbiAgICB0aGlzLmNoYW5nZVN0ZXBFdmVudC5lbWl0KDQpO1xuICB9XG5cbiAgaXNGaW5hbmNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT0gMTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGVsIHNlbGVjdFxuICBzZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2Q6IGFueSkge1xuICAgIHRoaXMuZmVlUmVzcG9uc2UgPSB0cnVlO1xuICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IGZhbHNlO1xuXG4gICAgaWYgKHBheW1lbnRNZXRob2QgIT09ICcnKSB7XG4gICAgICBjb25zdCByZXF1ZXN0OiBJT2J0YWluQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgIHRva2VuOiAgICAgICAgICAgIHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICAgIGNvdXJzZV90eXBlOiAgICAgIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY291cnNlX3R5cGUnKSksXG4gICAgICAgIGFncmVlbWVudDogICAgICAgIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JykpLFxuICAgICAgICBjb3Vyc2VfbW9kYWxpdHk6ICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2NvdXJzZV9tb2RhbGl0eScpKSxcbiAgICAgICAgcGF5bWVudF9tZXRob2Q6ICAgcGFyc2VJbnQocGF5bWVudE1ldGhvZClcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuT2J0YWluQ29kUHJpY2VzKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5kYXRhUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50aGVyZUFyZVBsYW5zID0gdHJ1ZTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmVlUmVzcG9uc2UgPSBmYWxzZTtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgcG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5Pb3BzLi4gbm8gaGF5IHBsYW5lcyBkZSBwYWdvcywgXFxuIGVuIGVsIGN1cnNvIGVsZWdpZG8uPC9wPicsXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICB0aW1lcjogMzAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNsZWFySW5wdXRQYXltZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUocGF5bWVudE1ldGhvZCk7XG4gICAgICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFF1b3RhcyhxdW90YXM6IHN0cmluZykge1xuICAgIGlmIChxdW90YXMgIT09ICdOw7ptZXJvIGRlIGN1b3RhcycpIHtcbiAgICAgIGNvbnN0IGNvZFByaWNlOiBDb2RQcmljZXNbXSA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIocXVvdGFzKSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5jb2RlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGNvZFByaWNlWzBdLmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5maW5hbmNlZF9wcmljZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFuQ29tcG9uZW50KCl7XG4gICAgdGhpcy5yZXNldExvY2FsU3RvcmFnZSh0aGlzLmNvbnRyb2xzKTtcbiAgfVxuXG4gIHNlbGVjdExldmVscyhkYXRhUGF5bWVudDogYW55KXtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAxKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5jb2RlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5maW5hbmNlZF9wcmljZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKGRhdGFQYXltZW50LnBhaWRfbGV2ZWwgLSAxKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5xdW90YV9wcmljZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYodGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAyKXtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50Lm5vcm1hbF9wcmljZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKGRhdGFQYXltZW50LnBhaWRfbGV2ZWwgLSAxKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5xdW90YV9wcmljZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhcklucHV0UGF5bWVudCgpe1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICBzZXREYXRhRnJvbVByZXZpdXNDb2RQcmljZXMoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wYXltZW50LmxlbmdodCA9PSAxID8gMiA6IDEpXG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZW5yb2xsbWVudCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wYXltZW50LmxlbmdodCA9PSAxID8gdGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2Uubm9ybWFsX3ByaWNlICA6IHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmZpbmFuY2VkX3ByaWNlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLnBhaWRfbGV2ZWwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcGF5bWVudC5sZW5naHQgPT0gMSA/IDEgOiB0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5mZWVfbnVtYmVyKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5xdW90YV9wcmljZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3BheW1lbnRbMF0udGltZWx5X2RhdGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3BheW1lbnQubGVuZ2h0ID09IDEgPyBudWxsIDogdGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlcik7XG4gIH1cblxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiaXNTZW1lc3RyYWxcIiBjbGFzcz1cIm0tMSBwLTIgYm9yZGVyLXJvdW5kLWxnIGJnLWJsdWUtNTAwIHRleHQtd2hpdGVcIj5cbiAgPHN0cm9uZz5Ob3RhOiA8L3N0cm9uZz5cbiAgRWwgdGlwbyBkZSBjdXJzbyBzZWxlY2Npb25hZG8gZnVlIHNlbWVzdHJhbCwgcG9yIGxvIHRhbnRvIGVsIGVzdHVkaWFudGUgZGViZSBwYWdhciBtYXRyw61jdWxhIHkgcHJpbWVyYSBjdW90YSAoTSZNKVxuPC9kaXY+XG5cbjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiY29kRm9ybVN0ZXBGb3VyXCIgY2xhc3M9XCJncmlkIG10LTJcIj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UGF5bWVudE1ldGhvZCgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cInBheW1lbnRNZXRob2RzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTcOpdG9kbyBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWxvYWRlciAqbmdJZj1cImZlZVJlc3BvbnNlXCI+PC9pcHQtbG9hZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwidGhlcmVBcmVQbGFuc1wiPlxuICAgICAgPHAtdGFibGVcbiAgICAgICAgW3ZhbHVlXT1cImRhdGFQcmljZXNcIlxuICAgICAgICBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxMDAlJ31cIlxuICAgICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgU2VsZWNjaW9uIGRlIG5pdmVsZXMgYSBjYW5jZWxhci5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkNhbmNlbGFyPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkN1b3RhczwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5BZG1pbjwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5wYWlkX2xldmVsIH19IE5pdmVsKGVzKTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgZGF0YS5mZWVfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB0LTIgcGItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktbW9uZXktYmlsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1yb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TGV2ZWxzKGRhdGEpXCJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLXRhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZVwiIC0tPlxuICAgIDwhLS0gPGlwdC1zZWxlY3QgKm5nSWY9XCJpc0ZpbmFuY2VkKCk7XCJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiJzEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0UXVvdGFzKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidOw7ptZXJvIGRlIGN1b3RhcydcIlxuICAgICAgW2RhdGFdPVwiY29kUHJpY2VzXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+IC0tPlxuICAgIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ01vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXVwiXG4gICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidWYWxvciB0b3RhbCBkZWwgcHJvZ3JhbWEnXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIFRhYmxhIGRlIGZpbmFuY2lhY2nDs24gLS0+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cImlzRmluYW5jaW5nXCI+XG4gICAgPHAtdGFibGVcbiAgICAgIFt2YWx1ZV09XCJkYXRhRmluYW5jaW5nXCJcbiAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgQ8OhbGN1bG8gZGUgY3VvdGFzXG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tc20gbWwtYXV0b1wiIGxhYmVsPVwiTnVldm8gY8OhbGN1bG9cIiAoY2xpY2spPVwiY2FsY3VsYXRlTmV3UXVvdGVzKClcIiBsYWIgaWNvbj1cInBpIHBpLXJlcGxheVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+IzwvdGg+XG4gICAgICAgICAgPHRoPlZhbG9yPC90aD5cbiAgICAgICAgICA8dGg+RmVjaGE8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVswXSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMV0gfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzJdIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRhYmxlPlxuICA8L2Rpdj5cbiAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxuXG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBGb3VyLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGb3VyLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWwtYXV0byBnYXAtMlwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIFtkaXNhYmxlZF09XCJpc0ZpbmFuY2luZyB8fCBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgIT09ICcxJ1widHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPVwic2hvd1RhYmxlKClcIiBwQnV0dG9uIGxhYmVsPVwiQ2FsY3VsYXIgY3VvdGFzXCIgaWNvbj1cInBpIHBpLXNsaWRlcnMtaFwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFpc0ZpbmFuY2luZyAmJiBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIHR5cGU9XCJzdWJtaXRcIiBbY2xhc3NdPVwiaXNFZGl0Q29kID8gJ21sLWF1dG8geWVsbG93LTMwMCBwLWJ1dHRvbi1zbScgOiAnbWwtYXV0byBwLWJ1dHRvbi1zbSdcIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFVLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCaEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUEwQnhELFlBQ1UsRUFBZSxFQUNmLHNCQUE4QyxFQUM5QyxtQkFBd0MsRUFDeEMsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQVJBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FB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QUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO1FBRUQsZ0dBQWdHO1FBQ2hHLDRMQUE0TDtRQUM1TCwrRkFBK0Y7UUFDL0YsOElBQThJO1FBQzlJLGlHQUFpRztRQUNqRyx1R0FBdUc7UUFDdkcsK0lBQStJO0lBQ2pKLENBQUM7O3FIQXhaVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwyUEMxQnJDLDQzSkFrSUE7MkZEeEdhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7Z1NBS3pCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVRdW90ZXNQYXJhbXMsIENhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jYWxjdWxhdGUtcXVvdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENvZFByaWNlcywgQ29kUHJpY2VzUnEsIElPYnRhaW5Db2RQcmljZXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lcmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb21tZXJjaWFsLXNlcnZpY2UvY29tZXJjaWFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQ291cnNlVHlwZXMge1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiBudW1iZXI7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1mb3VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwRm91ckNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGlzRWRpdENvZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBmaW5hbmNpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29kRm9ybVN0ZXBGb3VyITogRm9ybUdyb3VwO1xuICBpc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLic7XG4gIHBheW1lbnRNZXRob2RzOiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6ICcxJywgbmFtZTogJ0ZpbmFuY2lhZG8nIH0sXG4gICAgeyBjb2RlOiAnMicsIG5hbWU6ICdDb250YWRvJyB9LFxuICBdO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuICBpc0ZpbmFuY2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbWVzdHJhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gW107XG4gIGNvZFByaWNlc0ZpbHRlcjogQ29kUHJpY2VzW10gPSBbXTtcblxuICBkYXRhUHJpY2VzOmFueTtcbiAgZmVlUmVzcG9uc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGhlcmVBcmVQbGFuczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzNdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29kRm9ybUNvbnRyb2xzOiBDb2RGb3JtQ29udHJvbHMsXG4gICAgcHJpdmF0ZSBjb21tZXJjaWFsU2VydmljZTogQ29tbWVyY2lhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKCk7XG4gICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10pIHtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnNldERhdGFGcm9tUHJldml1c0NvZFByaWNlcygpO1xuICAgICAgICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgICAgICAgdGhpcy5zaG93VGFibGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgLy8gICAvLyB0aGlzLmNsZWFuQ29tcG9uZW50KCk7XG4gIC8vICAgdGhpcy5pbml0Rm9ybSgpO1xuICAvLyAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gIC8vICAgdGhpcy52YWxpZGF0ZUVycm9ycygpO1xuICAvLyAgIC8vIHRoaXMuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnQoKTtcbiAgLy8gICB0aGlzLmdldFZhbHVlc09mU3RlcE9uZUNvbXBvbmVudCgpO1xuICAvLyB9XG5cblxuICBnZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKSB7XG4gICAgLy8gVGlwbyBkZSBjdXJzbyBzZWxlY2Npb25hZG9cbiAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2UuZ2V0U2VsZWN0ZWRDb3Vyc2VUeXBlKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDb3Vyc2VzVHlwZXMoKS5waXBlKFxuICAgICAgICBtYXAoIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgY291cnNlVHlwZXM6IENvdXJzZVR5cGVzW10gPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIHJldHVybiBjb3Vyc2VUeXBlcy5maWx0ZXIoICh7IG5hbWUgfSkgPT4gbmFtZS5pbmNsdWRlcygnU2VtZXN0cmFsJykgKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSggKGNvdXJzZVR5cGVzOiBDb3Vyc2VUeXBlc1tdKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291cnNlVHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoY291cnNlVHlwZXNbaV0uY29kZS50b1N0cmluZygpID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1NlbWVzdHJhbCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1NlbWVzdHJhbCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIC8vIENvbnZlbmlvIHNlbGVjY2lvbmFkb1xuICAgIC8vIHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5nZXRTZWxlY3RlZEFncmVlbWVudCgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgLy8gICB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KHZhbHVlKTtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIGdldENvZFByaWNlc0J5QWdyZWVtZW50KGFncmVlbWVudD86IHN0cmluZykge1xuICAgIGxldCBhZ3JlZW1lbnRTZWxlY3RlZDogc3RyaW5nIHwgbnVsbDtcbiAgICBpZiAoYWdyZWVtZW50KSB7XG4gICAgICBhZ3JlZW1lbnRTZWxlY3RlZCA9IGFncmVlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWdyZWVtZW50U2VsZWN0ZWQgPSB0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJykge1xuICAgICAgbGV0IHJlcXVlc3Q6IENvZFByaWNlc1JxID0ge1xuICAgICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogJ2N1b3RhJ1xuICAgICAgfVxuICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uY29kZSlcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5ub3JtYWxfcHJpY2UpXG4gICAgICB9KVxuICAgICAgfWVsc2Uge1xuICAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcyJykge1xuICAgICAgICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgICAgICAgIGFncmVlbWVudDogICAgIE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCksXG4gICAgICAgICAgICBwYXltZW50X21ldGhvZDogJ2NvbnRhJ1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50VHlwZVBheW1lbnQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PntcbiAgICAgICAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmNvZGUpO1xuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5ub3JtYWxfcHJpY2UpXG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5lbnJvbGxtZW50KTtcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50KE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpLnN1YnNjcmliZSh7XG4gICAgLy8gICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgIC8vICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgIC8vICAgICAgIGNvbnN0IGNvZFByaWNlczogQ29kUHJpY2VzW10gPSByZXNwb25zZS5kYXRhO1xuICAgIC8vICAgICAgIHRoaXMuY29kUHJpY2VzID0gY29kUHJpY2VzO1xuICAgIC8vICAgICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzEnKSB7XG4gICAgLy8gICAgICAgICAgIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5hZ3JlZW1lbnQgPT09IE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpWzBdO1xuICAgIC8vICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShhdXguY29kZSlcbiAgICAvLyAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShhdXgubm9ybWFsX3ByaWNlKVxuICAgIC8vICAgICAgICAgfWVsc2Uge1xuICAgIC8vICAgICAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcyJykge1xuICAgIC8vICAgICAgICAgICAgIC8vIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5hZ3JlZW1lbnQgPT09IE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpWzBdO1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5mZWVfbnVtYmVyID09PSAxKVswXTtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShhdXguY29kZSk7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShhdXgubm9ybWFsX3ByaWNlKVxuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGF1eC5lbnJvbGxtZW50KTtcbiAgICAvLyAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIGVycm9yOiAoZXJyKSA9PiBjb25zb2xlLmxvZyhlcnIpXG4gICAgLy8gfSlcbiAgfVxuXG4gIHZhbGlkYXRlRXJyb3JzKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhIGNhbnRpZGFkIGRlIGN1b3RhcyBtw61uaW1hcyBkZWJlIHNlciAxJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhIGNhbnRpZGFkIGRlIGN1b3RhcyBubyBkZWJlIHNlciBzdXBlcmlvciBhIDEyJztcbiAgICAgIH1cbiAgICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyJztcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc2VhcmNoUHJpY2VCeVR5cGVQYXltZW50KGFncmVlbWVudFNlbGVjdGVkOiBhbnksIHR5cGU6IHN0cmluZywgY2hhbmdlOiBzdHJpbmcpe1xuICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgIGFncmVlbWVudDogICAgIE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCksXG4gICAgICBwYXltZW50X21ldGhvZDogdHlwZVxuICAgIH1cbiAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50VHlwZVBheW1lbnQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PntcbiAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHByb2dyYW1fcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfZGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHF1b3RhX3RpbWVzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0b3RhbF9wcmljZTogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGFpZF9sZXZlbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcXVvdGFfcHJpY2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGZlZV9udW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuUGF5bWVudE1ldGhvZEZpZWxkKCk7XG4gIH1cblxuICBsaXN0ZW5QYXltZW50TWV0aG9kRmllbGQoKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKTtcbiAgICBjb250cm9sPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgIC8vIEZpbmFuY2lhZG9cbiAgICAgIGlmIChjaGFuZ2UgPT09ICcxJykge1xuICAgICAgICAvLyBQb25lciB2YWxpZGFjaW9uZXNcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgcGFyYSBxdWUgc2UgdG9tZW4gbG9zIGNhbWJpb3NcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBsb3MgY29udHJvbHMgZ2xvYmFsZXNcbiAgICAgICAgdGhpcy51cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2UpXG4gICAgICB9XG5cbiAgICAgIC8vIGRlIGNvbnRhZG9cbiAgICAgIGlmIChjaGFuZ2UgPT09ICcyJykge1xuICAgICAgICAvLyBRdWl0YXIgbGFzIHZhbGlkYWNpb25lc1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIHBhcmEgcXVlIHNlIHRvbWVuIGxvcyBjYW1iaW9zXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgbG9zIGNvbnRyb2xzIGdsb2JhbGVzXG4gICAgICAgIHRoaXMudXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlOiBzdHJpbmcpIHtcbiAgICBsZXQgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzLmZpbHRlcihjb250cm9sID0+IGNvbnRyb2wubmFtZSAhPT0gJ3BheW1lbnRfbWV0aG9kJyk7XG4gICAgY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGlmIChjaGFuZ2UgPT09ICcxJykgdGhpcy5jb2RGb3JtQ29udHJvbHMuY2hhbmdlVmFsdWUoNCwgY29udHJvbC5uYW1lLCB0cnVlKVxuICAgICAgaWYgKGNoYW5nZSA9PT0gJzInKSB7XG4gICAgICAgIGlmIChjb250cm9sLm5hbWUgPT09ICdxdW90YV90aW1lcycpIHRoaXMuY29kRm9ybUNvbnRyb2xzLmNoYW5nZVZhbHVlKDQsIGNvbnRyb2wubmFtZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXMgPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDQsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoNCwgY29udHJvbC5uYW1lLCB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93VGFibGUoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSB0cnVlO1xuICAgIGNvbnN0IHRvdGFsX3ByaWNlID0gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWU7XG4gICAgaWYgKCh0b3RhbF9wcmljZSA9PT0gJ251bGwnKSB8fCB0aGlzLmNvZEZvcm1TdGVwRm91ci5pbnZhbGlkKSB7XG4gICAgICBTd2FsLmZpcmUoe1xuICAgICAgICB0aXRsZTogJ0Vycm9yIHRhYmxlJyxcbiAgICAgICAgdGV4dDogJ0RlYmVzIGluZ3Jlc2FyIGVsIG1vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEgeSBsYSBjdW90YSBpbmljaWFsJyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhciBjdW90YXNcbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSBbXTtcbiAgICAvLyBjb25zdCBxdW90YVZhbHVlcyA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWUpKVswXS5xdW90YV9wcmljZTtcbiAgICAvLyBsZXQgcGFyYW1zOiBDYWxjdWxhdGVRdW90ZXNQYXJhbXMgPSB7XG4gICAgLy8gICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udmFsdWUpLFxuICAgIC8vICAgcXVvdGFWYWx1ZXMsXG4gICAgLy8gICBxdW90YVRpbWVzOiB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0uZmVlX251bWJlcixcbiAgICAvLyAgIHRvdGFsUHJpY2U6IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlLFxuICAgIC8vIH1cblxuICAgIGxldCBwYXJhbXM6IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcyA9IHtcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS52YWx1ZSksXG4gICAgICBxdW90YVZhbHVlczogTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnZhbHVlKSxcbiAgICAgIHF1b3RhVGltZXM6IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1snZmVlX251bWJlciddLnZhbHVlKSxcbiAgICAgIHRvdGFsUHJpY2U6IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlLFxuICAgIH1cblxuICAgIHRoaXMuZGF0YUZpbmFuY2luZyA9IHRoaXMuY2FsY3VsYXRlUXVvdGVzU2VydmljZS5jYWxjdWxhdGVRdW90ZXMocGFyYW1zKTtcbiAgICB0aGlzLmlzRmluYW5jaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmFuY2luZ0RhdGEuZW1pdCh0aGlzLmRhdGFGaW5hbmNpbmcpO1xuICB9XG5cbiAgY2FsY3VsYXRlTmV3UXVvdGVzKCkge1xuICAgIHRoaXMuaXNDYWxjdWxhdGVRdW90ZXNCdXR0b25DbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc0ZpbmFuY2luZyA9IGZhbHNlO1xuICAgIHRoaXMuZmluYW5jaW5nRGF0YS5lbWl0KG51bGwpO1xuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5pbnZhbGlkKSByZXR1cm47XG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyA1XG4gICAgdGhpcy5jaGFuZ2VTdGVwRXZlbnQuZW1pdCg0KTtcbiAgfVxuXG4gIGlzRmluYW5jZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09IDE7XG4gIH1cblxuICAvLyBFdmVudG9zIGRlbCBzZWxlY3RcbiAgc2VsZWN0UGF5bWVudE1ldGhvZChwYXltZW50TWV0aG9kOiBhbnkpIHtcbiAgICB0aGlzLmZlZVJlc3BvbnNlID0gdHJ1ZTtcbiAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSBmYWxzZTtcblxuICAgIGlmIChwYXltZW50TWV0aG9kICE9PSAnJykge1xuICAgICAgY29uc3QgcmVxdWVzdDogSU9idGFpbkNvZFByaWNlc1JxID0ge1xuICAgICAgICB0b2tlbjogICAgICAgICAgICB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgICBjb3Vyc2VfdHlwZTogICAgICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2NvdXJzZV90eXBlJykpLFxuICAgICAgICBhZ3JlZW1lbnQ6ICAgICAgICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpKSxcbiAgICAgICAgY291cnNlX21vZGFsaXR5OiAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdjb3Vyc2VfbW9kYWxpdHknKSksXG4gICAgICAgIHBheW1lbnRfbWV0aG9kOiAgIHBhcnNlSW50KHBheW1lbnRNZXRob2QpXG4gICAgICB9XG4gICAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLk9idGFpbkNvZFByaWNlcyhyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEgIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZGF0YVByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgdGhpcy5mZWVSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IHRydWU7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+T29wcy4uIG5vIGhheSBwbGFuZXMgZGUgcGFnb3MsIFxcbiBlbiBlbCBjdXJzbyBlbGVnaWRvLjwvcD4nLFxuICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgdGltZXI6IDMwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jbGVhcklucHV0UGF5bWVudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKHBheW1lbnRNZXRob2QpO1xuICAgICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RRdW90YXMocXVvdGFzOiBzdHJpbmcpIHtcbiAgICBpZiAocXVvdGFzICE9PSAnTsO6bWVybyBkZSBjdW90YXMnKSB7XG4gICAgICBjb25zdCBjb2RQcmljZTogQ29kUHJpY2VzW10gPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHF1b3RhcykpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uZmluYW5jZWRfcHJpY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjbGVhbkNvbXBvbmVudCgpe1xuICAgIHRoaXMucmVzZXRMb2NhbFN0b3JhZ2UodGhpcy5jb250cm9scyk7XG4gIH1cblxuICBzZWxlY3RMZXZlbHMoZGF0YVBheW1lbnQ6IGFueSl7XG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKT8udmFsdWUgPT0gMSkge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmluYW5jZWRfcHJpY2UpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5wYWlkX2xldmVsIC0gMSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1snZmVlX251bWJlciddLnNldFZhbHVlKGRhdGFQYXltZW50LmZlZV9udW1iZXIpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucXVvdGFfcHJpY2UpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBlbHNlIGlmKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKT8udmFsdWUgPT0gMil7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5jb2RlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5ub3JtYWxfcHJpY2UpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5wYWlkX2xldmVsIC0gMSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1snZmVlX251bWJlciddLnNldFZhbHVlKGRhdGFQYXltZW50LmZlZV9udW1iZXIpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucXVvdGFfcHJpY2UpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJJbnB1dFBheW1lbnQoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgc2V0RGF0YUZyb21QcmV2aXVzQ29kUHJpY2VzKCl7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcGF5bWVudC5sZW5naHQgPT0gMSA/IDIgOiAxKVxuXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKT8udmFsdWUgPT0gMSkge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmluYW5jZWRfcHJpY2UpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5wYWlkX2xldmVsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydmZWVfbnVtYmVyJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlcik7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5xdW90YV9wcmljZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYodGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAyKXtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKDEpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLm5vcm1hbF9wcmljZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLnBhaWRfbGV2ZWwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ2ZlZV9udW1iZXInXS5zZXRWYWx1ZSgxKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLnF1b3RhX3ByaWNlKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmVucm9sbG1lbnQpO1xuICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcGF5bWVudC5sZW5naHQgPT0gMSA/IHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLm5vcm1hbF9wcmljZSAgOiB0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5maW5hbmNlZF9wcmljZSk7XG4gICAgLy8gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wcmljZS5wYWlkX2xldmVsKTtcbiAgICAvLyB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1snZmVlX251bWJlciddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kX3BheW1lbnQubGVuZ2h0ID09IDEgPyAxIDogdGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UuZmVlX251bWJlcik7XG4gICAgLy8gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RfcHJpY2UucXVvdGFfcHJpY2UpO1xuICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wYXltZW50WzBdLnRpbWVseV9kYXRlKTtcbiAgICAvLyB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvZF9wYXltZW50LmxlbmdodCA9PSAxID8gMSA6IHRoaXMuaW5pdGlhbERhdGEuY29kX3ByaWNlLmZlZV9udW1iZXIpO1xuICB9XG5cbn1cblxuIiwiPGRpdiAqbmdJZj1cImlzU2VtZXN0cmFsXCIgY2xhc3M9XCJtLTEgcC0yIGJvcmRlci1yb3VuZC1sZyBiZy1ibHVlLTUwMCB0ZXh0LXdoaXRlXCI+XG4gIDxzdHJvbmc+Tm90YTogPC9zdHJvbmc+XG4gIEVsIHRpcG8gZGUgY3Vyc28gc2VsZWNjaW9uYWRvIGZ1ZSBzZW1lc3RyYWwsIHBvciBsbyB0YW50byBlbCBlc3R1ZGlhbnRlIGRlYmUgcGFnYXIgbWF0csOtY3VsYSB5IHByaW1lcmEgY3VvdGEgKE0mTSlcbjwvZGl2PlxuXG48Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZEZvcm1TdGVwRm91clwiIGNsYXNzPVwiZ3JpZCBtdC0yXCI+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ11cIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFBheW1lbnRNZXRob2QoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJwYXltZW50TWV0aG9kc1wiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ03DqXRvZG8gZGUgcGFnbydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJmZWVSZXNwb25zZVwiPjwvaXB0LWxvYWRlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cInRoZXJlQXJlUGxhbnNcIj5cbiAgICAgIDxwLXRhYmxlXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhUHJpY2VzXCJcbiAgICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnMTAwJSd9XCJcbiAgICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgIFNlbGVjY2lvbiBkZSBuaXZlbGVzIGEgY2FuY2VsYXIuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5DYW5jZWxhcjwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5DdW90YXM8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+QWRtaW48L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkPnt7IGRhdGEucGFpZF9sZXZlbCB9fSBOaXZlbChlcyk8L3RkPlxuICAgICAgICAgICAgPHRkPnt7IGRhdGEuZmVlX251bWJlciB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0yIHBiLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLW1vbmV5LWJpbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc20gcC1idXR0b24tcm91bmRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdExldmVscyhkYXRhKVwiXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvcC10YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWVcIiAtLT5cbiAgICA8IS0tIDxpcHQtc2VsZWN0ICpuZ0lmPVwiaXNGaW5hbmNlZCgpO1wiXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cIicxJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ11cIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFF1b3RhcygkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTsO6bWVybyBkZSBjdW90YXMnXCJcbiAgICAgIFtkYXRhXT1cImNvZFByaWNlc1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PiAtLT5cbiAgICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidNb250byB0b3RhbCBkZSBsYSBtYXRyw61jdWxhJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ11cIlxuICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgID48L2lwdC1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFt3aXRoUGlwZV09XCJ0cnVlXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInVmFsb3IgdG90YWwgZGVsIHByb2dyYW1hJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgb25mb2N1cz1cIih0aGlzLnR5cGU9J2RhdGUnKVwiXG4gICAgICBbaW5wdXRUeXBlXT1cIidkYXRlJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRmVjaGEgZGUgcGFnbydcIlxuICAgID48L2lwdC1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUYWJsYSBkZSBmaW5hbmNpYWNpw7NuIC0tPlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgKm5nSWY9XCJpc0ZpbmFuY2luZ1wiPlxuICAgIDxwLXRhYmxlXG4gICAgICBbdmFsdWVdPVwiZGF0YUZpbmFuY2luZ1wiXG4gICAgICBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxMDAlJ31cIlxuICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIEPDoWxjdWxvIGRlIGN1b3Rhc1xuICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBjbGFzcz1cInAtYnV0dG9uLXNtIG1sLWF1dG9cIiBsYWJlbD1cIk51ZXZvIGPDoWxjdWxvXCIgKGNsaWNrKT1cImNhbGN1bGF0ZU5ld1F1b3RlcygpXCIgbGFiIGljb249XCJwaSBwaS1yZXBsYXlcIj48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPiM8L3RoPlxuICAgICAgICAgIDx0aD5WYWxvcjwvdGg+XG4gICAgICAgICAgPHRoPkZlY2hhPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1kYXRhPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMF0gfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzFdIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVsyXSB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10YWJsZT5cbiAgPC9kaXY+XG4gIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cblxuPC9mb3JtPlxuXG48ZGl2IGNsYXNzPVwiZmxleCBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICA8c3BhbiAqbmdJZj1cImNvZEZvcm1TdGVwRm91ci5pbnZhbGlkICYmIGNvZEZvcm1TdGVwRm91ci50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IG1sLWF1dG8gZ2FwLTJcIj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMSdcIiBbZGlzYWJsZWRdPVwiaXNGaW5hbmNpbmcgfHwgY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlICE9PSAnMSdcInR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cIm1sLWF1dG8gcC1idXR0b24tc20gcC1idXR0b24tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInNob3dUYWJsZSgpXCIgcEJ1dHRvbiBsYWJlbD1cIkNhbGN1bGFyIGN1b3Rhc1wiIGljb249XCJwaSBwaS1zbGlkZXJzLWhcIj48L2J1dHRvbj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhaXNGaW5hbmNpbmcgJiYgY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMSdcIiB0eXBlPVwic3VibWl0XCIgW2NsYXNzXT1cImlzRWRpdENvZCA/ICdtbC1hdXRvIHllbGxvdy0zMDAgcC1idXR0b24tc20nIDogJ21sLWF1dG8gcC1idXR0b24tc20nXCIgKGNsaWNrKT1cInNlbmRGb3JtKClcIiBwQnV0dG9uIGxhYmVsPVwiU2lndWllbnRlXCIgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCI+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -4296,14 +4296,33 @@ class CodFormStepFourComponent extends CodFormSteps {
|
|
|
4296
4296
|
this.codFormStepFour.controls['total_price'].setValue(null);
|
|
4297
4297
|
}
|
|
4298
4298
|
setDataFromPreviusCodPrices() {
|
|
4299
|
+
var _a, _b;
|
|
4299
4300
|
this.codFormStepFour.controls['payment_method'].setValue(this.initialData.cod_payment.lenght == 1 ? 2 : 1);
|
|
4300
|
-
this.codFormStepFour.
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4301
|
+
if (((_a = this.codFormStepFour.get('payment_method')) === null || _a === void 0 ? void 0 : _a.value) == 1) {
|
|
4302
|
+
this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_price.fee_number);
|
|
4303
|
+
this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
4304
|
+
this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.financed_price);
|
|
4305
|
+
this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
4306
|
+
this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_price.fee_number);
|
|
4307
|
+
this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
4308
|
+
this.updateValueAndValidity();
|
|
4309
|
+
}
|
|
4310
|
+
else if (((_b = this.codFormStepFour.get('payment_method')) === null || _b === void 0 ? void 0 : _b.value) == 2) {
|
|
4311
|
+
this.codFormStepFour.controls['quota_times'].setValue(1);
|
|
4312
|
+
this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
4313
|
+
this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_price.normal_price);
|
|
4314
|
+
this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
4315
|
+
this.codFormStepFour.controls['fee_number'].setValue(1);
|
|
4316
|
+
this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
4317
|
+
this.updateValueAndValidity();
|
|
4318
|
+
}
|
|
4319
|
+
// this.codFormStepFour.controls['total_price'].setValue(this.initialData.cod_price.enrollment);
|
|
4320
|
+
// this.codFormStepFour.controls['program_price'].setValue(this.initialData.cod_payment.lenght == 1 ? this.initialData.cod_price.normal_price : this.initialData.cod_price.financed_price);
|
|
4321
|
+
// this.codFormStepFour.controls['paid_level'].setValue(this.initialData.cod_price.paid_level);
|
|
4322
|
+
// this.codFormStepFour.controls['fee_number'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
|
|
4323
|
+
// this.codFormStepFour.controls['quota_price'].setValue(this.initialData.cod_price.quota_price);
|
|
4324
|
+
// this.codFormStepFour.controls['payment_date'].setValue(this.initialData.cod_payment[0].timely_date);
|
|
4325
|
+
// this.codFormStepFour.controls['quota_times'].setValue(this.initialData.cod_payment.lenght == 1 ? 1 : this.initialData.cod_price.fee_number);
|
|
4307
4326
|
}
|
|
4308
4327
|
}
|
|
4309
4328
|
CodFormStepFourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFourComponent, deps: [{ token: i1$1.FormBuilder }, { token: CalculateQuotesService }, { token: CommunicatorService }, { token: ParameterService }, { token: CodFormControls }, { token: CommercialService }, { token: BaseService }], target: i0.ɵɵFactoryTarget.Component });
|