iptdevs-design-system 3.2.193 → 3.2.195

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.
@@ -248,7 +248,7 @@ export class CodFormStepOneComponent extends CodFormSteps {
248
248
  this.codFormStepOne.controls['english_level'].setValue(null);
249
249
  this.codFormStepOne.controls['availible_courses'].setValue(null);
250
250
  this.codFormStepOne.controls['course_modality'].setValue(null);
251
- this.codFormStepOne.controls['campus'].setValue(null);
251
+ this.codFormStepOne.controls['campus'].setValue(this.userCampus);
252
252
  }
253
253
  // Eventos de los selects
254
254
  selectAcademicPlan(academic_plan) {
@@ -257,8 +257,9 @@ export class CodFormStepOneComponent extends CodFormSteps {
257
257
  // this.codFormStepOne.controls['agreement_by_category'].setValue(null);
258
258
  // this.codFormStepOne.controls['school_name'].setValue(null);
259
259
  // this.codFormStepOne.controls['course_type'].setValue(null);
260
+ const campus = this.codFormStepOne.controls['campus'].value ? parseInt(this.codFormStepOne.controls['campus'].value) : this.campus;
260
261
  this.getCourseType(parseInt(academic_plan));
261
- //this.getAgreementByPlan(parseInt(academic_plan));
262
+ this.getAgreementByPlan(parseInt(academic_plan), campus);
262
263
  }
263
264
  else {
264
265
  this.codFormStepOne.controls['academic_plan'].setValue(null);
@@ -496,4 +497,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
496
497
  }], changeStepEvent: [{
497
498
  type: Output
498
499
  }] } });
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2QtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUd2SSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBRzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRaEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFlBQVk7SUE2QnZELFlBQ1UsRUFBZSxFQUNmLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxnQkFBaUMsRUFDakMsY0FBOEIsRUFDOUIsS0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFUQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pD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QUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtZXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3BhcmFtZXRlcnMtc2VydmljZS9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUdldENhbXB1c0RldGFpbExpc3RScyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR2V0QXZhaWxpYmxlQ291cnNlc1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvY291cnNlL2NvdXJzZS1ycS5tb2RlbCc7XG5pbXBvcnQgeyBDb3BpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3BpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb3Vyc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb3Vyc2Utc2VydmljZS9jb3Vyc2Utc2VydmljZS5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RGb3JtU3RlcHMsIGxvY2FsU3RvcmFnZVZhbHVlcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLXN0ZXBzJztcbmltcG9ydCB7IENvbW11bmljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jb21tdW5pY2F0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBJQWdyZWVtZW50UnMsIElDb3Vyc2VUeXBlUnMsIElQYXJhbWV0ZXJzQWxsUnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMtcnMubW9kZWwnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlLXNlcnZpY2Uvc3RvcmFnZS1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1mb3JtLXN0ZXAtb25lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RGb3JtU3RlcE9uZUNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgaW5pdGlhbERhdGE/OiBhbnk7XG4gIEBJbnB1dCgpIGRhdGFQcmV2aXVzQ29kRGF0YT86IGFueTtcbiAgQElucHV0KCkgaXNFZGl0Q29kPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY291cnNlU2VsZWN0UmVub3ZhdGlvbj86YW55O1xuICBASW5wdXQoKSBpc1Jlbm92YXRpb24/OmFueTtcbiAgQElucHV0KCkgcGFyYW1ldGVyc0FsbD86IElQYXJhbWV0ZXJzQWxsUnM7XG5cbiAgQElucHV0KCkgY2FtcHVzOiBudW1iZXIgPSAxO1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29waWVzOiBhbnk7XG4gIGNvZEZvcm1TdGVwT25lITogRm9ybUdyb3VwO1xuICBoYXNBdmFpbGFibGVDb3Vyc2UhOiBib29sZWFuO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8gUGFyYW1ldGVyc1xuICBhZ3JlZW1lbnRzOiBJQWdyZWVtZW50UnNbXT1bXTtcbiAgYXZhaWxpYmxlQ291cnNlczogYW55W10gPSBbXTtcbiAgY291cnNlX3R5cGU6IElDb3Vyc2VUeXBlUnNbXT1bXTtcbiAgbGV2ZWxzOiBhbnk7XG4gIHBsYW5zOiBhbnk7XG4gIGlzRGlzYWJsZWRTZWw6Ym9vbGVhbj1mYWxzZVxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xuICBjb250cm9scyA9IG5ldyBDb2RGb3JtQ29udHJvbHMoKS5jb250cm9sc1swXTtcblxuICBjYW1wdXNMaXN0OiBJR2V0Q2FtcHVzRGV0YWlsTGlzdFJzW10gPSBbXTtcbiAgdXNlckNhbXB1czogbnVtYmVyID0gMTtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY29waWVzU2VydmljZTogQ29waWVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSxcbiAgICBwcml2YXRlIGNvdXJzZVNlcnZpY2U6IENvdXJzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tdW5pY2F0b3JTZXJ2aWNlOiBDb21tdW5pY2F0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFyYW1ldGVyU2VydmljZTpQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb3BpZXMgPSB0aGlzLmNvcGllc1NlcnZpY2UuY29waWVzO1xuXG4gICAgbGV0IHVzZXIgPSAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICAgIHRoaXMudXNlckNhbXB1cyA9IHVzZXI/LmNhbXB1c19lbnRlcnByaXNlID8/IDE7XG4gICAgdGhpcy5vYnRhaW5DYW1wdXMoKTtcbiAgfVxuXG4gIC8qIEVzIG5lY2VzYXJpbyByZWNvcnJlciBlbCBhcnJheSBkZSBjb250cm9scyBkZSBudWVzdHJvIGZvcm11bGFyaW8gcGFyYTpcbiAgICDinIUgTGVlciBlbCBMb2NhbCBTdG9yYWdlIHkgc2V0ZWFyIGxvcyB2YWxvcmVzXG4gICAg4pyFIFN1YnNjcmliaXJzZSBhIGxvcyBjYW1iaW9zIGRlbCBmb3JtdWxhcmlvIHBhcmEgc2V0ZWFyIHZhbG9yZXMgbnVldm9zXG5cbiAgICBOb3RhOiBsYSBjbGFzZSBDb2RGb3JtU3RlcHMoKSBzZSBlbmNhcmdhIGRlIHRvZGEgbGEgbMOzZ2ljYSBkZSBMUyBjb24gbG9zIHBhc29zIGRlbCBmb3JtdWxhcmlvIGRlbCBDT0RcbiAgKi9cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnNldFZhbHVlc0J5TG9jYWxTdG9yYWdlKClcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlQ2hhbmdlc1xuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLnNldEN1cnJlbnRDb3Vyc2VUeXBlKHZhbHVlKSk7XG5cbiAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2Uuc2V0Q3VycmVudEFncmVlbWVudCh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JykhKTtcblxuICAgICAgICAvLyBMw7NnaWNhIHByaW5jaXBhbCBkZSBjYW1iaW9zXG4gICAgICAgIGlmIChjaGFuZ2VzWydpbml0aWFsRGF0YSddIHx8IGNoYW5nZXNbJ2RhdGFQcmV2aXVzQ29kRGF0YSddKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVEYXRhQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgIH1cbiAgXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTsgXG4gICAgICAvLyBjb25zdCBzaG91bGRQcm9jZXNzSW5pdGlhbERhdGEgPSBjaGFuZ2VzWydpbml0aWFsRGF0YSddICYmIFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxEYXRhICE9IG51bGwgJiYgXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVByZXZpdXNDb2REYXRhID09PSBudWxsO1xuXG4gICAgICAvLyBjb25zdCBzaG91bGRQcm9jZXNzUHJldml1c0RhdGEgPSB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YSAhPSBudWxsICYmIFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRDb2QgPT09IGZhbHNlICYmIFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Jlbm92YXRpb24gPT09IGZhbHNlO1xuXG4gICAgICAvLyBpZiAoc2hvdWxkUHJvY2Vzc0luaXRpYWxEYXRhIHx8IHNob3VsZFByb2Nlc3NQcmV2aXVzRGF0YSkge1xuICAgICAgLy8gICB0aGlzLnByb2Nlc3NEYXRhKHRoaXMuaW5pdGlhbERhdGEpO1xuICAgICAgLy8gICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIC8vICAgY29uc29sZS5sb2coXCJFbnRybyBlbiB0aGlzLnByb2Nlc3NEYXRhIGNvbiBpbml0aWFsRGF0YVwiKTtcbiAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAvLyAgIC8vIE1hbmVqbyBtw6FzIGNvbnRyb2xhZG8gZGVsIFwiZWxzZVwiXG4gICAgICAvLyAgICAgY29uc29sZS5sb2coXCJlbnRyZSBlbiBlbCBlbHNlIHF1ZSBib3JyYSB0b2RvIGVuIG51bGxcIik7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKG51bGwpO1xuICAgICAgLy8gICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKG51bGwpO1xuICAgICAgLy8gICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyB9XG4gICAgLy8gaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10gJiYgdGhpcy5pbml0aWFsRGF0YSAhPSBudWxsICYmIHRoaXMuZGF0YVByZXZpdXNDb2REYXRhID09PSBudWxsIHx8IHRoaXMuZGF0YVByZXZpdXNDb2REYXRhICE9IG51bGwgICYmIHRoaXMuaXNFZGl0Q29kID09PSBmYWxzZSAmJiB0aGlzLmlzUmVub3ZhdGlvbiA9PT0gZmFsc2UpIHtcbiAgICAvLyAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5pbml0aWFsRGF0YSk7XG4gICAgLy8gICBjb25zb2xlLmxvZyhcIkVudHJvIGVuIHRoaXMucHJvY2Vzc0RhdGEgY29uIGluaXRpYWxEYXRhXCIpO1xuICAgIC8vICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gfWVsc2V7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgIC8vICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKG51bGwpO1xuICAgIC8vICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gfVxuXG4gICAgLy8gaWYgKGNoYW5nZXNbJ2RhdGFQcmV2aXVzQ29kRGF0YSddICYmIHRoaXMuZGF0YVByZXZpdXNDb2REYXRhICE9IG51bGwgICYmIHRoaXMuaXNFZGl0Q29kICYmIHRoaXMuaXNSZW5vdmF0aW9uID09PSBmYWxzZSApIHtcbiAgICAvLyAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5kYXRhUHJldml1c0NvZERhdGEpO1xuICAgIC8vICAgY29uc29sZS5sb2coXCJFbnRybyBlbiB0aGlzLnByb2Nlc3NEYXRhIGNvbiBkYXRhUHJldml1c0NvZERhdGFcIik7XG4gICAgLy8gICBpZiAodGhpcy5pc0VkaXRDb2QgJiYgIXRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmVkaXRfY291cnNlX3BheW1lbnQpIHtcbiAgICAvLyAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gdHJ1ZTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIHRoaXMuaXNEaXNhYmxlZFNlbCA9IGZhbHNlO1xuICAgIC8vICAgfVxuXG4gICAgLy8gICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB9ZWxzZSBpZihjaGFuZ2VzWydkYXRhUHJldml1c0NvZERhdGEnXSAmJiB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YSAhPSBudWxsICYmICF0aGlzLmlzRWRpdENvZCAmJiB0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24gJiYgdGhpcy5pc1Jlbm92YXRpb24gPT09IHRydWUgKXtcbiAgICAvLyAgIHRoaXMuc2V0RGF0YUNvZFJlbm92YXRpb25TZWxlY3QoKTtcbiAgICAvLyAgIHRoaXMuaXNEaXNhYmxlZFNlbD0gdHJ1ZVxuICAgIC8vICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YUNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIENhc28gMTogSGF5IGluaXRpYWxEYXRhIHkgTk8gaGF5IGRhdGFQcmV2aXVzQ29kRGF0YVxuICAgIGlmIChjaGFuZ2VzWydpbml0aWFsRGF0YSddPy5jdXJyZW50VmFsdWUgJiYgIXRoaXMuaXNSZW5vdmF0aW9uICYmICF0aGlzLmlzRWRpdENvZCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NEYXRhKHRoaXMuaW5pdGlhbERhdGEpO1xuICAgICAgICByZXR1cm47XG4gICAgICAgIC8vZG9uZVxuICAgIH1cblxuICAgIC8vIENhc28gMjogSGF5IGRhdGFQcmV2aXVzQ29kRGF0YVxuICAgIGlmIChjaGFuZ2VzWydkYXRhUHJldml1c0NvZERhdGEnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIC8vIFN1YmNhc28gMi4xOiBFcyBlZGljacOzblxuICAgICAgICBpZiAodGhpcy5pc0VkaXRDb2QgJiYgIXRoaXMuaXNSZW5vdmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEYXRhKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhKTtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZFNlbCA9ICF0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5lZGl0X2NvdXJzZV9wYXltZW50O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIFN1YmNhc28gMi4yOiBFcyByZW5vdmFjacOzblxuICAgICAgICBpZiAoIXRoaXMuaXNFZGl0Q29kICYmIHRoaXMuaXNSZW5vdmF0aW9uICYmIHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbikge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YUNvZFJlbm92YXRpb25TZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRTZWwgPSB0cnVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAvL2RvbmVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN1YmNhc28gMi4yOiB2aWVuZSBjb24gaW5pdGlhbERhdGFcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbERhdGEgJiYgIXRoaXMuaXNFZGl0Q29kICYmICF0aGlzLmlzUmVub3ZhdGlvbikge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5pbml0aWFsRGF0YSk7XG4gICAgICAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIC8vZG9uZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYodGhpcy5pbml0aWFsRGF0YSA9PT0gbnVsbCApe1xuICAgICAgICAgIGlmKHRoaXMuY2FuU2VsZWN0Q2FtcHVzKCkpe1xuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10uc2V0VmFsdWUodGhpcy51c2VyQ2FtcHVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10uc2V0VmFsdWUodGhpcy5jYW1wdXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYXNvIDM6IE5pbmd1bmEgY29uZGljacOzbiBhbnRlcmlvciBzZSBjdW1wbGnDsyAocmVzZXQgY29udHJvbGFkbylcbiAgICB0aGlzLnJlc2V0Rm9ybSgpO1xufVxuXG4gIHByaXZhdGUgcHJvY2Vzc0RhdGEoZGF0YTogYW55KSB7XG4gICAgY29uc3QgeyBjb2RGb3JtU3RlcE9uZSB9ID0gdGhpcztcbiAgICB0aGlzLmdldEFncmVlbWVudEJ5UGxhbihkYXRhLmNvdXJzZV90eXBlPy5hY2FkZW1pY19wbGFuLmNvZGUsIGRhdGEuY2FtcHVzKTtcbiAgICB0aGlzLmdldENvdXJzZVR5cGUoZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKGRhdGEuZW5nbGlzaF9sZXZlbD8uY29kZSk7XG4gICAgY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKGRhdGEuYWdyZWVtZW50Py5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShkYXRhLmNvdXJzZV90eXBlPy5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKGRhdGEuY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSk7XG5cbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZShkYXRhLmNhbXB1cyk7XG5cbiAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcblxuICAgIGlmICh0aGlzLmlzRWRpdENvZCkge1xuICAgICAgdGhpcy5zZXREYXRhRnJvbUVkaXRDb2RIaXN0b3J5KCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pc0VkaXRDb2QgJiYgdGhpcy5pbml0aWFsRGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnNldERhdGFGcm9tVXNlckhpc3RvcnkoKTtcbiAgICB9XG4gIH1cblxuICBzZXREYXRhRnJvbVVzZXJIaXN0b3J5KCl7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY291cnNlX3R5cGUuY29kZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZ3JlZW1lbnQuY29kZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuZW5nbGlzaF9sZXZlbC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY29kZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb3Vyc2VfbW9kYWxpdHkuY29kZSk7XG5cbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNhbXB1cyk7XG4gIH1cblxuICBzZXREYXRhRnJvbUVkaXRDb2RIaXN0b3J5KCl7XG5cbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2VfdHlwZS5jb2RlID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlX3R5cGUuY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmFncmVlbWVudC5jb2RlID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuYWdyZWVtZW50LmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuZW5nbGlzaF9sZXZlbC5jb2RlID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuZW5nbGlzaF9sZXZlbC5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2UuY29kZSA/IHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZS5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlLmNvdXJzZV9tb2RhbGl0eSA/IHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkgOiBudWxsKTtcbiAgfVxuICBzZXREYXRhQ29kUmVub3ZhdGlvblNlbGVjdCgpe1xuXG4gICAgY29uc3QgY2FtcHVzID0gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuc3R1ZGVudD8uY2FtcHVzX2VudGVycHJpc2UgPyB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5zdHVkZW50Py5jYW1wdXNfZW50ZXJwcmlzZSA6IG51bGw7XG4gICAgdGhpcy5nZXRBZ3JlZW1lbnRCeVBsYW4odGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmNvdXJzZV90eXBlPy5hY2FkZW1pY19wbGFuLmNvZGUsY2FtcHVzKTtcbiAgICB0aGlzLmdldENvdXJzZVR5cGUodGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmNvdXJzZV90eXBlPy5hY2FkZW1pY19wbGFuLmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSA/IHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX3R5cGU/LmNvZGUgPyB0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX3R5cGU/LmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uYWdyZWVtZW50Py5jb2RlID8gdGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmFncmVlbWVudD8uY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uZW5nbGlzaF9sZXZlbD8uY29kZSA/IHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5lbmdsaXNoX2xldmVsPy5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24/LmNvZGUgPyB0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24/LmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX21vZGFsaXR5Py5jb2RlID8gdGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmNvdXJzZV9tb2RhbGl0eT8uY29kZSA6IG51bGwpO1xuXG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10uc2V0VmFsdWUoY2FtcHVzKTtcbiAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMSwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDEsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgdGhpcy5wbGFucyA9IHRoaXMucGFyYW1ldGVyc0FsbD8uYWNhZGVtaWNQbGFuO1xuICAgIHRoaXMubGV2ZWxzID0gdGhpcy5wYXJhbWV0ZXJzQWxsPy5lbmdsaXNoX2xldmVscztcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGFjYWRlbWljX3BsYW46IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV90eXBlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBhZ3JlZW1lbnRfYnlfY2F0ZWdvcnk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBbJycsIFtdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnXSxcbiAgICAgIGNhbXB1czogW3RoaXMudXNlckNhbXB1cywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KTtcbiAgfVxuXG4gIHNldFZhbHVlc0J5TG9jYWxTdG9yYWdlKCkge1xuICAgIGNvbnN0IGFjYWRlbWljUGxhbiA9IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZTtcbiAgICBpZiAoYWNhZGVtaWNQbGFuKSB7XG4gICAgICB0aGlzLnNlbGVjdEFjYWRlbWljUGxhbihhY2FkZW1pY1BsYW4pO1xuICAgIH1cbiAgXG4gICAgY29uc3QgYWdyZWVtZW50QnlDYXRlZ29yeSA9IHBhcnNlSW50KHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnZhbHVlKTtcbiAgICBjb25zdCBlbmdsaXNoTGV2ZWwgPSBwYXJzZUludCh0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUpO1xuICAgIGNvbnN0IGNvdXJzZU1vZGFsaXR5ID0gcGFyc2VJbnQodGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10udmFsdWUpO1xuICBcbiAgICBpZiAoYWdyZWVtZW50QnlDYXRlZ29yeSAmJiBlbmdsaXNoTGV2ZWwgJiYgY291cnNlTW9kYWxpdHkpIHtcbiAgICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUubWFya0FzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwT25lLmludmFsaWQpIHJldHVybjtcblxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gMlxuICAgIHRoaXMuY2hhbmdlU3RlcEV2ZW50LmVtaXQoMSk7XG4gIH1cblxuICByZXNldEZvcm0oKSB7XG4gICAgLy8gdGhpcy5yZXNldExvY2FsU3RvcmFnZSh0aGlzLmNvbnRyb2xzKTtcbiAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLnJlc2V0KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGUgbG9zIHNlbGVjdHNcbiAgc2VsZWN0QWNhZGVtaWNQbGFuKGFjYWRlbWljX3BsYW46IHN0cmluZykge1xuICAgIGlmIChhY2FkZW1pY19wbGFuICE9PSAnUGxhbicpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZShwYXJzZUludChhY2FkZW1pY19wbGFuKSk7XG4gICAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3NjaG9vbF9uYW1lJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5nZXRDb3Vyc2VUeXBlKHBhcnNlSW50KGFjYWRlbWljX3BsYW4pKTtcbiAgICAgIC8vdGhpcy5nZXRBZ3JlZW1lbnRCeVBsYW4ocGFyc2VJbnQoYWNhZGVtaWNfcGxhbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q2FtcHVzKGNhbXB1czogc3RyaW5nKSB7XG4gICAgY29uc3QgY2FtcHVzQ29kZTpudW1iZXIgPSBwYXJzZUludChjYW1wdXMpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnNldFZhbHVlKGNhbXB1c0NvZGUpO1xuXG4gICAgbGV0IGFjYWRlbWljX3BsYW4gPSB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWU7XG4gICAgdGhpcy5nZXRDb3Vyc2VUeXBlKHBhcnNlSW50KGFjYWRlbWljX3BsYW4pKTtcbiAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgICB0aGlzLmdldEFncmVlbWVudEJ5UGxhbihwYXJzZUludChhY2FkZW1pY19wbGFuKSwgY2FtcHVzQ29kZSk7XG4gICAgXG4gIH1cblxuICBnZXRDb3Vyc2VUeXBlKHBsYW46IG51bWJlcikge1xuICAgIGNvbnN0IHBsYW5OdW1iZXIgPSB0eXBlb2YgcGxhbiA9PT0gJ3N0cmluZycgPyBwYXJzZUludChwbGFuKSA6IHBsYW47XG4gICAgY29uc3QgY2FtcHVzID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10udmFsdWU7XG4gICAgaWYgKHRoaXMucGFyYW1ldGVyc0FsbCAmJiB0aGlzLnBhcmFtZXRlcnNBbGw/LmNvdXJzZVR5cGUpIHtcbiAgICAgIHRoaXMuY291cnNlX3R5cGUgPSB0aGlzLnBhcmFtZXRlcnNBbGwuY291cnNlVHlwZS5maWx0ZXIoKGNvdXJzZSkgPT4ge1xuICAgICAgICByZXR1cm4gY291cnNlLmFjYWRlbWljX3BsYW4gPT09IHBsYW5OdW1iZXIgJiYgY291cnNlLmNhbXB1cyA9PSBjYW1wdXM7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb3Vyc2VfdHlwZSA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldEFncmVlbWVudEJ5UGxhbihwbGFuOiBudW1iZXIsIGNhbXB1czogbnVtYmVyKSB7XG4gICAgY29uc3QgcGxhbk51bWJlciA9IHR5cGVvZiBwbGFuID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHBsYW4pIDogcGxhbjtcbiAgICBpZiAodGhpcy5wYXJhbWV0ZXJzQWxsICYmIHRoaXMucGFyYW1ldGVyc0FsbD8uYWdyZWVtZW50KSB7XG4gICAgICB0aGlzLmFncmVlbWVudHMgPSB0aGlzLnBhcmFtZXRlcnNBbGwuYWdyZWVtZW50LmZpbHRlcigoYWdyZWVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBhZ3JlZW1lbnQuY2F0ZWdvcnkgPT09IHBsYW5OdW1iZXIgJiYgYWdyZWVtZW50LmNhbXB1cyA9PSBjYW1wdXM7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZ3JlZW1lbnRzID0gW107XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q291cnNlc1R5cGVzQnlQbGFuKGNvdXJzZXNUeXBlczogYW55KSB7XG4gICAgaWYgKGNvdXJzZXNUeXBlcyAhPT0gJ1RpcG8gZGUgcGxhbicpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUoY291cnNlc1R5cGVzKTtcbiAgICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFncmVlbWVudEJ5Q2F0ZWdvcnkoYWdyZWVtZW50QnlDYXRlZ29yaWVzOiBhbnkpIHtcbiAgICBpZiAoYWdyZWVtZW50QnlDYXRlZ29yaWVzICE9PSAnQ29udmVuaW8gcG9yIGNhdGVnb3JpYScpIHtcbiAgICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUoYWdyZWVtZW50QnlDYXRlZ29yaWVzKTtcbiAgICAgIHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5zZXRDdXJyZW50QWdyZWVtZW50KGFncmVlbWVudEJ5Q2F0ZWdvcmllcyk7XG4gICAgICAvLyB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvL3RoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3NjaG9vbF9uYW1lJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TGV2ZWwobGV2ZWxzOiBhbnkpIHtcbiAgICBpZiAobGV2ZWxzICE9PSAnTml2ZWwgZGUgaW5nbMOpcycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZShsZXZlbHMpO1xuICAgICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBdmFpbGlibGVDb3Vyc2VzKGF2YWlsaWJsZUNvdXJzZXM6IGFueSkge1xuICAgIGlmIChhdmFpbGlibGVDb3Vyc2VzICE9PSAnR3J1cG9zIGRpc3BvbmlibGVzJykge1xuICAgICAgbGV0IGNvdXJzZU1vZCA9IHRoaXMuYXZhaWxpYmxlQ291cnNlcy5maW5kKG9iamV0byA9PiBvYmpldG8uY29kZSA9PT0gcGFyc2VJbnQoYXZhaWxpYmxlQ291cnNlcywgMTApKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKGNvdXJzZU1vZC5tb2RhbGl0eSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKGF2YWlsaWJsZUNvdXJzZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRSZXF1ZXN0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmNvZEZvcm1TdGVwT25lO1xuICAgIHJldHVybiAhIShcbiAgICAgIGZvcm0uZ2V0KCdlbmdsaXNoX2xldmVsJyk/LnZhbHVlICYmXG4gICAgICBmb3JtLmdldCgnYWdyZWVtZW50X2J5X2NhdGVnb3J5Jyk/LnZhbHVlICYmXG4gICAgICBmb3JtLmdldCgnY291cnNlX3R5cGUnKT8udmFsdWVcbiAgICApO1xuICB9XG5cbiAgLy8gZ2V0QXZhaWxpYmxlQ291cnNlcygpIHtcblxuICAvLyAgIGlmICh0aGlzLnZhbGlkUmVxdWVzdCgpKSB7XG4gIC8vICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gIC8vICAgICBsZXQgcmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzOiBHZXRBdmFpbGlibGVDb3Vyc2VzUnEgPSB7XG4gIC8vICAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAvLyAgICAgICBlbmdsaXNoX2xldmVsOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUsXG4gIC8vICAgICAgIGFncmVlbWVudDogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gIC8vICAgICAgIGNvdXJzZV90eXBlOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlLFxuICAvLyAgICAgfTtcblxuICAvLyAgICAgdGhpcy5jb3Vyc2VTZXJ2aWNlLmdldEF2YWlsYWJsZUNvdXJzZXNCeUxldkFncmVlQ1R5cGUocmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gIC8vICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gIC8vICAgICAgICAgdGhpcy5hdmFpbGlibGVDb3Vyc2VzID0gW107XG4gIC8vICAgICAgICAgbGV0IGNvdXJzZXM6IGFueVtdID0gcmVzcG9uc2UuZGF0YTtcbiAgLy8gICAgICAgICB0aGlzLmhhc0F2YWlsYWJsZUNvdXJzZSA9IHRydWU7XG4gIC8vICAgICAgICAgY291cnNlcy5mb3JFYWNoKGNvdXJzZSA9PiB7XG4gIC8vICAgICAgICAgICBsZXQgc2NoZWR1bGVQYXJ0cyA9IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVbMF0uc3BsaXQoXCIgXCIpO1xuICAvLyAgICAgICAgICAgbGV0IHN0YXJ0VGltZSA9IHNjaGVkdWxlUGFydHNbMl07XG4gIC8vICAgICAgICAgICB0aGlzLmF2YWlsaWJsZUNvdXJzZXMucHVzaCh7XG4gIC8vICAgICAgICAgICAgIGNvZGU6IGNvdXJzZS5jb2RlLFxuICAvLyAgICAgICAgICAgICBuYW1lOiBgJHtjb3Vyc2UuY29kZX0gQ3Vyc28gJHtjb3Vyc2UuY291cnNlX21vZGFsaXR5Lm5hbWUgPT09ICdQcmVzZW5jaWFsJyA/ICdQcmVzZW5jaWFsJyA6ICdWaXJ0dWFsJ30gLSBUZWFjaGVyICR7Y291cnNlLnRlYWNoZXJ9IC0gIEZlY2hhIGRlIGluaWNpbzogJHtjb3Vyc2UudG9fc3RhcnR9LCBIb3JhIGRlIGluaWNpbzogJHtzdGFydFRpbWV9LCBDdXBvcyBkaXNwOiAke2NvdXJzZS5hdmFpbGFibGVfY2FwYWNpdHl9YCxcbiAgLy8gICAgICAgICAgICAgbW9kYWxpdHk6IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHkuY29kZVxuICAvLyAgICAgICAgICAgfSk7XG4gIC8vICAgICAgICAgfSlcbiAgLy8gICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAvLyAgICAgICAgIGNvbnNvbGUubG9nKFwiYXZhaWxpYmxlQ291cnNlc1wiLHRoaXMuYXZhaWxpYmxlQ291cnNlcyk7XG4gIC8vICAgICAgICAgY29uc29sZS5sb2coXCJWYWxvcmVzIGRlbCBmb3JtdWxhcmlvOlwiLCB7XG4gIC8vICAgICAgICAgICBhY2FkZW1pY19wbGFuOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWUsXG4gIC8vICAgICAgICAgICBjb3Vyc2VfdHlwZTogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gIC8vICAgICAgICAgICBlbmdsaXNoX2xldmVsOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUsXG4gIC8vICAgICAgICAgICBhdmFpbGlibGVfY291cnNlczogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGNvdXJzZV9tb2RhbGl0eTogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10udmFsdWUsXG4gIC8vICAgICAgICAgICBhZ3JlZW1lbnQ6IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudCddLnZhbHVlLFxuICAvLyAgICAgICAgIH0pO1xuICAvLyAgICAgICB9IGVsc2UgeyAgXG4gIC8vICAgICAgICAgdGhpcy5oYXNBdmFpbGFibGVDb3Vyc2UgPSBmYWxzZTtcbiAgLy8gICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKFwiXCIpO1xuICAvLyAgICAgICAgIHRoaXMuc2V0VmFsdWVTdGVwRm91cigpO1xuICAvLyAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgfSk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgZ2V0QXZhaWxpYmxlQ291cnNlcygpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHJldHVybjtcbiAgICBpZiAodGhpcy52YWxpZFJlcXVlc3QoKSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgXG4gICAgICAvLyBHdWFyZGEgbG9zIHZhbG9yZXMgYWN0dWFsZXMgYW50ZXMgZGUgbGEgbGxhbWFkYVxuICAgICAgY29uc3QgY3VycmVudFZhbHVlcyA9IHtcbiAgICAgICAgYWNhZGVtaWNfcGxhbjogdGhpcy5jb2RGb3JtU3RlcE9uZS5nZXQoJ2FjYWRlbWljX3BsYW4nKT8udmFsdWUsXG4gICAgICAgIGNvdXJzZV90eXBlOiB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnY291cnNlX3R5cGUnKT8udmFsdWUsXG4gICAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogdGhpcy5jb2RGb3JtU3RlcE9uZS5nZXQoJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpPy52YWx1ZSxcbiAgICAgICAgZW5nbGlzaF9sZXZlbDogdGhpcy5jb2RGb3JtU3RlcE9uZS5nZXQoJ2VuZ2xpc2hfbGV2ZWwnKT8udmFsdWUsXG4gICAgICAgIGNhbXB1czogdGhpcy5jb2RGb3JtU3RlcE9uZS5nZXQoJ2NhbXB1cycpPy52YWx1ZVxuICAgICAgfTtcbiAgICAgIC8vR2V0QXZhaWxpYmxlQ291cnNlc1JxXG4gICAgICBsZXQgcmVxdWVzdF9hdmFpbGlibGVDb3Vyc2VzOiBhbnkgPSB7XG4gICAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpLFxuICAgICAgICBlbmdsaXNoX2xldmVsOiBjdXJyZW50VmFsdWVzLmVuZ2xpc2hfbGV2ZWwsXG4gICAgICAgIGFncmVlbWVudDogY3VycmVudFZhbHVlcy5hZ3JlZW1lbnRfYnlfY2F0ZWdvcnksXG4gICAgICAgIGNvdXJzZV90eXBlOiBjdXJyZW50VmFsdWVzLmNvdXJzZV90eXBlLFxuICAgICAgICBjYW1wdXM6IGN1cnJlbnRWYWx1ZXMuY2FtcHVzXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0QXZhaWxhYmxlQ291cnNlc0J5TGV2QWdyZWVDVHlwZShyZXF1ZXN0X2F2YWlsaWJsZUNvdXJzZXMpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pIFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICAgICAgdGhpcy5hdmFpbGlibGVDb3Vyc2VzID0gcmVzcG9uc2UuZGF0YS5tYXAoKGNvdXJzZTphbnkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2NoZWR1bGVQYXJ0cyA9IGNvdXJzZS5jb3Vyc2Vfc2NoZWR1bGVbMF0/LnNwbGl0KFwiIFwiKSB8fCBbXTtcbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gc2NoZWR1bGVQYXJ0c1syXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgY29kZTogY291cnNlLmNvZGUsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBgJHtjb3Vyc2UuY29kZX0gQ3Vyc28gJHtjb3Vyc2UuY291cnNlX21vZGFsaXR5Py5uYW1lID09PSAnUHJlc2VuY2lhbCcgPyAnUHJlc2VuY2lhbCcgOiAnVmlydHVhbCd9IC0gVGVhY2hlciAke2NvdXJzZS50ZWFjaGVyfSAtIEZlY2hhIGRlIGluaWNpbzogJHtjb3Vyc2UudG9fc3RhcnR9LCBIb3JhIGRlIGluaWNpbzogJHtzdGFydFRpbWV9LCBDdXBvcyBkaXNwOiAke2NvdXJzZS5hdmFpbGFibGVfY2FwYWNpdHl9YCxcbiAgICAgICAgICAgICAgICAgIG1vZGFsaXR5OiBjb3Vyc2UuY291cnNlX21vZGFsaXR5Py5jb2RlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuaGFzQXZhaWxhYmxlQ291cnNlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7ICBcbiAgICAgICAgICAgICAgdGhpcy5oYXNBdmFpbGFibGVDb3Vyc2UgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5nZXQoJ2F2YWlsaWJsZV9jb3Vyc2VzJyk/LnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlU3RlcEZvdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0F2YWlsYWJsZUNvdXJzZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZVN0ZXBGb3VyKCl7XG4gICAgdGhpcy5zZXREYXRhSW5Mb2NhbFN0b3JhZ2UoNCwgJ3Byb2dyYW1fcHJpY2UnLCBudWxsKTtcbiAgICB0aGlzLnNldERhdGFJbkxvY2FsU3RvcmFnZSg0LCAncXVvdGFfdGltZXMnLCBudWxsKTtcbiAgICB0aGlzLnNldERhdGFJbkxvY2FsU3RvcmFnZSg0LCAndG90YWxfcHJpY2UnLCBudWxsKTtcbiAgfVxuXG4gIG9idGFpbkNhbXB1cygpe1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxDYW1wdXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcblxuICAgICAgICBpZihyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2FtcHVzTGlzdCA9IHJlc3BvbnNlLmRhdGE7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNhbXB1c0xpc3QgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFsIG9idGVuZXIgY2FtcHVzOicsIGVycik7XG4gICAgICAgIHRoaXMuY2FtcHVzTGlzdCA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2FuU2VsZWN0Q2FtcHVzKCl7XG4gICAgcmV0dXJuIHRoaXMudXNlckNhbXB1cyA9PT0gMTtcbiAgfVxuXG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiY29kRm9ybVN0ZXBPbmVcIiBjbGFzcz1cImdyaWRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZSA9PT0gbnVsbD8gJ1BsYW4nOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInUGxhbidcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0QWNhZGVtaWNQbGFuKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwicGxhbnNcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10udmFsdWUrJydcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnZhbHVlID09PSBudWxsPyAnQ2FtcHVzJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ2FtcHVzJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDYW1wdXMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJjYW1wdXNMaXN0XCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiIWNhblNlbGVjdENhbXB1cygpIHx8IGlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWUgPT09IG51bGw/ICdUaXBvIGRlIHBsYW4nOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgcGxhbidcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291cnNlc1R5cGVzQnlQbGFuKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiY291cnNlX3R5cGVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnZhbHVlID09PSBudWxsPyAnQ29udmVuaW8gcG9yIGNhdGVnb3JpYSc6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0NvbnZlbmlvIHBvciBjYXRlZ29yaWEnXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEFncmVlbWVudEJ5Q2F0ZWdvcnkoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJhZ3JlZW1lbnRzXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWUgPT09IG51bGw/ICdOaXZlbCBkZSBpbmdsw6lzJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ05pdmVsIGRlIGluZ2zDqXMnXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdExldmVsKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwibGV2ZWxzXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10udmFsdWUgPT09IG51bGw/ICdHcnVwb3MgZGlzcG9uaWJsZXMnOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS52YWx1ZVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0dydXBvcyBkaXNwb25pYmxlcydcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0QXZhaWxpYmxlQ291cnNlcygkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImF2YWlsaWJsZUNvdXJzZXNcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ11cIlxuICAgICAgW2Rpc2FibGVkU2VsXT1cImlzRGlzYWJsZWRTZWxcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cblxuICAgIDxpcHQtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJ3LTFcIj5cbiAgICA8L2lwdC1sb2FkZXI+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cIiFoYXNBdmFpbGFibGVDb3Vyc2VcIiBjbGFzcz1cIm10LTEgcGwtMiB0ZXh0LXJlZC01MDBcIj5Ub2RhdsOtYSBubyBoYXkgY3Vyc29zIGNvbiBlc3RhcyBjYXJhY3RlcsOtc3RpY2FzLjwvc3Bhbj5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cImZsZXggbXQtMiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgPHNwYW4gKm5nSWY9XCJjb2RGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZEZvcm1TdGVwT25lLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPkZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci48L3NwYW4+XG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtjbGFzc109XCJpc0VkaXRDb2QgPyAnbWwtYXV0byB5ZWxsb3ctMzAwIHAtYnV0dG9uLXNtJyA6ICdtbC1hdXRvIHAtYnV0dG9uLXNtJ1wiIChjbGljayk9XCJzZW5kRm9ybSgpXCIgcEJ1dHRvbiBsYWJlbD1cIlNpZ3VpZW50ZVwiIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiPjwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2QtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUd2SSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBRzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRaEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFlBQVk7SUE2QnZELFlBQ1UsRUFBZSxFQUNmLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxnQkFBaUMsRUFDakMsY0FBOEIsRUFDOUIsS0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFUQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pD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LENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7b0hBaGhCVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixzWUNwQnBDLCswSEErRUE7MkZEM0RhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUI7a1RBTXhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBJR2V0Q2FtcHVzRGV0YWlsTGlzdFJzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvY29tbWVyY2lhbC9jb21tZXJjaWFsLm1vZGVsJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHZXRBdmFpbGlibGVDb3Vyc2VzUnEgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9jb3Vyc2UvY291cnNlLXJxLm1vZGVsJztcbmltcG9ydCB7IENvcGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2NvcGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvdXJzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2NvdXJzZS1zZXJ2aWNlL2NvdXJzZS1zZXJ2aWNlLm1vZGVsJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IElBZ3JlZW1lbnRScywgSUNvdXJzZVR5cGVScywgSVBhcmFtZXRlcnNBbGxScyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL3BhcmFtZXRlcnMvcGFyYW1ldGVycy1ycy5tb2RlbCc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2Utc2VydmljZS9zdG9yYWdlLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1vbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2QtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwT25lQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBpbml0aWFsRGF0YT86IGFueTtcbiAgQElucHV0KCkgZGF0YVByZXZpdXNDb2REYXRhPzogYW55O1xuICBASW5wdXQoKSBpc0VkaXRDb2Q/OiBib29sZWFuO1xuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3RSZW5vdmF0aW9uPzphbnk7XG4gIEBJbnB1dCgpIGlzUmVub3ZhdGlvbj86YW55O1xuICBASW5wdXQoKSBwYXJhbWV0ZXJzQWxsPzogSVBhcmFtZXRlcnNBbGxScztcblxuICBASW5wdXQoKSBjYW1wdXM6IG51bWJlciA9IDE7XG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGVwRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBjb3BpZXM6IGFueTtcbiAgY29kRm9ybVN0ZXBPbmUhOiBGb3JtR3JvdXA7XG4gIGhhc0F2YWlsYWJsZUNvdXJzZSE6IGJvb2xlYW47XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBQYXJhbWV0ZXJzXG4gIGFncmVlbWVudHM6IElBZ3JlZW1lbnRSc1tdPVtdO1xuICBhdmFpbGlibGVDb3Vyc2VzOiBhbnlbXSA9IFtdO1xuICBjb3Vyc2VfdHlwZTogSUNvdXJzZVR5cGVSc1tdPVtdO1xuICBsZXZlbHM6IGFueTtcbiAgcGxhbnM6IGFueTtcbiAgaXNEaXNhYmxlZFNlbDpib29sZWFuPWZhbHNlXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzBdO1xuXG4gIGNhbXB1c0xpc3Q6IElHZXRDYW1wdXNEZXRhaWxMaXN0UnNbXSA9IFtdO1xuICB1c2VyQ2FtcHVzOiBudW1iZXIgPSAxO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjb3BpZXNTZXJ2aWNlOiBDb3BpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY291cnNlU2VydmljZTogQ291cnNlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOlBhcmFtZXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvcGllcyA9IHRoaXMuY29waWVzU2VydmljZS5jb3BpZXM7XG5cbiAgICBsZXQgdXNlciA9ICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgdGhpcy51c2VyQ2FtcHVzID0gdXNlcj8uY2FtcHVzX2VudGVycHJpc2UgPz8gMTtcbiAgICB0aGlzLm9idGFpbkNhbXB1cygpO1xuICB9XG5cbiAgLyogRXMgbmVjZXNhcmlvIHJlY29ycmVyIGVsIGFycmF5IGRlIGNvbnRyb2xzIGRlIG51ZXN0cm8gZm9ybXVsYXJpbyBwYXJhOlxuICAgIOKchSBMZWVyIGVsIExvY2FsIFN0b3JhZ2UgeSBzZXRlYXIgbG9zIHZhbG9yZXNcbiAgICDinIUgU3Vic2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZGVsIGZvcm11bGFyaW8gcGFyYSBzZXRlYXIgdmFsb3JlcyBudWV2b3NcblxuICAgIE5vdGE6IGxhIGNsYXNlIENvZEZvcm1TdGVwcygpIHNlIGVuY2FyZ2EgZGUgdG9kYSBsYSBsw7NnaWNhIGRlIExTIGNvbiBsb3MgcGFzb3MgZGVsIGZvcm11bGFyaW8gZGVsIENPRFxuICAqL1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLmdldFBhcmFtZXRlcnMoKTtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMuc2V0VmFsdWVzQnlMb2NhbFN0b3JhZ2UoKVxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWVDaGFuZ2VzXG4gICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmNvbW11bmljYXRvclNlcnZpY2Uuc2V0Q3VycmVudENvdXJzZVR5cGUodmFsdWUpKTtcblxuICAgIHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5zZXRDdXJyZW50QWdyZWVtZW50KHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSEpO1xuXG4gICAgICAgIC8vIEzDs2dpY2EgcHJpbmNpcGFsIGRlIGNhbWJpb3NcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10gfHwgY2hhbmdlc1snZGF0YVByZXZpdXNDb2REYXRhJ10pIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgfVxuICBcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpOyBcbiAgICAgIC8vIGNvbnN0IHNob3VsZFByb2Nlc3NJbml0aWFsRGF0YSA9IGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10gJiYgXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGEgIT0gbnVsbCAmJiBcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJldml1c0NvZERhdGEgPT09IG51bGw7XG5cbiAgICAgIC8vIGNvbnN0IHNob3VsZFByb2Nlc3NQcmV2aXVzRGF0YSA9IHRoaXMuZGF0YVByZXZpdXNDb2REYXRhICE9IG51bGwgJiYgXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdENvZCA9PT0gZmFsc2UgJiYgXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVub3ZhdGlvbiA9PT0gZmFsc2U7XG5cbiAgICAgIC8vIGlmIChzaG91bGRQcm9jZXNzSW5pdGlhbERhdGEgfHwgc2hvdWxkUHJvY2Vzc1ByZXZpdXNEYXRhKSB7XG4gICAgICAvLyAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5pbml0aWFsRGF0YSk7XG4gICAgICAvLyAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgLy8gICBjb25zb2xlLmxvZyhcIkVudHJvIGVuIHRoaXMucHJvY2Vzc0RhdGEgY29uIGluaXRpYWxEYXRhXCIpO1xuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vICAgLy8gTWFuZWpvIG3DoXMgY29udHJvbGFkbyBkZWwgXCJlbHNlXCJcbiAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcImVudHJlIGVuIGVsIGVsc2UgcXVlIGJvcnJhIHRvZG8gZW4gbnVsbFwiKTtcbiAgICAgIC8vICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vIH1cbiAgICAvLyBpZiAoY2hhbmdlc1snaW5pdGlhbERhdGEnXSAmJiB0aGlzLmluaXRpYWxEYXRhICE9IG51bGwgJiYgdGhpcy5kYXRhUHJldml1c0NvZERhdGEgPT09IG51bGwgfHwgdGhpcy5kYXRhUHJldml1c0NvZERhdGEgIT0gbnVsbCAgJiYgdGhpcy5pc0VkaXRDb2QgPT09IGZhbHNlICYmIHRoaXMuaXNSZW5vdmF0aW9uID09PSBmYWxzZSkge1xuICAgIC8vICAgdGhpcy5wcm9jZXNzRGF0YSh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiRW50cm8gZW4gdGhpcy5wcm9jZXNzRGF0YSBjb24gaW5pdGlhbERhdGFcIik7XG4gICAgLy8gICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB9ZWxzZXtcbiAgICAvLyAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZShudWxsKTtcbiAgICAvLyAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAvLyAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAvLyAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgLy8gICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAvLyB9XG5cbiAgICAvLyBpZiAoY2hhbmdlc1snZGF0YVByZXZpdXNDb2REYXRhJ10gJiYgdGhpcy5kYXRhUHJldml1c0NvZERhdGEgIT0gbnVsbCAgJiYgdGhpcy5pc0VkaXRDb2QgJiYgdGhpcy5pc1Jlbm92YXRpb24gPT09IGZhbHNlICkge1xuICAgIC8vICAgdGhpcy5wcm9jZXNzRGF0YSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YSk7XG4gICAgLy8gICBjb25zb2xlLmxvZyhcIkVudHJvIGVuIHRoaXMucHJvY2Vzc0RhdGEgY29uIGRhdGFQcmV2aXVzQ29kRGF0YVwiKTtcbiAgICAvLyAgIGlmICh0aGlzLmlzRWRpdENvZCAmJiAhdGhpcy5kYXRhUHJldml1c0NvZERhdGEuZWRpdF9jb3Vyc2VfcGF5bWVudCkge1xuICAgIC8vICAgICB0aGlzLmlzRGlzYWJsZWRTZWwgPSB0cnVlO1xuICAgIC8vICAgfSBlbHNlIHtcbiAgICAvLyAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gZmFsc2U7XG4gICAgLy8gICB9XG5cbiAgICAvLyAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIH1lbHNlIGlmKGNoYW5nZXNbJ2RhdGFQcmV2aXVzQ29kRGF0YSddICYmIHRoaXMuZGF0YVByZXZpdXNDb2REYXRhICE9IG51bGwgJiYgIXRoaXMuaXNFZGl0Q29kICYmIHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbiAmJiB0aGlzLmlzUmVub3ZhdGlvbiA9PT0gdHJ1ZSApe1xuICAgIC8vICAgdGhpcy5zZXREYXRhQ29kUmVub3ZhdGlvblNlbGVjdCgpO1xuICAgIC8vICAgdGhpcy5pc0Rpc2FibGVkU2VsPSB0cnVlXG4gICAgLy8gICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEYXRhQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gQ2FzbyAxOiBIYXkgaW5pdGlhbERhdGEgeSBOTyBoYXkgZGF0YVByZXZpdXNDb2REYXRhXG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10/LmN1cnJlbnRWYWx1ZSAmJiAhdGhpcy5pc1Jlbm92YXRpb24gJiYgIXRoaXMuaXNFZGl0Q29kKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5pbml0aWFsRGF0YSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgICAgLy9kb25lXG4gICAgfVxuXG4gICAgLy8gQ2FzbyAyOiBIYXkgZGF0YVByZXZpdXNDb2REYXRhXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFQcmV2aXVzQ29kRGF0YSddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgLy8gU3ViY2FzbyAyLjE6IEVzIGVkaWNpw7NuXG4gICAgICAgIGlmICh0aGlzLmlzRWRpdENvZCAmJiAhdGhpcy5pc1Jlbm92YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0RhdGEodGhpcy5kYXRhUHJldml1c0NvZERhdGEpO1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVkU2VsID0gIXRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmVkaXRfY291cnNlX3BheW1lbnQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gU3ViY2FzbyAyLjI6IEVzIHJlbm92YWNpw7NuXG4gICAgICAgIGlmICghdGhpcy5pc0VkaXRDb2QgJiYgdGhpcy5pc1Jlbm92YXRpb24gJiYgdGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5zZXREYXRhQ29kUmVub3ZhdGlvblNlbGVjdCgpO1xuICAgICAgICAgIHRoaXMuaXNEaXNhYmxlZFNlbCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIC8vZG9uZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3ViY2FzbyAyLjI6IHZpZW5lIGNvbiBpbml0aWFsRGF0YVxuICAgICAgICBpZiAodGhpcy5pbml0aWFsRGF0YSAmJiAhdGhpcy5pc0VkaXRDb2QgJiYgIXRoaXMuaXNSZW5vdmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzRGF0YSh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRTZWwgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgLy9kb25lXG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmluaXRpYWxEYXRhID09PSBudWxsICl7XG4gICAgICAgICAgaWYodGhpcy5jYW5TZWxlY3RDYW1wdXMoKSl7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZSh0aGlzLnVzZXJDYW1wdXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZSh0aGlzLmNhbXB1cyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhc28gMzogTmluZ3VuYSBjb25kaWNpw7NuIGFudGVyaW9yIHNlIGN1bXBsacOzIChyZXNldCBjb250cm9sYWRvKVxuICAgIHRoaXMucmVzZXRGb3JtKCk7XG59XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRGF0YShkYXRhOiBhbnkpIHtcbiAgICBjb25zdCB7IGNvZEZvcm1TdGVwT25lIH0gPSB0aGlzO1xuICAgIHRoaXMuZ2V0QWdyZWVtZW50QnlQbGFuKGRhdGEuY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSwgZGF0YS5jYW1wdXMpO1xuICAgIHRoaXMuZ2V0Q291cnNlVHlwZShkYXRhLmNvdXJzZV90eXBlPy5hY2FkZW1pY19wbGFuLmNvZGUpO1xuICAgIGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUoZGF0YS5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUoZGF0YS5hZ3JlZW1lbnQ/LmNvZGUpO1xuICAgIGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKGRhdGEuY291cnNlX3R5cGU/LmNvZGUpO1xuICAgIGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUoZGF0YS5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlKTtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnNldFZhbHVlKGRhdGEuY2FtcHVzKTtcblxuICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuXG4gICAgaWYgKHRoaXMuaXNFZGl0Q29kKSB7XG4gICAgICB0aGlzLnNldERhdGFGcm9tRWRpdENvZEhpc3RvcnkoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzRWRpdENvZCAmJiB0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0RGF0YUZyb21Vc2VySGlzdG9yeSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldERhdGFGcm9tVXNlckhpc3RvcnkoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb3Vyc2VfdHlwZS5hY2FkZW1pY19wbGFuLmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb3Vyc2VfdHlwZS5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFncmVlbWVudC5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5lbmdsaXNoX2xldmVsLmNvZGUpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5jb2RlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmNvdXJzZV9tb2RhbGl0eS5jb2RlKTtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuY2FtcHVzKTtcbiAgfVxuXG4gIHNldERhdGFGcm9tRWRpdENvZEhpc3RvcnkoKXtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2VfdHlwZS5hY2FkZW1pY19wbGFuLmNvZGUgPyB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2VfdHlwZS5hY2FkZW1pY19wbGFuLmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZV90eXBlLmNvZGUgPyB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2VfdHlwZS5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUodGhpcy5kYXRhUHJldml1c0NvZERhdGEuYWdyZWVtZW50LmNvZGUgPyB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5hZ3JlZW1lbnQuY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5lbmdsaXNoX2xldmVsLmNvZGUgPyB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5lbmdsaXNoX2xldmVsLmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLmNvdXJzZS5jb2RlID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlLmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZSh0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5jb3Vyc2UuY291cnNlX21vZGFsaXR5ID8gdGhpcy5kYXRhUHJldml1c0NvZERhdGEuY291cnNlLmNvdXJzZV9tb2RhbGl0eSA6IG51bGwpO1xuICB9XG4gIHNldERhdGFDb2RSZW5vdmF0aW9uU2VsZWN0KCl7XG5cbiAgICBjb25zdCBjYW1wdXMgPSB0aGlzLmRhdGFQcmV2aXVzQ29kRGF0YS5zdHVkZW50Py5jYW1wdXNfZW50ZXJwcmlzZSA/IHRoaXMuZGF0YVByZXZpdXNDb2REYXRhLnN0dWRlbnQ/LmNhbXB1c19lbnRlcnByaXNlIDogbnVsbDtcbiAgICB0aGlzLmdldEFncmVlbWVudEJ5UGxhbih0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSxjYW1wdXMpO1xuICAgIHRoaXMuZ2V0Q291cnNlVHlwZSh0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX3R5cGU/LmFjYWRlbWljX3BsYW4uY29kZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5jb3Vyc2VfdHlwZT8uYWNhZGVtaWNfcGxhbi5jb2RlID8gdGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmNvdXJzZV90eXBlPy5hY2FkZW1pY19wbGFuLmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5jb3Vyc2VfdHlwZT8uY29kZSA/IHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5jb3Vyc2VfdHlwZT8uY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5hZ3JlZW1lbnQ/LmNvZGUgPyB0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uYWdyZWVtZW50Py5jb2RlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5lbmdsaXNoX2xldmVsPy5jb2RlID8gdGhpcy5jb3Vyc2VTZWxlY3RSZW5vdmF0aW9uLmVuZ2xpc2hfbGV2ZWw/LmNvZGUgOiBudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbj8uY29kZSA/IHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbj8uY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0UmVub3ZhdGlvbi5jb3Vyc2VfbW9kYWxpdHk/LmNvZGUgPyB0aGlzLmNvdXJzZVNlbGVjdFJlbm92YXRpb24uY291cnNlX21vZGFsaXR5Py5jb2RlIDogbnVsbCk7XG5cbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS5zZXRWYWx1ZShjYW1wdXMpO1xuICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUygxLCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMSwgY29udHJvbC5uYW1lLCB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICB0aGlzLnBsYW5zID0gdGhpcy5wYXJhbWV0ZXJzQWxsPy5hY2FkZW1pY1BsYW47XG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLnBhcmFtZXRlcnNBbGw/LmVuZ2xpc2hfbGV2ZWxzO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgYWNhZGVtaWNfcGxhbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX3R5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZW5nbGlzaF9sZXZlbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW11dLFxuICAgICAgY291cnNlX21vZGFsaXR5OiBbJyddLFxuICAgICAgY2FtcHVzOiBbdGhpcy51c2VyQ2FtcHVzLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuICB9XG5cbiAgc2V0VmFsdWVzQnlMb2NhbFN0b3JhZ2UoKSB7XG4gICAgY29uc3QgYWNhZGVtaWNQbGFuID0gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnZhbHVlO1xuICAgIGlmIChhY2FkZW1pY1BsYW4pIHtcbiAgICAgIHRoaXMuc2VsZWN0QWNhZGVtaWNQbGFuKGFjYWRlbWljUGxhbik7XG4gICAgfVxuICBcbiAgICBjb25zdCBhZ3JlZW1lbnRCeUNhdGVnb3J5ID0gcGFyc2VJbnQodGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUpO1xuICAgIGNvbnN0IGVuZ2xpc2hMZXZlbCA9IHBhcnNlSW50KHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZSk7XG4gICAgY29uc3QgY291cnNlTW9kYWxpdHkgPSBwYXJzZUludCh0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS52YWx1ZSk7XG4gIFxuICAgIGlmIChhZ3JlZW1lbnRCeUNhdGVnb3J5ICYmIGVuZ2xpc2hMZXZlbCAmJiBjb3Vyc2VNb2RhbGl0eSkge1xuICAgICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBPbmUuaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAyXG4gICAgdGhpcy5jaGFuZ2VTdGVwRXZlbnQuZW1pdCgxKTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpIHtcbiAgICAvLyB0aGlzLnJlc2V0TG9jYWxTdG9yYWdlKHRoaXMuY29udHJvbHMpO1xuICAgIC8vIHRoaXMuY29kRm9ybVN0ZXBPbmUucmVzZXQoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnNldFZhbHVlKHRoaXMudXNlckNhbXB1cyk7XG4gIH1cblxuICAvLyBFdmVudG9zIGRlIGxvcyBzZWxlY3RzXG4gIHNlbGVjdEFjYWRlbWljUGxhbihhY2FkZW1pY19wbGFuOiBzdHJpbmcpIHtcbiAgICBpZiAoYWNhZGVtaWNfcGxhbiAhPT0gJ1BsYW4nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUocGFyc2VJbnQoYWNhZGVtaWNfcGxhbikpO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICAvLyB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydzY2hvb2xfbmFtZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIGNvbnN0IGNhbXB1cyA9IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddLnZhbHVlID8gcGFyc2VJbnQodGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10udmFsdWUpIDogdGhpcy5jYW1wdXM7XG4gICAgICB0aGlzLmdldENvdXJzZVR5cGUocGFyc2VJbnQoYWNhZGVtaWNfcGxhbikpO1xuICAgICAgdGhpcy5nZXRBZ3JlZW1lbnRCeVBsYW4ocGFyc2VJbnQoYWNhZGVtaWNfcGxhbiksIGNhbXB1cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDYW1wdXMoY2FtcHVzOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjYW1wdXNDb2RlOm51bWJlciA9IHBhcnNlSW50KGNhbXB1cyk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10uc2V0VmFsdWUoY2FtcHVzQ29kZSk7XG5cbiAgICBsZXQgYWNhZGVtaWNfcGxhbiA9IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZTtcbiAgICB0aGlzLmdldENvdXJzZVR5cGUocGFyc2VJbnQoYWNhZGVtaWNfcGxhbikpO1xuICAgIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIHRoaXMuZ2V0QWdyZWVtZW50QnlQbGFuKHBhcnNlSW50KGFjYWRlbWljX3BsYW4pLCBjYW1wdXNDb2RlKTtcbiAgICBcbiAgfVxuXG4gIGdldENvdXJzZVR5cGUocGxhbjogbnVtYmVyKSB7XG4gICAgY29uc3QgcGxhbk51bWJlciA9IHR5cGVvZiBwbGFuID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHBsYW4pIDogcGxhbjtcbiAgICBjb25zdCBjYW1wdXMgPSB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS52YWx1ZTtcbiAgICBpZiAodGhpcy5wYXJhbWV0ZXJzQWxsICYmIHRoaXMucGFyYW1ldGVyc0FsbD8uY291cnNlVHlwZSkge1xuICAgICAgdGhpcy5jb3Vyc2VfdHlwZSA9IHRoaXMucGFyYW1ldGVyc0FsbC5jb3Vyc2VUeXBlLmZpbHRlcigoY291cnNlKSA9PiB7XG4gICAgICAgIHJldHVybiBjb3Vyc2UuYWNhZGVtaWNfcGxhbiA9PT0gcGxhbk51bWJlciAmJiBjb3Vyc2UuY2FtcHVzID09IGNhbXB1cztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdXJzZV90eXBlID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0QWdyZWVtZW50QnlQbGFuKHBsYW46IG51bWJlciwgY2FtcHVzOiBudW1iZXIpIHtcbiAgICBjb25zdCBwbGFuTnVtYmVyID0gdHlwZW9mIHBsYW4gPT09ICdzdHJpbmcnID8gcGFyc2VJbnQocGxhbikgOiBwbGFuO1xuICAgIGlmICh0aGlzLnBhcmFtZXRlcnNBbGwgJiYgdGhpcy5wYXJhbWV0ZXJzQWxsPy5hZ3JlZW1lbnQpIHtcbiAgICAgIHRoaXMuYWdyZWVtZW50cyA9IHRoaXMucGFyYW1ldGVyc0FsbC5hZ3JlZW1lbnQuZmlsdGVyKChhZ3JlZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGFncmVlbWVudC5jYXRlZ29yeSA9PT0gcGxhbk51bWJlciAmJiBhZ3JlZW1lbnQuY2FtcHVzID09IGNhbXB1cztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFncmVlbWVudHMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDb3Vyc2VzVHlwZXNCeVBsYW4oY291cnNlc1R5cGVzOiBhbnkpIHtcbiAgICBpZiAoY291cnNlc1R5cGVzICE9PSAnVGlwbyBkZSBwbGFuJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZShjb3Vyc2VzVHlwZXMpO1xuICAgICAgdGhpcy5nZXRBdmFpbGlibGVDb3Vyc2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWdyZWVtZW50QnlDYXRlZ29yeShhZ3JlZW1lbnRCeUNhdGVnb3JpZXM6IGFueSkge1xuICAgIGlmIChhZ3JlZW1lbnRCeUNhdGVnb3JpZXMgIT09ICdDb252ZW5pbyBwb3IgY2F0ZWdvcmlhJykge1xuICAgICAgLy8gdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShhZ3JlZW1lbnRCeUNhdGVnb3JpZXMpO1xuICAgICAgdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLnNldEN1cnJlbnRBZ3JlZW1lbnQoYWdyZWVtZW50QnlDYXRlZ29yaWVzKTtcbiAgICAgIC8vIHRoaXMuZ2V0QXZhaWxpYmxlQ291cnNlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIC8vdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snc2Nob29sX25hbWUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RMZXZlbChsZXZlbHM6IGFueSkge1xuICAgIGlmIChsZXZlbHMgIT09ICdOaXZlbCBkZSBpbmdsw6lzJykge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKGxldmVscyk7XG4gICAgICB0aGlzLmdldEF2YWlsaWJsZUNvdXJzZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEF2YWlsaWJsZUNvdXJzZXMoYXZhaWxpYmxlQ291cnNlczogYW55KSB7XG4gICAgaWYgKGF2YWlsaWJsZUNvdXJzZXMgIT09ICdHcnVwb3MgZGlzcG9uaWJsZXMnKSB7XG4gICAgICBsZXQgY291cnNlTW9kID0gdGhpcy5hdmFpbGlibGVDb3Vyc2VzLmZpbmQob2JqZXRvID0+IG9iamV0by5jb2RlID09PSBwYXJzZUludChhdmFpbGlibGVDb3Vyc2VzLCAxMCkpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUoY291cnNlTW9kLm1vZGFsaXR5KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUoYXZhaWxpYmxlQ291cnNlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZFJlcXVlc3QoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuY29kRm9ybVN0ZXBPbmU7XG4gICAgcmV0dXJuICEhKFxuICAgICAgZm9ybS5nZXQoJ2VuZ2xpc2hfbGV2ZWwnKT8udmFsdWUgJiZcbiAgICAgIGZvcm0uZ2V0KCdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKT8udmFsdWUgJiZcbiAgICAgIGZvcm0uZ2V0KCdjb3Vyc2VfdHlwZScpPy52YWx1ZVxuICAgICk7XG4gIH1cblxuICAvLyBnZXRBdmFpbGlibGVDb3Vyc2VzKCkge1xuXG4gIC8vICAgaWYgKHRoaXMudmFsaWRSZXF1ZXN0KCkpIHtcbiAgLy8gICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgLy8gICAgIGxldCByZXF1ZXN0X2F2YWlsaWJsZUNvdXJzZXM6IEdldEF2YWlsaWJsZUNvdXJzZXNScSA9IHtcbiAgLy8gICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gIC8vICAgICAgIGVuZ2xpc2hfbGV2ZWw6IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZSxcbiAgLy8gICAgICAgYWdyZWVtZW50OiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSxcbiAgLy8gICAgICAgY291cnNlX3R5cGU6IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdXJzZV90eXBlJ10udmFsdWUsXG4gIC8vICAgICB9O1xuXG4gIC8vICAgICB0aGlzLmNvdXJzZVNlcnZpY2UuZ2V0QXZhaWxhYmxlQ291cnNlc0J5TGV2QWdyZWVDVHlwZShyZXF1ZXN0X2F2YWlsaWJsZUNvdXJzZXMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgLy8gICAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcbiAgLy8gICAgICAgICB0aGlzLmF2YWlsaWJsZUNvdXJzZXMgPSBbXTtcbiAgLy8gICAgICAgICBsZXQgY291cnNlczogYW55W10gPSByZXNwb25zZS5kYXRhO1xuICAvLyAgICAgICAgIHRoaXMuaGFzQXZhaWxhYmxlQ291cnNlID0gdHJ1ZTtcbiAgLy8gICAgICAgICBjb3Vyc2VzLmZvckVhY2goY291cnNlID0+IHtcbiAgLy8gICAgICAgICAgIGxldCBzY2hlZHVsZVBhcnRzID0gY291cnNlLmNvdXJzZV9zY2hlZHVsZVswXS5zcGxpdChcIiBcIik7XG4gIC8vICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gc2NoZWR1bGVQYXJ0c1syXTtcbiAgLy8gICAgICAgICAgIHRoaXMuYXZhaWxpYmxlQ291cnNlcy5wdXNoKHtcbiAgLy8gICAgICAgICAgICAgY29kZTogY291cnNlLmNvZGUsXG4gIC8vICAgICAgICAgICAgIG5hbWU6IGAke2NvdXJzZS5jb2RlfSBDdXJzbyAke2NvdXJzZS5jb3Vyc2VfbW9kYWxpdHkubmFtZSA9PT0gJ1ByZXNlbmNpYWwnID8gJ1ByZXNlbmNpYWwnIDogJ1ZpcnR1YWwnfSAtIFRlYWNoZXIgJHtjb3Vyc2UudGVhY2hlcn0gLSAgRmVjaGEgZGUgaW5pY2lvOiAke2NvdXJzZS50b19zdGFydH0sIEhvcmEgZGUgaW5pY2lvOiAke3N0YXJ0VGltZX0sIEN1cG9zIGRpc3A6ICR7Y291cnNlLmF2YWlsYWJsZV9jYXBhY2l0eX1gLFxuICAvLyAgICAgICAgICAgICBtb2RhbGl0eTogY291cnNlLmNvdXJzZV9tb2RhbGl0eS5jb2RlXG4gIC8vICAgICAgICAgICB9KTtcbiAgLy8gICAgICAgICB9KVxuICAvLyAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIC8vICAgICAgICAgY29uc29sZS5sb2coXCJhdmFpbGlibGVDb3Vyc2VzXCIsdGhpcy5hdmFpbGlibGVDb3Vyc2VzKTtcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZyhcIlZhbG9yZXMgZGVsIGZvcm11bGFyaW86XCIsIHtcbiAgLy8gICAgICAgICAgIGFjYWRlbWljX3BsYW46IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGNvdXJzZV90eXBlOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlLFxuICAvLyAgICAgICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGVuZ2xpc2hfbGV2ZWw6IHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlLFxuICAvLyAgICAgICAgICAgY291cnNlX21vZGFsaXR5OiB0aGlzLmNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfbW9kYWxpdHknXS52YWx1ZSxcbiAgLy8gICAgICAgICAgIGFncmVlbWVudDogdGhpcy5jb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50J10udmFsdWUsXG4gIC8vICAgICAgICAgfSk7XG4gIC8vICAgICAgIH0gZWxzZSB7ICBcbiAgLy8gICAgICAgICB0aGlzLmhhc0F2YWlsYWJsZUNvdXJzZSA9IGZhbHNlO1xuICAvLyAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUoXCJcIik7XG4gIC8vICAgICAgICAgdGhpcy5zZXRWYWx1ZVN0ZXBGb3VyKCk7XG4gIC8vICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgICB9KTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICBnZXRBdmFpbGlibGVDb3Vyc2VzKCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLnZhbGlkUmVxdWVzdCgpKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBcbiAgICAgIC8vIEd1YXJkYSBsb3MgdmFsb3JlcyBhY3R1YWxlcyBhbnRlcyBkZSBsYSBsbGFtYWRhXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWVzID0ge1xuICAgICAgICBhY2FkZW1pY19wbGFuOiB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnYWNhZGVtaWNfcGxhbicpPy52YWx1ZSxcbiAgICAgICAgY291cnNlX3R5cGU6IHRoaXMuY29kRm9ybVN0ZXBPbmUuZ2V0KCdjb3Vyc2VfdHlwZScpPy52YWx1ZSxcbiAgICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnYWdyZWVtZW50X2J5X2NhdGVnb3J5Jyk/LnZhbHVlLFxuICAgICAgICBlbmdsaXNoX2xldmVsOiB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnZW5nbGlzaF9sZXZlbCcpPy52YWx1ZSxcbiAgICAgICAgY2FtcHVzOiB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnY2FtcHVzJyk/LnZhbHVlXG4gICAgICB9O1xuICAgICAgLy9HZXRBdmFpbGlibGVDb3Vyc2VzUnFcbiAgICAgIGxldCByZXF1ZXN0X2F2YWlsaWJsZUNvdXJzZXM6IGFueSA9IHtcbiAgICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICAgIGVuZ2xpc2hfbGV2ZWw6IGN1cnJlbnRWYWx1ZXMuZW5nbGlzaF9sZXZlbCxcbiAgICAgICAgYWdyZWVtZW50OiBjdXJyZW50VmFsdWVzLmFncmVlbWVudF9ieV9jYXRlZ29yeSxcbiAgICAgICAgY291cnNlX3R5cGU6IGN1cnJlbnRWYWx1ZXMuY291cnNlX3R5cGUsXG4gICAgICAgIGNhbXB1czogY3VycmVudFZhbHVlcy5jYW1wdXNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuY291cnNlU2VydmljZS5nZXRBdmFpbGFibGVDb3Vyc2VzQnlMZXZBZ3JlZUNUeXBlKHJlcXVlc3RfYXZhaWxpYmxlQ291cnNlcylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSkgXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICB0aGlzLmF2YWlsaWJsZUNvdXJzZXMgPSByZXNwb25zZS5kYXRhLm1hcCgoY291cnNlOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzY2hlZHVsZVBhcnRzID0gY291cnNlLmNvdXJzZV9zY2hlZHVsZVswXT8uc3BsaXQoXCIgXCIpIHx8IFtdO1xuICAgICAgICAgICAgICAgIGxldCBzdGFydFRpbWUgPSBzY2hlZHVsZVBhcnRzWzJdIHx8ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBjb2RlOiBjb3Vyc2UuY29kZSxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGAke2NvdXJzZS5jb2RlfSBDdXJzbyAke2NvdXJzZS5jb3Vyc2VfbW9kYWxpdHk/Lm5hbWUgPT09ICdQcmVzZW5jaWFsJyA/ICdQcmVzZW5jaWFsJyA6ICdWaXJ0dWFsJ30gLSBUZWFjaGVyICR7Y291cnNlLnRlYWNoZXJ9IC0gRmVjaGEgZGUgaW5pY2lvOiAke2NvdXJzZS50b19zdGFydH0sIEhvcmEgZGUgaW5pY2lvOiAke3N0YXJ0VGltZX0sIEN1cG9zIGRpc3A6ICR7Y291cnNlLmF2YWlsYWJsZV9jYXBhY2l0eX1gLFxuICAgICAgICAgICAgICAgICAgbW9kYWxpdHk6IGNvdXJzZS5jb3Vyc2VfbW9kYWxpdHk/LmNvZGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5oYXNBdmFpbGFibGVDb3Vyc2UgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHsgIFxuICAgICAgICAgICAgICB0aGlzLmhhc0F2YWlsYWJsZUNvdXJzZSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwT25lLmdldCgnYXZhaWxpYmxlX2NvdXJzZXMnKT8uc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVTdGVwRm91cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFzQXZhaWxhYmxlQ291cnNlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlU3RlcEZvdXIoKXtcbiAgICB0aGlzLnNldERhdGFJbkxvY2FsU3RvcmFnZSg0LCAncHJvZ3JhbV9wcmljZScsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICdxdW90YV90aW1lcycsIG51bGwpO1xuICAgIHRoaXMuc2V0RGF0YUluTG9jYWxTdG9yYWdlKDQsICd0b3RhbF9wcmljZScsIG51bGwpO1xuICB9XG5cbiAgb2J0YWluQ2FtcHVzKCl7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldEFsbENhbXB1cygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuXG4gICAgICAgIGlmKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jYW1wdXNMaXN0ID0gcmVzcG9uc2UuZGF0YTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY2FtcHVzTGlzdCA9IFtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYWwgb2J0ZW5lciBjYW1wdXM6JywgZXJyKTtcbiAgICAgICAgdGhpcy5jYW1wdXNMaXN0ID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjYW5TZWxlY3RDYW1wdXMoKXtcbiAgICByZXR1cm4gdGhpcy51c2VyQ2FtcHVzID09PSAxO1xuICB9XG5cblxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcE9uZVwiIGNsYXNzPVwiZ3JpZFwiPlxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FjYWRlbWljX3BsYW4nXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnZhbHVlID09PSBudWxsPyAnUGxhbic6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidQbGFuJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RBY2FkZW1pY1BsYW4oJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJwbGFuc1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjYW1wdXMnXS52YWx1ZSsnJ1wiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10udmFsdWUgPT09IG51bGw/ICdDYW1wdXMnOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY2FtcHVzJ10udmFsdWVcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidDYW1wdXMnXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENhbXB1cygkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImNhbXB1c0xpc3RcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NhbXB1cyddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCIhY2FuU2VsZWN0Q2FtcHVzKCkgfHwgaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXS52YWx1ZSA9PT0gbnVsbD8gJ1RpcG8gZGUgcGxhbic6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3Vyc2VfdHlwZSddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInVGlwbyBkZSBwbGFuJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDb3Vyc2VzVHlwZXNCeVBsYW4oJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJjb3Vyc2VfdHlwZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snY291cnNlX3R5cGUnXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cblxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUgPT09IG51bGw/ICdDb252ZW5pbyBwb3IgY2F0ZWdvcmlhJzogY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ29udmVuaW8gcG9yIGNhdGVnb3JpYSdcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0QWdyZWVtZW50QnlDYXRlZ29yeSgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImFncmVlbWVudHNcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddXCJcbiAgICAgIFtkaXNhYmxlZFNlbF09XCJpc0Rpc2FibGVkU2VsXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10udmFsdWVcIlxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS52YWx1ZSA9PT0gbnVsbD8gJ05pdmVsIGRlIGluZ2zDqXMnOiBjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snZW5nbGlzaF9sZXZlbCddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTml2ZWwgZGUgaW5nbMOpcydcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0TGV2ZWwoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJsZXZlbHNcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS52YWx1ZVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS52YWx1ZSA9PT0gbnVsbD8gJ0dydXBvcyBkaXNwb25pYmxlcyc6IGNvZEZvcm1TdGVwT25lLmNvbnRyb2xzWydhdmFpbGlibGVfY291cnNlcyddLnZhbHVlXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInR3J1cG9zIGRpc3BvbmlibGVzJ1wiXG4gICAgICBbaXNSZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RBdmFpbGlibGVDb3Vyc2VzKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiYXZhaWxpYmxlQ291cnNlc1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcE9uZS5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXVwiXG4gICAgICBbZGlzYWJsZWRTZWxdPVwiaXNEaXNhYmxlZFNlbFwiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblxuXG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cInctMVwiPlxuICAgIDwvaXB0LWxvYWRlcj5cbiAgPC9kaXY+XG4gIDxzcGFuICpuZ0lmPVwiIWhhc0F2YWlsYWJsZUNvdXJzZVwiIGNsYXNzPVwibXQtMSBwbC0yIHRleHQtcmVkLTUwMFwiPlRvZGF2w61hIG5vIGhheSBjdXJzb3MgY29uIGVzdGFzIGNhcmFjdGVyw61zdGljYXMuPC9zcGFuPlxuPC9mb3JtPlxuXG48ZGl2IGNsYXNzPVwiZmxleCBtdC0yIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICA8c3BhbiAqbmdJZj1cImNvZEZvcm1TdGVwT25lLmludmFsaWQgJiYgY29kRm9ybVN0ZXBPbmUudG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+RmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLjwvc3Bhbj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2NsYXNzXT1cImlzRWRpdENvZCA/ICdtbC1hdXRvIHllbGxvdy0zMDAgcC1idXR0b24tc20nIDogJ21sLWF1dG8gcC1idXR0b24tc20nXCIgKGNsaWNrKT1cInNlbmRGb3JtKClcIiBwQnV0dG9uIGxhYmVsPVwiU2lndWllbnRlXCIgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCI+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ycS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb3JlL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhUGFyZW50SW5mUnMgfSBmcm9tIFwiLi4vY29kL2NvZC1ycS5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJScSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IG51bWJlcjtcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmVfaW5kaWNhdGl2ZTogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IG51bWJlcjtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJxIHtcbiAgdXNlcjogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBpZF9jYXJkX3R5cGU6IHN0cmluZztcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBzdHJpbmc7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBjaXR5PzogbnVtYmVyO1xuICBnZW5kZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJJbmRleFJxIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgY2l0eTogbnVtYmVyO1xuICBjb21tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVySG9tZVJxIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgdHlwZV9pZDogc3RyaW5nO1xuICBpZF9jYXJkOiBudW1iZXI7XG4gIGNpdHk6IHN0cmluZztcbiAgZGF0ZV9vZl9iaXJ0aDogc3RyaW5nO1xuICBwaG9uZTogbnVtYmVyO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRGFzaGJvYXJkUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBzdHJpbmc7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IG51bWJlcjtcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBjaXR5OiBzdHJpbmc7XG4gIHNlcnZpY2VfaG91cjogbnVtYmVyO1xuICByb2xlOiBudW1iZXI7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRva2VuUnEge1xuICB0b2tlbjogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyVG9rZW5ScTIge1xuICB0b2tlbjogc3RyaW5nO1xuICBkZXBhcnRtZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRScSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBnZXRTdHVkZW50UnEge1xuICB0b2tlbjogc3RyaW5nLFxuICBwYXJhbTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXB0VXNlciB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIG51bGw7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgbnVsbDtcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIG51bGw7XG4gIGNpdHk6ICAgICAgICAgICAgIHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXBkYXRlZF9hdDogICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWFjaGVyQnlDb2RlUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICB0ZWFjaGVyX2NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWFjaGVyUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdF9uYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgdXNlclRva2VuUnEge1xuICB0b2tlbjogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVwZHRhZVVzZXJWYWxpZGF0ZWRScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGNvZGU6IG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElJcHRVc2VyRnVsbERhdGFScSB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBzdHJpbmc7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBzdGF0ZTogICAgICAgICAgICBudW1iZXIgfCBudWxsO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIGdlbmRlcjogICAgICAgICAgIG51bWJlcjtcbiAgYmlydGhkYXRlOiAgICAgICAgRGF0ZSB8IG51bGw7XG4gIHNlcnZpY2VfaG91cjogICAgIG51bWJlcjtcbiAgcGFzc3dvcmQ6ICAgICAgICAgc3RyaW5nO1xuICBzdGF0dXM6ICAgICAgICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJTdGF0dXNScSB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHZW5kZXJUeXBlUnEge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWVfc3BhbmlzaDogICAgIHN0cmluZztcbiAgbmFtZV9lbmdsaXNoOiAgICAgc3RyaW5nO1xuICBhYmJyZXZpYXRpb246ICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblVzZXJCeUVtYWlsRG9jUnEge1xuICBpZF9jYXJkOiAgICAgICAgICAgbnVtYmVyO1xuICBlbWFpbDogICAgICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyQ29tbWVyY2lhbFJxIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBzdHJpbmc7XG4gIHJvbGU6ICAgICAgICAgICAgIHN0cmluZztcbiAgc2VydmljZV9ob3VyOiAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBzdHJpbmc7XG4gIGNpdHk6ICAgICAgICAgICAgIHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiAgICAgc3RyaW5nO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgIERhdGU7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVN0dWRlbnRPclVzZXJFa3RCeUNvbmNlcHRScSB7XG4gIHRva2VuOiAgICAgICBzdHJpbmc7XG4gIHBhcmFtOiAgICAgICBzdHJpbmc7XG4gIGNvZGVDb25jZXB0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zVXNlciB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHBhcmFtOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXVzZXJzUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IG51bWJlcjtcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBjaXR5OiBudW1iZXI7XG4gIHBhc3N3b3JkOnN0cmluZztcbiAgcm9sZTogbnVtYmVyO1xuICBnZW5kZXI6IG51bWJlcjtcbiAgdG9rZW46IHN0cmluZztcbiAgaXNfY29tcGFueTogbnVtYmVyO1xuICBuYW1lX2NvbXBhbnk/OiBzdHJpbmc7XG4gIGNhdGVnb3J5PzpudW1iZXI7XG4gIGFkZHJlc3NfY29tcGFueT86c3RyaW5nO1xuICBwaG9uZV9jb21wYW55PzpudW1iZXI7XG4gIG5pdD86bnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRGVsZXRlVGVhY2hlclJxIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHRlYWNoZXJfY29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVcGRhdGVEYXRhVGVhY2hlclJxIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHRlYWNoZXJfY29kZTogbnVtYmVyO1xuICBuYW1lOiAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgIHN0cmluZztcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIGNpdHk6ICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IHN0cmluZztcbiAgcGFzc3dvcmQ6ICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkRhdGFGcm9tU3VwcGxpZXJzU3R1ZGVudFJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgcGFyYW06IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2VVc2Vyc0Zyb21EZXBhcnRtZW50c1JxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgZGVwYXJ0bWVudHM6IG51bWJlcltdO1xuICByb2xsX25vdF9hdXRob3JpemU6IG51bWJlcltdO1xuICBjYW1wdXNfY29kZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybURhdGFScSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IHN0cmluZztcbiAgcGhvbmVfaW5kaWNhdGl2ZTogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBjaXR5OiBzdHJpbmc7XG4gIHJvbGU6IHN0cmluZztcbiAgc2VydmljZV9ob3VyOiBzdHJpbmc7XG4gIGNoYW5nZVBhc3N3b3JkOiBib29sZWFuO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICByZV9wYXNzd29yZDogc3RyaW5nO1xuICBwYXJlbnRfbmFtZT86IHN0cmluZztcbiAgcGFyZW50X2xhc3RfbmFtZT86IHN0cmluZztcbiAgcGFyZW50X2lkX2NhcmRfdHlwZT86IHN0cmluZztcbiAgcGFyZW50X2lkX2NhcmQ/OiBzdHJpbmc7XG4gIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlPzogc3RyaW5nO1xuICBwYXJlbnRfcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBwYXJlbnRfb2NjdXBhdGlvbj86IHN0cmluZztcbiAgcGFyZW50X29mZmljZV9hZHJyZXNzPzogc3RyaW5nO1xuICBwYXJlbnRfZW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlYXJjaEZvclN0dWRlbnRUb0VkaXRScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICBpbnB1dFNlYXJjaDogc3RyaW5nO1xuICAgIHBlcl9wYWdlOiAgICBudW1iZXI7XG4gICAgcGFnZTogICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hGb3JTdHVkZW50VG9FZGl0UnMge1xuICAgIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICAgIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gICAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nO1xuICAgIHJvbGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gICAgcGhvbmVfaW5kaWNhdGl2ZTogbnVtYmVyO1xuICAgIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gICAgYmlydGhkYXRlOiAgICAgICAgRGF0ZTtcbiAgICBjaXR5OiAgICAgICAgICAgICBJQ2l0eUNvdW50cnlTdGF0ZVJzO1xuICAgIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gICAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICAgIHBhc3N3b3JkX2NoYW5nZTogIG51bWJlcjtcbiAgICBzdGF0dXNfYXNpbmc6ICAgICBudW1iZXI7XG4gICAgdXBkYXRlZF9hdDogICAgICAgRGF0ZTtcbiAgICBjb2RzOiAgICAgICAgICAgICBJQ29kUnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNpdHlDb3VudHJ5U3RhdGVScyB7XG4gICAgY29kZTogICAgbnVtYmVyO1xuICAgIGNhcGl0YWw6IG51bWJlcjtcbiAgICBzdGF0ZTogICBudW1iZXI7XG4gICAgY291bnRyeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2RScyB7XG4gICAgY29kZTogICAgICAgbnVtYmVyO1xuICAgIHN0dWRlbnQ6ICAgIG51bWJlcjtcbiAgICBwYXJlbnQ6ICAgICBJRGF0YVBhcmVudEluZlJzO1xuICAgIGNvZF9zdGF0dXM6IG51bWJlcjtcbiAgICBjcmVhdGVkX2F0OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50SWREdXBsaWNhdGVScyB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nIHwgbnVsbDtcbiAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nIHwgbnVsbDtcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIHN0cmluZztcbiAgY2l0eTogICAgICAgICAgICAgSUNpdHlDb3VudHJ5U3RhdGVScztcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdDogICAgICAgc3RyaW5nO1xuICBjb2RzOiAgICAgICAgICAgICBJQ29kU3R1ZGVudER1cGxpY2F0UnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29kU3R1ZGVudER1cGxpY2F0UnMge1xuICBjb2RlOiBudW1iZXI7XG4gIHN0dWRlbnQ6IG51bWJlcjtcbiAgcGFyZW50OiBJRGF0YVBhcmVudEluZlJzIHwgbnVsbDtcbiAgY29kX3N0YXR1czogbnVtYmVyO1xuICBjb2RfY291cnNlOiBudW1iZXI7XG4gIGNvZF9lbmdfbGV2OiBudW1iZXI7XG4gIGNvZF90ZXJtczogc3RyaW5nIHwgbnVsbDtcbiAgY29kX3BhaWQ6IG51bWJlcjtcbiAgY3JlYXRlZF9hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hVc2Vyc0ZvclRlYW1Bc3NpZ25tZW50UnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgcGFyYW06ICAgICAgICAgICAgICBzdHJpbmc7XG4gIGRlcGFydG1lbnRzOiAgICAgICAgbnVtYmVyW107XG4gIHJvbGVzOiAgICAgICAgICAgICAgbnVtYmVyW107XG4gIHJvbGxfbm90X2F1dGhvcml6ZTogbnVtYmVyW107XG4gIHBhZ2U6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwZXJfcGFnZTogICAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoVXNlcnNGb3JUZWFtQXNzaWdubWVudFJzIHtcbiAgZGF0YTogICAgICAgSURhdHVtUnNbXTtcbiAgcGFnaW5hdGlvbjogSVBhZ2luYXRpb25TZWFyY2hScztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0dW1ScyB7XG4gIGNvZGU6ICAgICAgICAgbnVtYmVyO1xuICByb2xlOiAgICAgICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICBzdHJpbmc7XG4gIG5hbWU6ICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICBzdHJpbmc7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICB1c2VyX3N0YXR1czogIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvblNlYXJjaFJzIHtcbiAgY3VycmVudF9wYWdlOiAgbnVtYmVyO1xuICBsYXN0X3BhZ2U6ICAgICBudW1iZXI7XG4gIHBlcl9wYWdlOiAgICAgIG51bWJlcjtcbiAgdG90YWw6ICAgICAgICAgbnVtYmVyO1xuICBuZXh0X3BhZ2VfdXJsOiBudWxsO1xuICBwcmV2X3BhZ2VfdXJsOiBudWxsO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICB1c2VyX3JvbGU6ICAgbnVtYmVyO1xuICAgIGNhbXB1c19jb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScXMge1xuICAgIGNvZGU6ICAgICAgICAgICAgICBudW1iZXI7XG4gICAgaWRfY2FyZDogICAgICAgICAgIHN0cmluZztcbiAgICBuYW1lOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogICAgICAgICBzdHJpbmc7XG4gICAgbmlja19uYW1lOiAgICAgICAgIHN0cmluZztcbiAgICBlbWFpbDogICAgICAgICAgICAgc3RyaW5nO1xuICAgIHBob25lX251bWJlcjogICAgICBzdHJpbmc7XG4gICAgZ2VuZGVyOiAgICAgICAgICAgIG51bWJlcjtcbiAgICBjaXR5OiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGJpcnRoZGF0ZTogICAgICAgICBEYXRlO1xuICAgIHJvbGU6ICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgc2VydmljZV9ob3VyOiAgICAgIG51bWJlcjtcbiAgICBlbWFpbF9pcHQ6ICAgICAgICAgc3RyaW5nO1xuICAgIHVwZGF0ZWRfYXQ6ICAgICAgICBEYXRlO1xuICAgIGlkX2NhcmRfdHlwZTogICAgICBzdHJpbmc7XG4gICAgY2FtcHVzX2VudGVycHJpc2U6IG51bWJlcjtcbiAgICBjYW1wdXNfbmFtZTogICAgICAgc3RyaW5nO1xuICAgIGNhbXB1c19jaXR5X25hbWU6ICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEFsbFVzZXJCeVJvbGxWYWxpZGF0ZWRBbmRDYW1wdXNScSB7XG4gIHRva2VuOiAgc3RyaW5nO1xuICBjYW1wdXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0QnlSb2xlc0FuZENhbXB1c2VzUnEge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgdXNlcl9yb2xlOiAgICBudW1iZXJbXTtcbiAgY2FtcHVzX2NvZGU6ICBudW1iZXJbXTtcbiAgcGFyYW1ldGVyOiAgICBzdHJpbmcgfCBudWxsO1xufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ycS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb3JlL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhUGFyZW50SW5mUnMgfSBmcm9tIFwiLi4vY29kL2NvZC1ycS5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJScSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IG51bWJlcjtcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmVfaW5kaWNhdGl2ZTogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IG51bWJlcjtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJxIHtcbiAgdXNlcjogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBpZF9jYXJkX3R5cGU6IHN0cmluZztcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBzdHJpbmc7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBjaXR5PzogbnVtYmVyO1xuICBnZW5kZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJJbmRleFJxIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgY2l0eTogbnVtYmVyO1xuICBjb21tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVySG9tZVJxIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgdHlwZV9pZDogc3RyaW5nO1xuICBpZF9jYXJkOiBudW1iZXI7XG4gIGNpdHk6IHN0cmluZztcbiAgZGF0ZV9vZl9iaXJ0aDogc3RyaW5nO1xuICBwaG9uZTogbnVtYmVyO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRGFzaGJvYXJkUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBzdHJpbmc7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IG51bWJlcjtcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBjaXR5OiBzdHJpbmc7XG4gIHNlcnZpY2VfaG91cjogbnVtYmVyO1xuICByb2xlOiBudW1iZXI7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRva2VuUnEge1xuICB0b2tlbjogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyVG9rZW5ScTIge1xuICB0b2tlbjogc3RyaW5nO1xuICBkZXBhcnRtZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRScSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBnZXRTdHVkZW50UnEge1xuICB0b2tlbjogc3RyaW5nLFxuICBwYXJhbTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXB0VXNlciB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIG51bGw7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgbnVsbDtcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIG51bGw7XG4gIGNpdHk6ICAgICAgICAgICAgIHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXBkYXRlZF9hdDogICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWFjaGVyQnlDb2RlUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICB0ZWFjaGVyX2NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZWFjaGVyUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFzdF9uYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgdXNlclRva2VuUnEge1xuICB0b2tlbjogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVwZHRhZVVzZXJWYWxpZGF0ZWRScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGNvZGU6IG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElJcHRVc2VyRnVsbERhdGFScSB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBzdHJpbmc7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBzdGF0ZTogICAgICAgICAgICBudW1iZXIgfCBudWxsO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIGdlbmRlcjogICAgICAgICAgIG51bWJlcjtcbiAgYmlydGhkYXRlOiAgICAgICAgRGF0ZSB8IG51bGw7XG4gIHNlcnZpY2VfaG91cjogICAgIG51bWJlcjtcbiAgcGFzc3dvcmQ6ICAgICAgICAgc3RyaW5nO1xuICBzdGF0dXM6ICAgICAgICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJTdGF0dXNScSB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHZW5kZXJUeXBlUnEge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWVfc3BhbmlzaDogICAgIHN0cmluZztcbiAgbmFtZV9lbmdsaXNoOiAgICAgc3RyaW5nO1xuICBhYmJyZXZpYXRpb246ICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblVzZXJCeUVtYWlsRG9jUnEge1xuICBpZF9jYXJkOiAgICAgICAgICAgbnVtYmVyO1xuICBlbWFpbDogICAgICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyQ29tbWVyY2lhbFJxIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBzdHJpbmc7XG4gIHJvbGU6ICAgICAgICAgICAgIHN0cmluZztcbiAgc2VydmljZV9ob3VyOiAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBzdHJpbmc7XG4gIGNpdHk6ICAgICAgICAgICAgIHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiAgICAgc3RyaW5nO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgIERhdGU7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSVN0dWRlbnRPclVzZXJFa3RCeUNvbmNlcHRScSB7XG4gIHRva2VuOiAgICAgICBzdHJpbmc7XG4gIHBhcmFtOiAgICAgICBzdHJpbmc7XG4gIGNvZGVDb25jZXB0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zVXNlciB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHBhcmFtOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXVzZXJzUnEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhc3RfbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IG51bWJlcjtcbiAgaWRfY2FyZDogbnVtYmVyO1xuICBjaXR5OiBudW1iZXI7XG4gIHBhc3N3b3JkOnN0cmluZztcbiAgcm9sZTogbnVtYmVyO1xuICBnZW5kZXI6IG51bWJlcjtcbiAgdG9rZW46IHN0cmluZztcbiAgaXNfY29tcGFueTogbnVtYmVyO1xuICBuYW1lX2NvbXBhbnk/OiBzdHJpbmc7XG4gIGNhdGVnb3J5PzpudW1iZXI7XG4gIGFkZHJlc3NfY29tcGFueT86c3RyaW5nO1xuICBwaG9uZV9jb21wYW55PzpudW1iZXI7XG4gIG5pdD86bnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRGVsZXRlVGVhY2hlclJxIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHRlYWNoZXJfY29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVcGRhdGVEYXRhVGVhY2hlclJxIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHRlYWNoZXJfY29kZTogbnVtYmVyO1xuICBuYW1lOiAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgIHN0cmluZztcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIGNpdHk6ICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6IHN0cmluZztcbiAgcGFzc3dvcmQ6ICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkRhdGFGcm9tU3VwcGxpZXJzU3R1ZGVudFJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgcGFyYW06IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2VVc2Vyc0Zyb21EZXBhcnRtZW50c1JxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgZGVwYXJ0bWVudHM6IG51bWJlcltdO1xuICByb2xsX25vdF9hdXRob3JpemU6IG51bWJlcltdO1xuICBjYW1wdXNfY29kZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybURhdGFScSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbiAgbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgaWRfY2FyZF90eXBlOiBzdHJpbmc7XG4gIGlkX2NhcmQ6IHN0cmluZztcbiAgcGhvbmVfaW5kaWNhdGl2ZTogc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBjaXR5OiBzdHJpbmc7XG4gIHJvbGU6IHN0cmluZztcbiAgc2VydmljZV9ob3VyOiBzdHJpbmc7XG4gIGNoYW5nZVBhc3N3b3JkOiBib29sZWFuO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICByZV9wYXNzd29yZDogc3RyaW5nO1xuICBwYXJlbnRfbmFtZT86IHN0cmluZztcbiAgcGFyZW50X2xhc3RfbmFtZT86IHN0cmluZztcbiAgcGFyZW50X2lkX2NhcmRfdHlwZT86IHN0cmluZztcbiAgcGFyZW50X2lkX2NhcmQ/OiBzdHJpbmc7XG4gIHBhcmVudF9waG9uZV9pbmRpY2F0aXZlPzogc3RyaW5nO1xuICBwYXJlbnRfcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBwYXJlbnRfb2NjdXBhdGlvbj86IHN0cmluZztcbiAgcGFyZW50X29mZmljZV9hZHJyZXNzPzogc3RyaW5nO1xuICBwYXJlbnRfZW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlYXJjaEZvclN0dWRlbnRUb0VkaXRScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICBpbnB1dFNlYXJjaDogc3RyaW5nO1xuICAgIHBlcl9wYWdlOiAgICBudW1iZXI7XG4gICAgcGFnZTogICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hGb3JTdHVkZW50VG9FZGl0UnMge1xuICAgIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICAgIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gICAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nO1xuICAgIHJvbGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gICAgcGhvbmVfaW5kaWNhdGl2ZTogbnVtYmVyO1xuICAgIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gICAgYmlydGhkYXRlOiAgICAgICAgRGF0ZTtcbiAgICBjaXR5OiAgICAgICAgICAgICBJQ2l0eUNvdW50cnlTdGF0ZVJzO1xuICAgIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gICAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICAgIHBhc3N3b3JkX2NoYW5nZTogIG51bWJlcjtcbiAgICBzdGF0dXNfYXNpbmc6ICAgICBudW1iZXI7XG4gICAgdXBkYXRlZF9hdDogICAgICAgRGF0ZTtcbiAgICBjb2RzOiAgICAgICAgICAgICBJQ29kUnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNpdHlDb3VudHJ5U3RhdGVScyB7XG4gICAgY29kZTogICAgbnVtYmVyO1xuICAgIGNhcGl0YWw6IG51bWJlcjtcbiAgICBzdGF0ZTogICBudW1iZXI7XG4gICAgY291bnRyeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2RScyB7XG4gICAgY29kZTogICAgICAgbnVtYmVyO1xuICAgIHN0dWRlbnQ6ICAgIG51bWJlcjtcbiAgICBwYXJlbnQ6ICAgICBJRGF0YVBhcmVudEluZlJzO1xuICAgIGNvZF9zdGF0dXM6IG51bWJlcjtcbiAgICBjcmVhdGVkX2F0OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50SWREdXBsaWNhdGVScyB7XG4gIGNvZGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgICAgICBzdHJpbmc7XG4gIG5pY2tfbmFtZTogICAgICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nIHwgbnVsbDtcbiAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nIHwgbnVsbDtcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBzZXJ2aWNlX2hvdXI6ICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIHN0cmluZztcbiAgY2l0eTogICAgICAgICAgICAgSUNpdHlDb3VudHJ5U3RhdGVScztcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdDogICAgICAgc3RyaW5nO1xuICBjb2RzOiAgICAgICAgICAgICBJQ29kU3R1ZGVudER1cGxpY2F0UnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29kU3R1ZGVudER1cGxpY2F0UnMge1xuICBjb2RlOiBudW1iZXI7XG4gIHN0dWRlbnQ6IG51bWJlcjtcbiAgcGFyZW50OiBJRGF0YVBhcmVudEluZlJzIHwgbnVsbDtcbiAgY29kX3N0YXR1czogbnVtYmVyO1xuICBjb2RfY291cnNlOiBudW1iZXI7XG4gIGNvZF9lbmdfbGV2OiBudW1iZXI7XG4gIGNvZF90ZXJtczogc3RyaW5nIHwgbnVsbDtcbiAgY29kX3BhaWQ6IG51bWJlcjtcbiAgY3JlYXRlZF9hdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hVc2Vyc0ZvclRlYW1Bc3NpZ25tZW50UnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgcGFyYW06ICAgICAgICAgICAgICBzdHJpbmc7XG4gIGRlcGFydG1lbnRzOiAgICAgICAgbnVtYmVyW107XG4gIHJvbGVzOiAgICAgICAgICAgICAgbnVtYmVyW107XG4gIHJvbGxfbm90X2F1dGhvcml6ZTogbnVtYmVyW107XG4gIHBhZ2U6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwZXJfcGFnZTogICAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoVXNlcnNGb3JUZWFtQXNzaWdubWVudFJzIHtcbiAgZGF0YTogICAgICAgSURhdHVtUnNbXTtcbiAgcGFnaW5hdGlvbjogSVBhZ2luYXRpb25TZWFyY2hScztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0dW1ScyB7XG4gIGNvZGU6ICAgICAgICAgbnVtYmVyO1xuICByb2xlOiAgICAgICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICBzdHJpbmc7XG4gIG5hbWU6ICAgICAgICAgc3RyaW5nO1xuICBsYXN0X25hbWU6ICAgIHN0cmluZztcbiAgZW1haWw6ICAgICAgICBzdHJpbmc7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICB1c2VyX3N0YXR1czogIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvblNlYXJjaFJzIHtcbiAgY3VycmVudF9wYWdlOiAgbnVtYmVyO1xuICBsYXN0X3BhZ2U6ICAgICBudW1iZXI7XG4gIHBlcl9wYWdlOiAgICAgIG51bWJlcjtcbiAgdG90YWw6ICAgICAgICAgbnVtYmVyO1xuICBuZXh0X3BhZ2VfdXJsOiBudWxsO1xuICBwcmV2X3BhZ2VfdXJsOiBudWxsO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICB1c2VyX3JvbGU6ICAgbnVtYmVyO1xuICAgIGNhbXB1c19jb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScXMge1xuICAgIGNvZGU6ICAgICAgICAgICAgICBudW1iZXI7XG4gICAgaWRfY2FyZDogICAgICAgICAgIHN0cmluZztcbiAgICBuYW1lOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogICAgICAgICBzdHJpbmc7XG4gICAgbmlja19uYW1lOiAgICAgICAgIHN0cmluZztcbiAgICBlbWFpbDogICAgICAgICAgICAgc3RyaW5nO1xuICAgIHBob25lX251bWJlcjogICAgICBzdHJpbmc7XG4gICAgZ2VuZGVyOiAgICAgICAgICAgIG51bWJlcjtcbiAgICBjaXR5OiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGJpcnRoZGF0ZTogICAgICAgICBEYXRlO1xuICAgIHJvbGU6ICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgc2VydmljZV9ob3VyOiAgICAgIG51bWJlcjtcbiAgICBlbWFpbF9pcHQ6ICAgICAgICAgc3RyaW5nO1xuICAgIHVwZGF0ZWRfYXQ6ICAgICAgICBEYXRlO1xuICAgIGlkX2NhcmRfdHlwZTogICAgICBzdHJpbmc7XG4gICAgY2FtcHVzX2VudGVycHJpc2U6IG51bWJlcjtcbiAgICBjYW1wdXNfbmFtZTogICAgICAgc3RyaW5nO1xuICAgIGNhbXB1c19jaXR5X25hbWU6ICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdldEFsbFVzZXJCeVJvbGxWYWxpZGF0ZWRBbmRDYW1wdXNScSB7XG4gIHRva2VuOiAgc3RyaW5nO1xuICBjYW1wdXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0QnlSb2xlc0FuZENhbXB1c2VzUnEge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgdXNlcl9yb2xlOiAgICBudW1iZXJbXTtcbiAgY2FtcHVzX2NvZGU6ICBudW1iZXJbXTtcbiAgcGFyYW1ldGVyOiAgICBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElnZXROdW1iZXJPZlVzZXJzQnlSb2xlQW5kTG9jYXRpb25ScSB7XG4gICAgdG9rZW46ICAgIHN0cmluZztcbiAgICByb2xlczogICAgbnVtYmVyW107XG4gICAgY2FtcHVzZXM6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElnZXROdW1iZXJPZlVzZXJzQnlSb2xlQW5kTG9jYXRpb25ScyB7XG4gICAgY2FtcHVzX2NvZGU6ICAgIG51bWJlcjtcbiAgICBjYW1wdXNfbmFtZTogICAgc3RyaW5nO1xuICAgIHJvbGVfY29kZTogICAgICBudW1iZXI7XG4gICAgcm9sZV9uYW1lOiAgICAgIHN0cmluZztcbiAgICB0b3RhbF91c2VyOiAgICAgbnVtYmVyO1xuICAgIHVzZXJfYWN0aXZlOiAgICBzdHJpbmc7XG4gICAgdXNlcl9zdXNwZW5kZWQ6IHN0cmluZztcbiAgICB1c2VyX3VuaHVycmllZDogc3RyaW5nO1xuICAgIHVzZXJfcmV0aXJlZDogICBzdHJpbmc7XG59Il19
@@ -264,6 +264,11 @@ export class UserService extends IPTGeneralService {
264
264
  this.generateRequestParams(params);
265
265
  return this.http.post(serviceUrl, this.httpOptions);
266
266
  }
267
+ getNumberOfUsersByRoleAndLocation(params) {
268
+ let serviceUrl = this.SERVICE_URL + 'get/number/of/users/by/role/and/location';
269
+ this.generateRequestParams(params);
270
+ return this.http.post(serviceUrl, this.httpOptions);
271
+ }
267
272
  }
268
273
  UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
269
274
  UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: UserService, providedIn: 'root' });
@@ -273,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
273
278
  providedIn: 'root',
274
279
  }]
275
280
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvdXNlci1zZXJ2aWNlL3VzZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPM0QsTUFBTSxPQUFPLFdBQVksU0FBUSxpQkFBaUI7SUFHaEQsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBSWpDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFrQjtRQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsYUFBK0I7UUFDM0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBZ0I7UUFD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Y0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZWdpc3RlckluZGV4UnEsIFJlZ2lzdGVyRGFzaGJvYXJkUnEsIFVzZXJUb2tlblJxLCBGb3Jnb3RQYXNzd29yZFJxLCBMb2dpblJxLCBSZWdpc3RlclJxLCBnZXRTdHVkZW50UnEsIFRlYWNoZXJCeUNvZGVScSwgdXNlclRva2VuUnEsIElVcGR0YWVVc2VyVmFsaWRhdGVkUnEsIElPYnRhaW5Vc2VyQnlFbWFpbERvY1JxLCBJU3R1ZGVudE9yVXNlckVrdEJ5Q29uY2VwdFJxLCBVc2VyVG9rZW5ScTIsIFBhcmFtc1VzZXIsIEl1c2Vyc1JxLCBJRGVsZXRlVGVhY2hlclJxLElVcGRhdGVEYXRhVGVhY2hlclJxLCBJT2J0YWluRGF0YUZyb21TdXBwbGllcnNTdHVkZW50UnEsIElHZVVzZXJzRnJvbURlcGFydG1lbnRzUnEsIElTZWFyY2hGb3JTdHVkZW50VG9FZGl0UnEsIElTZWFyY2hVc2Vyc0ZvclRlYW1Bc3NpZ25tZW50UnEsIElHZXRCeVJvbGVVc2VyQW5kQ2FtcHVzUnEsIElHZXRBbGxVc2VyQnlSb2xsVmFsaWRhdGVkQW5kQ2FtcHVzUnEsIElHZXRCeVJvbGVzQW5kQ2FtcHVzZXNScSB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyL3VzZXItcnEubW9kZWwnO1xuaW1wb3J0IHsgZ2V0U3RyYXRlZ3lCeVVzZXJDb21tZXJjaWFsUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWFya2V0aW5nL21hcmtldGluZy5tb2RlbCc7XG5pbXBvcnQgeyBJUFRHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UtZW52aXJvbWVudHMnO1xuaW1wb3J0IHsgR2V0U3R1ZGVudEJ5Q29kZVJxLCB0b2tlbkFkbWluaXN0cmF0aXZlUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGF5bWVudC9wYXltZW50LXJxLm1vZGVsJztcbmltcG9ydCB7IElSZXBvcnRFeGNlbFJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIElQVEdlbmVyYWxTZXJ2aWNle1xuICBwcml2YXRlIFNFUlZJQ0VfVVJMID0gJ3VzZXJzL2FwaS8nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5TRVJWSUNFX1VSTCA9IHRoaXMuYmFzZVVybCgpICsgdGhpcy5TRVJWSUNFX1VSTDtcbiAgfVxuXG4gIGxvZ2luKHVzZXJMb2dpbjogTG9naW5ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvbG9naW4nO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXJMb2dpbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgcmVzZXRQYXNzd29yZChyZXNldFBhc3N3b3JkOiBGb3Jnb3RQYXNzd29yZFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncmVzZXQvcGFzc3dvcmQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHJlc2V0UGFzc3dvcmQpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVyKHVzZXI6IFJlZ2lzdGVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS93ZWInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVySW5kZXgocmVnaXN0ZXI6IFJlZ2lzdGVySW5kZXhScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY3JlYXRlL21hcmtldGluZyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocmVnaXN0ZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVyRGFzaGJvYXJkKHVzZXI6IFJlZ2lzdGVyRGFzaGJvYXJkUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS9kYXNoYm9hcmQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVRlYWNoZXJzKHRva2VuOiBVc2VyVG9rZW5ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3RlYWNoZXJzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0QWxsQWR2aXNvcih1c2VyVG9rZW46IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2FsbC91c2VyL2NvbW1lcmNpYWwnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXJUb2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0QWxsQWR2aXNvckNhbXB1cyh1c2VyVG9rZW46IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2FsbC91c2VyL2NvbW1lcmNpYWwvY2FtcHVzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEJ5Um9sZVVzZXIoY29kZVJvbGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vYnkvcm9sZS91c2VyLycgKyBjb2RlUm9sZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFVzZXJTdGF0aXN0aWNzKHVzZXJUb2tlbjogZ2V0U3RyYXRlZ3lCeVVzZXJDb21tZXJjaWFsUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvbnRhY3Qvc3RyYXRlZ3kvc3RhdGlzdGljcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRSb3V0ZXNGb3JSb2xlKHRva2VuOiBVc2VyVG9rZW5ScTIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3JvdXRlcy9yb2xlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3R1ZGVudHModG9rZW46IFVzZXJUb2tlblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vc3R1ZGVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRTdHVkZW50KHRva2VuOiBnZXRTdHVkZW50UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9zdHVkZW50JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0QWxsQWRtaW5pc3RyYXRpdmUodXNlclRva2VuOiB0b2tlbkFkbWluaXN0cmF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYWxsL3VzZXIvYWRtaW5pc3RyYXRpdmUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXJUb2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIGdldEFsbE1hcmtldGluZyh1c2VyVG9rZW46IHRva2VuQWRtaW5pc3RyYXRpdmVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSAgdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvdXNlci9tYXJrZXRpbmcnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXJUb2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3R1ZGVuYnlDb2RlKHBhcmFuczogR2V0U3R1ZGVudEJ5Q29kZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi9zdHVkZW50L2J5L2NvZGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFucyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VGVhY2hlcnNieUNvZGUocGFyYW5zOiBUZWFjaGVyQnlDb2RlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi90ZWFjaGVycy9ieS9jb2RlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbFVzZXJCeVJvbGUodXNlclRva2VuOiB1c2VyVG9rZW5ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSAgdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvdXNlci9ieS9yb2xlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFVzZXJSb2xlQnlDb2RlKGNvZGVSb2xlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvb2J0YWluL3VzZXIvcm9sZS9ieS9jb2RlLycgKyBjb2RlUm9sZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFVzZXJBbGxCdWRnZXQodXNlclRva2VuOiB0b2tlbkFkbWluaXN0cmF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYWxsL3VzZXIvYnVkZ2V0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldE9idGFpblBvc3NpYmxlU3R1ZGVudHModXNlclRva2VuOiB0b2tlbkFkbWluaXN0cmF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9wb3NzaWJsZVN0dWRlbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbFVzZXJCeVJvbGVWYWxpZGF0ZSh0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYnkvcm9sL2FsbC91c2VyL3ZhbGlkYXRlZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVVzZXJWYWxpZGF0ZWQocGFyYW1zOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3VwZGF0ZS91c2VyL3ZhbGlkYXRlZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBkZWxldGVkVXNlclZhbGlkYXRlZChwYXJhbXM6IElVcGR0YWVVc2VyVmFsaWRhdGVkUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2RlbGV0ZWQvdXNlci92YWxpZGF0ZWQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluU3R1ZGVudEJ5RG9jdW1lbnRFbWFpbChwYXJhbXM6IElPYnRhaW5Vc2VyQnlFbWFpbERvY1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vc3R1ZGVudC9ieS9kb2N1bWVudC9lbWFpbCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5EYXRhQnlVc2VyTG9nZWQocGFyYW1zOiBJUmVwb3J0RXhjZWxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3VzZXIvY29tbWVyY2lhbC9sb2dlZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgb2J0YWluU3R1ZGVudE9yVXNlckVrdEJ5Q29uY2VwdChwYXJhbXM6IElTdHVkZW50T3JVc2VyRWt0QnlDb25jZXB0UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9zdHVkZW50cy9ieS90eXBlL2NvbmNlcHQvaW4vcGF5bWVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUmVmZXJyYWxVc2Vycyh0b2tlbjogZ2V0U3R1ZGVudFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vcmVmZXJyYWwvdXNlcnMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgb2J0YWluVXNlcnNUaHJlZURwdG9Db21tZXJjaWFsQW5kQWRtaW5pc3RyYXRpdmVBbmRCdWRnZXQodG9rZW46IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vdXNlci9jb21tZXJjaWFsL2FkbWluaXN0cmF0aXZlL2J1ZGdldHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5UZWFjaGVyc0F2YWlsYWJsZVRvVGVhY2goKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi90ZWFjaGVycy9hdmFpbGFibGUvdG8vdGVhY2gnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgc2VhcmNoVXNlcihwYXJhbTogUGFyYW1zVXNlcik6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZWFyY2gvdXNlcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFVzZXJCeUNvZGUoY29kZVVzZXI6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC91c2VyL2J5L2NvZGUvJyArIGNvZGVVc2VyO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGNyZWF0ZVByb3ZlZWRvcihwYXJhbTpJdXNlcnNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY3JlYXRlL3VzZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgdXBkYXRlVXNlcihwYXJhbTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvZGF0YS91c2VyL2NvZC9zZWxmL21hbmFnZWQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBEZWxldGVUZWFjaGVyQnlDb2RlKHBhcmFtczogSURlbGV0ZVRlYWNoZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZGVsZXRlL3RlYWNoZXIvYnkvY29kZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBVcGRhdGVUZWFjaGVyRGF0YUJ5Q29kZShwYXJhbXM6IElVcGRhdGVEYXRhVGVhY2hlclJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC91cGRhdGUvdGVhY2hlci9kYXRhL2J5L2NvZGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0QWxsVXNlcnNDb21taXNpb25zKHBhcmFtczogZ2V0U3RyYXRlZ3lCeVVzZXJDb21tZXJjaWFsUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvdXNlci9jb21taXNzaW9ucyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5EYXRhRnJvbVN1cHBsaWVyc1N0dWRlbnQocGFyYW1zOiBJT2J0YWluRGF0YUZyb21TdXBwbGllcnNTdHVkZW50UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdvYnRhaW4vZGF0YS9mcm9tL3N1cHBsaWVycy9vci9zdHVkZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRVc2Vyc0Zyb21EZXBhcnRtZW50cyhwYXJhbXM6IElHZVVzZXJzRnJvbURlcGFydG1lbnRzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvdXNlcnMvZnJvbS9kZXBhcnRtZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRVc2Vyc0FsbEZyb21EZXBhcnRtZW50c0J5UGFyYW1zKHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3VzZXJzL2FsbC9mcm9tL2RlcGFydG1lbnRzL2J5L3BhcmFtZXRlcnMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlVXNlckFuZFBhcmVudEJ5Q29kZShwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS91c2VyL2J5L2NvZGUvYW5kL3BhcmVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVVc2VyQnlDb2RlKHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL3VzZXIvYnkvY29kZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hGb3JVc2VyQnlDb2RlKGNvZGVVc2VyOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdzZWFyY2gvZm9yL3VzZXIvYnkvY29kZS8nICsgY29kZVVzZXI7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBzZWFyY2hGb3JTdHVkZW50VG9FZGl0KHBhcmFtczogSVNlYXJjaEZvclN0dWRlbnRUb0VkaXRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC9mb3Ivc3R1ZGVudC90by9lZGl0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHNlYXJjaFN0dWRlbnRCeUNvZGUoY29kZVVzZXI6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC9zdHVkZW50L2J5L2NvZGUvJyArIGNvZGVVc2VyO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgc2VhcmNoU3R1ZGVudEJ5SWRjYXJkKGlkX2NhcmQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC9zdHVkZW50L2J5L2lkY2FyZC8nICsgaWRfY2FyZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHNlYXJjaFVzZXJzRm9yVGVhbUFzc2lnbm1lbnQocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3NlYXJjaC91c2Vycy9mb3IvdGVhbS9hc3NpZ25tZW50JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbFN5c3RlbVVzZXJzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9hbGwvc3lzdGVtL3VzZXJzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIG9idGFpblRlYWNoZXJzQXZhaWxhYmxlQnlDYW1wdXMoY29kZV9jYW1wdXM6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi90ZWFjaGVycy9hdmFpbGFibGUvYnkvY2FtcHVzLycgKyBjb2RlX2NhbXB1cztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEJ5Um9sZVVzZXJBbmRDYW1wdXMocGFyYW1zOiBJR2V0QnlSb2xlVXNlckFuZENhbXB1c1JxICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2J5L3JvbGUvdXNlci9hbmQvY2FtcHVzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblRlYWNoZXJzQXZhaWxhYmxlVG9UZWFjaEJ5Q291cnNlQ2FtcHVzKGNvZGVfY2FtcHVzOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdvYnRhaW4vdGVhY2hlcnMvYXZhaWxhYmxlL2J5L2NvdXJzZS9jYW1wdXMvJyArIGNvZGVfY2FtcHVzO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0QWxsVXNlckJ5Um9sbFZhbGlkYXRlZEFuZENhbXB1cyhwYXJhbXM6IElHZXRBbGxVc2VyQnlSb2xsVmFsaWRhdGVkQW5kQ2FtcHVzUnEgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYnkvcm9sL2FsbC91c2VyL3ZhbGlkYXRlZC9hbmQvY2FtcHVzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEJ5Um9sZXNBbmRDYW1wdXNlcyhwYXJhbXM6IElHZXRCeVJvbGVzQW5kQ2FtcHVzZXNScSApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9ieS9yb2xlcy9hbmQvY2FtcHVzZXMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG59XG4iXX0=
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvdXNlci1zZXJ2aWNlL3VzZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPM0QsTUFBTSxPQUFPLFdBQVksU0FBUSxpQkFBaUI7SUFHaEQsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBSWpDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFrQjtRQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsYUFBK0I7UUFDM0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBZ0I7UUFDdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBeUI7UUFDckMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUF5QjtRQUN6QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHVCQUF1QixDQUFDO1FBQzVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQWtCO1FBQ3JDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsc0JBQXNCLENBQUM7UUFDM0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQXdDO1FBQ3BELElBQUksVUFBVSxHQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsaUNBQWlDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsU0FBd0M7UUFDMUQsSUFBSSxVQUFVLEdBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztRQUM5RSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRywwQkFBMEIsR0FBRyxRQUFRLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBd0M7UUFDeEQsSUFBSSxVQUFVLEdBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxpQ0FBaUMsQ0FBQztRQUN2RSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNsQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHNCQUFzQixDQUFDO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDO1FBQzFELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLFNBQWdDO1FBQ25ELElBQUksVUFBVSxHQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcscUNBQXFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQWdDO1FBQzlDLElBQUksVUFBVSxHQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQTBCO1FBQ3hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBdUI7UUFDdkMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyw4QkFBOEIsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFzQjtRQUNyQyxJQUFJLFVBQVUsR0FBSSxJQUFJLENBQUMsV0FBVyxHQUFHLDhCQUE4QixDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsK0JBQStCLEdBQUcsUUFBUSxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWdDO1FBQy9DLElBQUksVUFBVSxHQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsNkJBQTZCLENBQUM7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQseUJBQXlCLENBQUMsU0FBZ0M7UUFDeEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyw4QkFBOEIsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3BDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsdUNBQXVDLENBQUM7UUFDNUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYztRQUNoQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUE0QixDQUFDO1FBQ2pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQThCO1FBQ2pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsNkJBQTZCLENBQUM7UUFDbEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsTUFBK0I7UUFDMUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx1Q0FBdUMsQ0FBQztRQUM1RSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxNQUFzQjtRQUMxQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLG1DQUFtQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELCtCQUErQixDQUFDLE1BQW9DO1FBQ2xFLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsa0RBQWtELENBQUM7UUFDdkYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBbUI7UUFDckMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQztRQUNqRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCx3REFBd0QsQ0FBQyxLQUFvQztRQUMzRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLG9EQUFvRCxDQUFDO1FBQ3pGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDhCQUE4QjtRQUM1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHdDQUF3QyxDQUFDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQjtRQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFnQjtRQUM1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxlQUFlLENBQUMsS0FBYztRQUM1QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFTO1FBQ2xCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsbUNBQW1DLENBQUM7UUFDeEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBd0I7UUFDMUMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyw2QkFBNkIsQ0FBQztRQUNsRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxNQUE0QjtRQUNsRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLGtDQUFrQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQXFDO1FBQ3pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsa0NBQWtDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsOEJBQThCLENBQUMsTUFBeUM7UUFDdEUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx3Q0FBd0MsQ0FBQztRQUM3RSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxNQUFpQztRQUN2RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUE0QixDQUFDO1FBQ2pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGtDQUFrQyxDQUFDLE1BQVc7UUFDNUMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyw4Q0FBOEMsQ0FBQztRQUNuRixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFXO1FBQ25DLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7UUFDckUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDO1FBQzFELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQWdCO1FBQ2xDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsMEJBQTBCLEdBQUcsUUFBUSxDQUFDO1FBQzFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQWlDO1FBQ3RELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsR0FBRyxRQUFRLENBQUM7UUFDekUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBZTtRQUNuQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUEyQixHQUFHLE9BQU8sQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxNQUFXO1FBQ3RDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsdUNBQXVDLENBQUM7UUFDNUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxXQUFtQjtRQUNqRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHNDQUFzQyxHQUFHLFdBQVcsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFpQztRQUN0RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLHFDQUFxQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDRDQUE0QyxDQUFDLFdBQW1CO1FBQzlELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsNkNBQTZDLEdBQUcsV0FBVyxDQUFDO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGtDQUFrQyxDQUFDLE1BQTZDO1FBQzlFLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsa0RBQWtELENBQUM7UUFDdkYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBZ0M7UUFDcEQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztRQUN4RSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxpQ0FBaUMsQ0FBQyxNQUE0QztRQUM1RSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDBDQUEwQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7d0dBM1RVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlZ2lzdGVySW5kZXhScSwgUmVnaXN0ZXJEYXNoYm9hcmRScSwgVXNlclRva2VuUnEsIEZvcmdvdFBhc3N3b3JkUnEsIExvZ2luUnEsIFJlZ2lzdGVyUnEsIGdldFN0dWRlbnRScSwgVGVhY2hlckJ5Q29kZVJxLCB1c2VyVG9rZW5ScSwgSVVwZHRhZVVzZXJWYWxpZGF0ZWRScSwgSU9idGFpblVzZXJCeUVtYWlsRG9jUnEsIElTdHVkZW50T3JVc2VyRWt0QnlDb25jZXB0UnEsIFVzZXJUb2tlblJxMiwgUGFyYW1zVXNlciwgSXVzZXJzUnEsIElEZWxldGVUZWFjaGVyUnEsSVVwZGF0ZURhdGFUZWFjaGVyUnEsIElPYnRhaW5EYXRhRnJvbVN1cHBsaWVyc1N0dWRlbnRScSwgSUdlVXNlcnNGcm9tRGVwYXJ0bWVudHNScSwgSVNlYXJjaEZvclN0dWRlbnRUb0VkaXRScSwgSVNlYXJjaFVzZXJzRm9yVGVhbUFzc2lnbm1lbnRScSwgSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScSwgSUdldEFsbFVzZXJCeVJvbGxWYWxpZGF0ZWRBbmRDYW1wdXNScSwgSUdldEJ5Um9sZXNBbmRDYW1wdXNlc1JxLCBJZ2V0TnVtYmVyT2ZVc2Vyc0J5Um9sZUFuZExvY2F0aW9uUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci91c2VyLXJxLm1vZGVsJztcbmltcG9ydCB7IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21hcmtldGluZy9tYXJrZXRpbmcubW9kZWwnO1xuaW1wb3J0IHsgSVBUR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlLWVudmlyb21lbnRzJztcbmltcG9ydCB7IEdldFN0dWRlbnRCeUNvZGVScSwgdG9rZW5BZG1pbmlzdHJhdGl2ZVJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BheW1lbnQvcGF5bWVudC1ycS5tb2RlbCc7XG5pbXBvcnQgeyBJUmVwb3J0RXhjZWxScSB9IGZyb20gJy4uLy4uL21vZGVscy9jb21tZXJjaWFsL2NvbW1lcmNpYWwubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBJUFRHZW5lcmFsU2VydmljZXtcbiAgcHJpdmF0ZSBTRVJWSUNFX1VSTCA9ICd1c2Vycy9hcGkvJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuU0VSVklDRV9VUkwgPSB0aGlzLmJhc2VVcmwoKSArIHRoaXMuU0VSVklDRV9VUkw7XG4gIH1cblxuICBsb2dpbih1c2VyTG9naW46IExvZ2luUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2xvZ2luJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyTG9naW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHJlc2V0UGFzc3dvcmQocmVzZXRQYXNzd29yZDogRm9yZ290UGFzc3dvcmRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Jlc2V0L3Bhc3N3b3JkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhyZXNldFBhc3N3b3JkKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICByZWdpc3Rlcih1c2VyOiBSZWdpc3RlclJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jcmVhdGUvd2ViJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICByZWdpc3RlckluZGV4KHJlZ2lzdGVyOiBSZWdpc3RlckluZGV4UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS9tYXJrZXRpbmcnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHJlZ2lzdGVyKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICByZWdpc3RlckRhc2hib2FyZCh1c2VyOiBSZWdpc3RlckRhc2hib2FyZFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jcmVhdGUvZGFzaGJvYXJkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVUZWFjaGVycyh0b2tlbjogVXNlclRva2VuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi90ZWFjaGVycyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbEFkdmlzb3IodXNlclRva2VuOiBnZXRTdHJhdGVneUJ5VXNlckNvbW1lcmNpYWxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSAgdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvdXNlci9jb21tZXJjaWFsJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbEFkdmlzb3JDYW1wdXModXNlclRva2VuOiBnZXRTdHJhdGVneUJ5VXNlckNvbW1lcmNpYWxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSAgdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvdXNlci9jb21tZXJjaWFsL2NhbXB1cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRCeVJvbGVVc2VyKGNvZGVSb2xlOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvb2J0YWluL2J5L3JvbGUvdXNlci8nICsgY29kZVJvbGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRVc2VyU3RhdGlzdGljcyh1c2VyVG9rZW46IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9jb250YWN0L3N0cmF0ZWd5L3N0YXRpc3RpY3MnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXJUb2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0Um91dGVzRm9yUm9sZSh0b2tlbjogVXNlclRva2VuUnEyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9yb3V0ZXMvcm9sZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFN0dWRlbnRzKHRva2VuOiBVc2VyVG9rZW5ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3N0dWRlbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3R1ZGVudCh0b2tlbjogZ2V0U3R1ZGVudFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vc3R1ZGVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbEFkbWluaXN0cmF0aXZlKHVzZXJUb2tlbjogdG9rZW5BZG1pbmlzdHJhdGl2ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2FsbC91c2VyL2FkbWluaXN0cmF0aXZlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRBbGxNYXJrZXRpbmcodXNlclRva2VuOiB0b2tlbkFkbWluaXN0cmF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYWxsL3VzZXIvbWFya2V0aW5nJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFN0dWRlbmJ5Q29kZShwYXJhbnM6IEdldFN0dWRlbnRCeUNvZGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vc3R1ZGVudC9ieS9jb2RlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFRlYWNoZXJzYnlDb2RlKHBhcmFuczogVGVhY2hlckJ5Q29kZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vdGVhY2hlcnMvYnkvY29kZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW5zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRBbGxVc2VyQnlSb2xlKHVzZXJUb2tlbjogdXNlclRva2VuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYWxsL3VzZXIvYnkvcm9sZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRVc2VyUm9sZUJ5Q29kZShjb2RlUm9sZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi91c2VyL3JvbGUvYnkvY29kZS8nICsgY29kZVJvbGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRVc2VyQWxsQnVkZ2V0KHVzZXJUb2tlbjogdG9rZW5BZG1pbmlzdHJhdGl2ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2FsbC91c2VyL2J1ZGdldCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRPYnRhaW5Qb3NzaWJsZVN0dWRlbnRzKHVzZXJUb2tlbjogdG9rZW5BZG1pbmlzdHJhdGl2ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vcG9zc2libGVTdHVkZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRBbGxVc2VyQnlSb2xlVmFsaWRhdGUodG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2J5L3JvbC9hbGwvdXNlci92YWxpZGF0ZWQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHRva2VuKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVVc2VyVmFsaWRhdGVkKHBhcmFtczogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC91cGRhdGUvdXNlci92YWxpZGF0ZWQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZGVsZXRlZFVzZXJWYWxpZGF0ZWQocGFyYW1zOiBJVXBkdGFlVXNlclZhbGlkYXRlZFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9kZWxldGVkL3VzZXIvdmFsaWRhdGVkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblN0dWRlbnRCeURvY3VtZW50RW1haWwocGFyYW1zOiBJT2J0YWluVXNlckJ5RW1haWxEb2NScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3N0dWRlbnQvYnkvZG9jdW1lbnQvZW1haWwnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluRGF0YUJ5VXNlckxvZ2VkKHBhcmFtczogSVJlcG9ydEV4Y2VsUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi91c2VyL2NvbW1lcmNpYWwvbG9nZWQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIG9idGFpblN0dWRlbnRPclVzZXJFa3RCeUNvbmNlcHQocGFyYW1zOiBJU3R1ZGVudE9yVXNlckVrdEJ5Q29uY2VwdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vc3R1ZGVudHMvYnkvdHlwZS9jb25jZXB0L2luL3BheW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblJlZmVycmFsVXNlcnModG9rZW46IGdldFN0dWRlbnRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3JlZmVycmFsL3VzZXJzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIG9idGFpblVzZXJzVGhyZWVEcHRvQ29tbWVyY2lhbEFuZEFkbWluaXN0cmF0aXZlQW5kQnVkZ2V0KHRva2VuOiBnZXRTdHJhdGVneUJ5VXNlckNvbW1lcmNpYWxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3VzZXIvY29tbWVyY2lhbC9hZG1pbmlzdHJhdGl2ZS9idWRnZXRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluVGVhY2hlcnNBdmFpbGFibGVUb1RlYWNoKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vdGVhY2hlcnMvYXZhaWxhYmxlL3RvL3RlYWNoJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHNlYXJjaFVzZXIocGFyYW06IFBhcmFtc1VzZXIpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvc2VhcmNoL3VzZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRVc2VyQnlDb2RlKGNvZGVVc2VyOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvdXNlci9ieS9jb2RlLycgKyBjb2RlVXNlcjtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuICBjcmVhdGVQcm92ZWVkb3IocGFyYW06SXVzZXJzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS91c2VyJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIHVwZGF0ZVVzZXIocGFyYW06YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAndXBkYXRlL2RhdGEvdXNlci9jb2Qvc2VsZi9tYW5hZ2VkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgRGVsZXRlVGVhY2hlckJ5Q29kZShwYXJhbXM6IElEZWxldGVUZWFjaGVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2RlbGV0ZS90ZWFjaGVyL2J5L2NvZGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgVXBkYXRlVGVhY2hlckRhdGFCeUNvZGUocGFyYW1zOiBJVXBkYXRlRGF0YVRlYWNoZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdXBkYXRlL3RlYWNoZXIvZGF0YS9ieS9jb2RlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbFVzZXJzQ29tbWlzaW9ucyhwYXJhbXM6IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYWxsL3VzZXIvY29tbWlzc2lvbnMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluRGF0YUZyb21TdXBwbGllcnNTdHVkZW50KHBhcmFtczogSU9idGFpbkRhdGFGcm9tU3VwcGxpZXJzU3R1ZGVudFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2RhdGEvZnJvbS9zdXBwbGllcnMvb3Ivc3R1ZGVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VXNlcnNGcm9tRGVwYXJ0bWVudHMocGFyYW1zOiBJR2VVc2Vyc0Zyb21EZXBhcnRtZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3VzZXJzL2Zyb20vZGVwYXJ0bWVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VXNlcnNBbGxGcm9tRGVwYXJ0bWVudHNCeVBhcmFtcyhwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC91c2Vycy9hbGwvZnJvbS9kZXBhcnRtZW50cy9ieS9wYXJhbWV0ZXJzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVVzZXJBbmRQYXJlbnRCeUNvZGUocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICd1cGRhdGUvdXNlci9ieS9jb2RlL2FuZC9wYXJlbnQnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlVXNlckJ5Q29kZShwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS91c2VyL2J5L2NvZGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgc2VhcmNoRm9yVXNlckJ5Q29kZShjb2RlVXNlcjogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnc2VhcmNoL2Zvci91c2VyL2J5L2NvZGUvJyArIGNvZGVVc2VyO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgc2VhcmNoRm9yU3R1ZGVudFRvRWRpdChwYXJhbXM6IElTZWFyY2hGb3JTdHVkZW50VG9FZGl0UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdzZWFyY2gvZm9yL3N0dWRlbnQvdG8vZWRpdCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hTdHVkZW50QnlDb2RlKGNvZGVVc2VyOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdzZWFyY2gvc3R1ZGVudC9ieS9jb2RlLycgKyBjb2RlVXNlcjtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHNlYXJjaFN0dWRlbnRCeUlkY2FyZChpZF9jYXJkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdzZWFyY2gvc3R1ZGVudC9ieS9pZGNhcmQvJyArIGlkX2NhcmQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBzZWFyY2hVc2Vyc0ZvclRlYW1Bc3NpZ25tZW50KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZWFyY2gvdXNlcnMvZm9yL3RlYW0vYXNzaWdubWVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRBbGxTeXN0ZW1Vc2VycygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvYWxsL3N5c3RlbS91c2Vycyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBvYnRhaW5UZWFjaGVyc0F2YWlsYWJsZUJ5Q2FtcHVzKGNvZGVfY2FtcHVzOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdvYnRhaW4vdGVhY2hlcnMvYXZhaWxhYmxlL2J5L2NhbXB1cy8nICsgY29kZV9jYW1wdXM7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRCeVJvbGVVc2VyQW5kQ2FtcHVzKHBhcmFtczogSUdldEJ5Um9sZVVzZXJBbmRDYW1wdXNScSApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9ieS9yb2xlL3VzZXIvYW5kL2NhbXB1cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5UZWFjaGVyc0F2YWlsYWJsZVRvVGVhY2hCeUNvdXJzZUNhbXB1cyhjb2RlX2NhbXB1czogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3RlYWNoZXJzL2F2YWlsYWJsZS9ieS9jb3Vyc2UvY2FtcHVzLycgKyBjb2RlX2NhbXB1cztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldEFsbFVzZXJCeVJvbGxWYWxpZGF0ZWRBbmRDYW1wdXMocGFyYW1zOiBJR2V0QWxsVXNlckJ5Um9sbFZhbGlkYXRlZEFuZENhbXB1c1JxICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2J5L3JvbC9hbGwvdXNlci92YWxpZGF0ZWQvYW5kL2NhbXB1cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRCeVJvbGVzQW5kQ2FtcHVzZXMocGFyYW1zOiBJR2V0QnlSb2xlc0FuZENhbXB1c2VzUnEgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9vYnRhaW4vYnkvcm9sZXMvYW5kL2NhbXB1c2VzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldE51bWJlck9mVXNlcnNCeVJvbGVBbmRMb2NhdGlvbihwYXJhbXM6IElnZXROdW1iZXJPZlVzZXJzQnlSb2xlQW5kTG9jYXRpb25ScSApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvbnVtYmVyL29mL3VzZXJzL2J5L3JvbGUvYW5kL2xvY2F0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxufVxuIl19
@@ -1043,6 +1043,11 @@ class UserService extends IPTGeneralService {
1043
1043
  this.generateRequestParams(params);
1044
1044
  return this.http.post(serviceUrl, this.httpOptions);
1045
1045
  }
1046
+ getNumberOfUsersByRoleAndLocation(params) {
1047
+ let serviceUrl = this.SERVICE_URL + 'get/number/of/users/by/role/and/location';
1048
+ this.generateRequestParams(params);
1049
+ return this.http.post(serviceUrl, this.httpOptions);
1050
+ }
1046
1051
  }
1047
1052
  UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: UserService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1048
1053
  UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: UserService, providedIn: 'root' });
@@ -5422,7 +5427,7 @@ class CodFormStepOneComponent extends CodFormSteps {
5422
5427
  this.codFormStepOne.controls['english_level'].setValue(null);
5423
5428
  this.codFormStepOne.controls['availible_courses'].setValue(null);
5424
5429
  this.codFormStepOne.controls['course_modality'].setValue(null);
5425
- this.codFormStepOne.controls['campus'].setValue(null);
5430
+ this.codFormStepOne.controls['campus'].setValue(this.userCampus);
5426
5431
  }
5427
5432
  // Eventos de los selects
5428
5433
  selectAcademicPlan(academic_plan) {
@@ -5431,8 +5436,9 @@ class CodFormStepOneComponent extends CodFormSteps {
5431
5436
  // this.codFormStepOne.controls['agreement_by_category'].setValue(null);
5432
5437
  // this.codFormStepOne.controls['school_name'].setValue(null);
5433
5438
  // this.codFormStepOne.controls['course_type'].setValue(null);
5439
+ const campus = this.codFormStepOne.controls['campus'].value ? parseInt(this.codFormStepOne.controls['campus'].value) : this.campus;
5434
5440
  this.getCourseType(parseInt(academic_plan));
5435
- //this.getAgreementByPlan(parseInt(academic_plan));
5441
+ this.getAgreementByPlan(parseInt(academic_plan), campus);
5436
5442
  }
5437
5443
  else {
5438
5444
  this.codFormStepOne.controls['academic_plan'].setValue(null);