bpm-core 0.0.84 → 0.0.86

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.
@@ -305,21 +305,21 @@ export class RequestDetailsSectionComponent {
305
305
  });
306
306
  this.formGroup = this.fb.group({
307
307
  input: new FormControl(null, [Validators.required]),
308
- currencyInput: new FormControl(null, Validators.required),
309
- emailInput: new FormControl({ value: null, disabled: true }, Validators.required),
310
- numberInput: new FormControl(null, Validators.required),
311
- customSearchable: new FormControl(null, Validators.required),
312
- checkbox: new FormControl(null, [Validators.requiredTrue, Validators.required]),
313
- textArea: new FormControl(null, [Validators.required, Validators.maxLength(5)]),
314
- datePicker: new FormControl(null, Validators.required),
315
- datePickerRange: new FormControl(null, Validators.required),
316
- radio: new FormControl(null, Validators.required),
317
- toggle: new FormControl(null, Validators.required),
318
- telephone: new FormControl(null, Validators.required),
319
- searchEmployee: new FormControl(null, Validators.required),
320
- // ...newForm,
321
- attachment: new FormControl(null, Validators.required),
322
- attachmentSection: new FormControl([], Validators.required),
308
+ // currencyInput: new FormControl(null, Validators.required),
309
+ // emailInput: new FormControl({value: null, disabled: true}, Validators.required),
310
+ // numberInput: new FormControl(null, Validators.required),
311
+ // customSearchable: new FormControl(null, Validators.required),
312
+ // checkbox: new FormControl(null, [Validators.requiredTrue, Validators.required]),
313
+ // textArea: new FormControl(null, [Validators.required, Validators.maxLength(5)]),
314
+ // datePicker: new FormControl(null, Validators.required),
315
+ // datePickerRange: new FormControl(null, Validators.required),
316
+ // radio: new FormControl(null, Validators.required),
317
+ // toggle: new FormControl(null, Validators.required),
318
+ // telephone: new FormControl(null, Validators.required),
319
+ // searchEmployee: new FormControl(null, Validators.required),
320
+ // // ...newForm,
321
+ // attachment: new FormControl(null, Validators.required),
322
+ // attachmentSection: new FormControl([], Validators.required),
323
323
  });
324
324
  this.lov?.['decision']?.options?.forEach(option => {
325
325
  let isActionValid = this.checkValidity(option.value);
@@ -436,7 +436,7 @@ export class RequestDetailsSectionComponent {
436
436
  this.pageSize = event.pageSize;
437
437
  }
438
438
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i2.FormBuilder }, { token: i1.ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
439
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CheckBoxComponent, selector: "app-checkbox", inputs: ["containTerms", "termsLabel", "linkText", "hrefLink", "link", "termsBody"], outputs: ["downloadCheckBox"] }, { kind: "component", type: ToggleButtonComponent, selector: "app-toggle-button", inputs: ["className", "data", "error", "optionAr", "optionEn", "hasHint", "options", "displayedLabel", "key"], outputs: ["onChange"] }] });
439
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" [isReadOnly]=\"false\" [required]=\"false\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "emitedChangedValue1", "customErrorMessages"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
440
440
  }
441
441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestDetailsSectionComponent, decorators: [{
442
442
  type: Component,
@@ -461,7 +461,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
461
461
  AttachmentSectionComponent,
462
462
  TableComponent,
463
463
  TranslatePipe
464
- ], template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"] }]
464
+ ], template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" [isReadOnly]=\"false\" [required]=\"false\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n <app-datepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePicker\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"></app-datepicker>\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"] }]
465
465
  }], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i2.FormBuilder }, { type: i1.ActionStateService }], propDecorators: { isReadOnly: [{
466
466
  type: Input
467
467
  }], section: [{
@@ -473,4 +473,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
473
473
  }], className: [{
474
474
  type: Input
475
475
  }] } });
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUV4RixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7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aW1wb3J0IHtDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5wdXQsIE5PX0VSUk9SU19TQ0hFTUEsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybSwgU2VjdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtBY3Rpb25TdGF0ZVNlcnZpY2UsIENvcmVJMThuU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7TmdDbGFzc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGlvbkJ1dHRvbnNDb21wb25lbnQsXHJcbiAgQXR0YWNobWVudFNlY3Rpb25Db21wb25lbnQsXHJcbiAgQ2hlY2tCb3hDb21wb25lbnQsXHJcbiAgQ3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudCxcclxuICBEYXRlUGlja2VyQ29tcG9uZW50LFxyXG4gIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCxcclxuICBJbnB1dENvbXBvbmVudCxcclxuICBJbnB1dEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gIElucHV0RW1haWxDb21wb25lbnQsXHJcbiAgSW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgSW5wdXRUZWxlcGhvbmVDb21wb25lbnQsXHJcbiAgUmFkaW9Db21wb25lbnQsXHJcbiAgU2VhcmNoRW1wbG95ZWVDb21wb25lbnQsXHJcbiAgVGV4dGFyZWFDb21wb25lbnRcclxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtSZWdleFBhdHRlcm5zfSBmcm9tICcuLi8uLi9yZWdleC9yZWdleC1wYXR0ZXJucyc7XHJcbmltcG9ydCB7VG9nZ2xlQnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQge1RhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0RvY3NVcGxvYWRlckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcblxyXG4vLyBpbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgSW5wdXRDb21wb25lbnQsXHJcbiAgICBBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEN1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIFRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgSW5wdXRDdXJyZW5jeUNvbXBvbmVudCxcclxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsXHJcbiAgICBJbnB1dEVtYWlsQ29tcG9uZW50LFxyXG4gICAgSW5wdXROdW1iZXJDb21wb25lbnQsXHJcbiAgICBSYWRpb0NvbXBvbmVudCxcclxuICAgIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIElucHV0VGVsZXBob25lQ29tcG9uZW50LFxyXG4gICAgRG9jc1VwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoRW1wbG95ZWVDb21wb25lbnQsXHJcbiAgICBBdHRhY2htZW50U2VjdGlvbkNvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF1cclxufSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWN0aW9uOiBTZWN0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgbG92OiBhbnk7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nID0gXCJpbmZvLXNlY3Rpb25cIjtcclxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBvcHRpb25zOiBzdHJpbmdbXSA9IFsnT3B0aW9uIDEnLCAnT3B0aW9uIDInLCAnT3B0aW9uIDMnXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9TSVpFID0gMTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX1BBR0VfTlVNQkVSID0gMDtcclxuICBwYWdlTnVtYmVyOiBudW1iZXIgPSB0aGlzLkRFRkFVTFRfUEFHRV9OVU1CRVI7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IHRoaXMuREVGQVVMVF9QQUdFX1NJWkU7XHJcbiAgY29sdW1uc0NvbmZpZzogYW55W10gPSBbXTtcclxuICBjb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgcmVxdWlyZWRTZWFyY2hhYmxlOiBib29sZWFuO1xyXG5cclxuICBpc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2F0ZWdvcnlEYXRhID0gW1xyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiQmVucVwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwMlwiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiQjQwMFwiLFxyXG4gICAgICBcImZpbGVzXCI6IG51bGwsXHJcbiAgICAgIFwidmVuZG9yc1wiOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiA3MSxcclxuICAgICAgICAgIFwidmVuZG9yTmFtZVwiOiBudWxsLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOdW1iZXJcIjogXCIyNlwiLFxyXG4gICAgICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiVmVuZG9yRHRvXCJcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogbnVsbCxcclxuICAgICAgXCJhc3NldFR5cGVcIjogXCJTY2FubmVyXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjRHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJIUFwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwM1wiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiRWxpdGVCb29rXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIkxhcHRvcFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCI1MTJHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJIcFwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwNFwiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiTGFzZXJcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiUHJpbnRlclwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIyR0JcIlxyXG4gICAgICBdLFxyXG4gICAgICBcInN1bVF1YW50aXR5XCI6IDEsXHJcbiAgICAgIFwiX190eXBlbmFtZVwiOiBcIkFsbEFzc2V0c0R0b1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiQXN1c1wiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwNVwiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiQTUwMFwiLFxyXG4gICAgICBcImZpbGVzXCI6IG51bGwsXHJcbiAgICAgIFwidmVuZG9yc1wiOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiA3MSxcclxuICAgICAgICAgIFwidmVuZG9yTmFtZVwiOiBudWxsLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOdW1iZXJcIjogXCIyNlwiLFxyXG4gICAgICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiVmVuZG9yRHRvXCJcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogbnVsbCxcclxuICAgICAgXCJhc3NldFR5cGVcIjogXCJMYXB0b3BcIixcclxuICAgICAgXCJjbGFzc2lmaWNhdGlvbnNcIjogbnVsbCxcclxuICAgICAgXCJjb25zdW1lZENvdW50XCI6IDAsXHJcbiAgICAgIFwiY29uc3VtZWRQZXJjZW50YWdlXCI6IDAsXHJcbiAgICAgIFwic3BlY3NcIjogW1xyXG4gICAgICAgIFwiMVRCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkRlbGxcIixcclxuICAgICAgXCJjb2xvcnNcIjogbnVsbCxcclxuICAgICAgXCJhc3NldENvbXBhbmllc1wiOiBudWxsLFxyXG4gICAgICBcImRlc2NBclwiOiBudWxsLFxyXG4gICAgICBcImRlc2NFblwiOiBudWxsLFxyXG4gICAgICBcImVzdG9yZVZpc2libGVcIjogZmFsc2UsXHJcbiAgICAgIFwiaWRcIjogXCI0MDdcIixcclxuICAgICAgXCJtb2RlbFwiOiBcIkxhdGl0dWRlXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIkxhcHRvcFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIxVEJcIlxyXG4gICAgICBdLFxyXG4gICAgICBcInN1bVF1YW50aXR5XCI6IDQsXHJcbiAgICAgIFwiX190eXBlbmFtZVwiOiBcIkFsbEFzc2V0c0R0b1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiU2Ftc3VuZ1wiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwOFwiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiR2FsYXh5XCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIlRhYmxldFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIyNTZHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH1cclxuICBdXHJcblxyXG4gIHRvdGFsRWxlbWVudHM6IG51bWJlciA9IDY7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHNcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgaWYgKGtleSAhPT0gJ2RlY2lzaW9uJykge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe1trZXldOiBkYXRhW2tleV19KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5pbml0aWFsaXplVGFibGVDb25maWcoKVxyXG4gICAgLyogICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGVja2JveCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUocmVzPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyl7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3VzdG9tU2VhcmNoYWJsZScpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgICAgICAgICAgdGhpcy5yZXF1aXJlZFNlYXJjaGFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSlcclxuICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3VzdG9tU2VhcmNoYWJsZScpLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSA9IGZhbHNlXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVxdWlyZWRTZWFyY2hhYmxlKVxyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1c3RvbVNlYXJjaGFibGUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblxyXG4gICAgICAgIH0pKi9cclxuICB9XHJcblxyXG5cclxuICBpbml0aWFsaXplVGFibGVDb25maWcoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5zKClcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbkNvbmZpZygpXHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUNvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMgPSBbJ2lkJywgJ2Fzc2V0VHlwZScsICdicmFuZCcsICdtb2RlbCcsICdzdW1RdWFudGl0eScsICdzcGVjcycsICdhbGxvY2F0ZSddO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUNvbHVtbkNvbmZpZygpIHtcclxuICAgIHRoaXMuY29sdW1uc0NvbmZpZyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnSWQnLFxyXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnQXNzZXQgVHlwZScsXHJcbiAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdCcmFuZCcsXHJcbiAgICAgICAgdHlwZTogJ3RleHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ01vZGVsJyxcclxuICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnUXVhbnRpdHknLFxyXG4gICAgICAgIHR5cGU6ICdmb3JtSWQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ0NhcGFjaXR5JyxcclxuICAgICAgICB0eXBlOiAnc3BlY3MnLFxyXG4gICAgICAgIGNsaWNrYWJsZVRleHQ6ICdWaWV3J1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdBY3Rpb25zJyxcclxuICAgICAgICB0eXBlOiAnYWN0aW9ucycsXHJcbiAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAge3ZpZXdNb2RlOiAnYWxsb2NhdGUnLCBhY3Rpb25OYW1lOiBcIkFsbG9jYXRlXCIsIGRpc2FibGVkOiB0cnVlfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmlld01vZGU6ICdlZGl0JywgYWN0aW9uTmFtZTogXCJFZGl0XCIsIGFjdGlvbjogXCJlZGl0XCIsIG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0QXNzZXQoYXNzZXQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmlld01vZGU6ICdkZWxldGUnLCBhY3Rpb25OYW1lOiBcIkRlbGV0ZVwiLCBhY3Rpb246IFwiZGVsZXRlXCIsIG9uQ2xpY2s6IChhc3NldDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZWxldGVBc3NldChhc3NldCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge3ZpZXdNb2RlOiAnY2hhcnQnLCBhY3Rpb25OYW1lOiBcIkNoYXJ0XCIsIGFjdGlvbjogXCJjaGFydFwifSxcclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcblxyXG4gIGNyZWF0ZUZvcm0oKSB7XHJcbiAgICBsZXQgbmV3Rm9ybSA9IHtcclxuICAgICAgaW5wdXQxOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICBuZXdGb3JtW29wdGlvbi52YWx1ZV0gPSBbJyddO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgY3VycmVuY3lJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBlbWFpbElucHV0OiBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiBudWxsLCBkaXNhYmxlZDogdHJ1ZX0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBudW1iZXJJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBjdXN0b21TZWFyY2hhYmxlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIGNoZWNrYm94OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRUcnVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICAgIHRleHRBcmVhOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUpXSksXHJcbiAgICAgIGRhdGVQaWNrZXI6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgZGF0ZVBpY2tlclJhbmdlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHJhZGlvOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHRvZ2dsZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0ZWxlcGhvbmU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgc2VhcmNoRW1wbG95ZWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgLy8gLi4ubmV3Rm9ybSxcclxuICAgICAgYXR0YWNobWVudDogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBhdHRhY2htZW50U2VjdGlvbjogbmV3IEZvcm1Db250cm9sKFtdLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gICAgICB0aGlzLmFjdGlvblN0YXRlU2VydmljZS5zZXRBY3Rpb25WYWxpZChvcHRpb24udmFsdWUsIGlzQWN0aW9uVmFsaWQpO1xyXG4gICAgICBjb25zb2xlLmxvZyhpc0FjdGlvblZhbGlkKVxyXG5cclxuICAgIH0pXHJcblxyXG5cclxuICAgIC8vIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAvLyAgIGlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIGN1cnJlbmN5SW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgZW1haWxJbnB1dDogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogbnVsbCxkaXNhYmxlZDogdHJ1ZX0pLFxyXG4gICAgLy8gICBudW1iZXJJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICBjdXN0b21TZWFyY2hhYmxlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIGNoZWNrYm94OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIHRleHRBcmVhOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIGRhdGVQaWNrZXI6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgZGF0ZVBpY2tlclJhbmdlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIHJhZGlvOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIHRvZ2dsZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICB0ZWxlcGhvbmU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgc2VhcmNoRW1wbG95ZWU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgLy8gLi4ubmV3Rm9ybSxcclxuICAgIC8vICAgYXR0YWNobWVudDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICBhdHRhY2htZW50U2VjdGlvbjogbmV3IEZvcm1Db250cm9sKFtdKSxcclxuICAgIC8vIH0pO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuc2V0VmFsdWUodGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscyk7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvbi5ib2R5LmRldGlscyk7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMubG92Py5bJ2FwcHJvdmVyQWN0aW9ucyddPy5vcHRpb25zKVxyXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcblxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8vICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgLy8gICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAvLyAgICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gIC8vICAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcbiAgLy8gICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlXHJcbiAgLy8gICAgICAgIC8hKntcclxuICAvLyAgICAgICAgIGlucHV0MTogdGhpcy5maWVsZHNGb3JtLmdldCgnaW5wdXQxJykudmFsdWVcclxuICAvLyAgICAgICB9KiEvXHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuICAvLyAgIGNyZWF0ZUZvcm0oKSB7XHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gIC8vICAgICBjdXN0b21lck5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBjdXN0b21lclBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgcmVhc29uRm9yUmVxdWVzdDogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgLy8gICAgIGNhbGxUeXBlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2VudGVyT2ZDYWxsczogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgLy8gICAgIGNhbGxEYXRlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgYWdyZWVtZW50OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsVmFsaWRhdG9ycy5yZXF1aXJlZFRydWVdKSxcclxuICAvLyAgIH0pO1xyXG4gIC8vICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgLy8gICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgLy8gICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgLy8gICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAvLyAgICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gIC8vICAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcbiAgLy8gICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlXHJcbiAgLy8gICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5jdXN0b21lclBob25lID0gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5jdXN0b21lclBob25lPy5lMTY0TnVtYmVyXHJcbiAgLy8gICAgICAgLy8gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5hZ3JlZW1lbnQgPSAodGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5hZ3JlZW1lbnQpLnRvU3RyaW5nKClcclxuXHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9KVxyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucylcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC5zZXRWYWx1ZSh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzKTtcclxuICAvLyAgIGNvbnNvbGUubG9nKCdjdXN0b21DYWxsU3VibWl0JywgdGhpcy5mb3JtR3JvdXAudmFsdWUpXHJcbiAgLy8gfVxyXG5cclxuICBlZGl0QXNzZXQoYXNzZXQpIHtcclxuICAgIGNvbnNvbGUubG9nKGFzc2V0KVxyXG4gIH1cclxuXHJcbiAgc3RhcnRzV2l0aERNT0VPckNSKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiAodmFsdWUuc3RhcnRzV2l0aCgnRE1PRS0nKSB8fCB2YWx1ZS5zdGFydHNXaXRoKCdDUi0nKSkpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDsgLy8gVmFsaWRcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4ge3N0YXJ0c1dpdGhJbnZhbGlkOiB0cnVlfTsgLy8gSW52YWxpZFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUFzc2V0KGFzc2V0KSB7XHJcbiAgICBjb25zb2xlLmxvZyhhc3NldClcclxuICB9XHJcblxyXG4gIGZvcm1WYWx1ZShmb3JtKSB7XHJcbiAgICBjb25zb2xlLmxvZyhmb3JtLnZhbHVlKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tWYWxpZGl0eShhY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoIChhY3Rpb24pIHtcclxuICAgICAgY2FzZSAnU1VCTUlUJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgICAgIGNhc2UgJ0FQUFJPVkUnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC52YWxpZDtcclxuICAgICAgY2FzZSAnU0VOREJBQ0snOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC52YWxpZDtcclxuICAgICAgY2FzZSAnU0FWRV9DSEFOR0VTJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tQ2FsbFN1Ym1pdChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCBhY3Rpb24pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmFjdGlvblN0YXRlU2VydmljZS5yZXNldEFjdGlvbiQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5wYWdlTnVtYmVyID0gZXZlbnQucGFnZUluZGV4XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnQucGFnZVNpemVcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGZvcm0gW25nQ2xhc3NdPVwieydmb3JtLXNlY3Rpb24tZGl2aWRlIGZvcm0tc2VjdGlvbic6IXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHksJ2luZm8tc2VjdGlvbic6c2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seX1cIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxyXG4gPGFwcC1jaGVja2JveFxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94XCJcclxuICAgICAgdGVybXNMYWJlbD1cIlRlcm1zIGFuZCBjb25kaXRpb25zXCJcclxuICAgICAgbGFiZWw9XCJjaGVjay1ib3hcIlxyXG4gICAgICBbY29udGFpblRlcm1zXT1cInRydWVcIj48L2FwcC1jaGVja2JveD5cclxuICAgIDwhLS1cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgIFthcnJheUxpc3RdPVwiZm9ybUdyb3VwLmdldCgnc2VhcmNoRW1wbG95ZWUnKS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1pbnB1dCBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCIgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiIFtsb2FkaW5nXT1cInRydWVcIiB0eXBlPVwiZW5Pbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXRcIiBsYWJlbD1cIklucHV0XCI+PC9hcHAtaW5wdXQ+XHJcbiAgICA8YXBwLWlucHV0LWN1cnJlbmN5IGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lJbnB1dFwiIGxhYmVsPVwiY3VycmVuY3lcIj48L2FwcC1pbnB1dC1jdXJyZW5jeT5cclxuICAgIDxhcHAtaW5wdXQtZW1haWwgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbElucHV0XCIgbGFiZWw9XCJlbWFpbFwiPjwvYXBwLWlucHV0LWVtYWlsPlxyXG4gICAgPGFwcC1pbnB1dC1udW1iZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJudW1iZXJJbnB1dFwiIGxhYmVsPVwibnVtYmVyXCI+PC9hcHAtaW5wdXQtbnVtYmVyPlxyXG4gICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBtYi0wIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tU2VhcmNoYWJsZVwiXHJcbiAgICAgIGxhYmVsPVwiQ3VzdG9tLXNlYXJjaGFibGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuICAgIDxhcHAtY2hlY2tib3hcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveFwiXHJcbiAgICAgIHRlcm1zTGFiZWw9XCJUZXJtcyBhbmQgY29uZGl0aW9uc1wiXHJcbiAgICAgIGxhYmVsPVwiY2hlY2stYm94XCJcclxuICAgICAgW2NvbnRhaW5UZXJtc109XCJ0cnVlXCI+PC9hcHAtY2hlY2tib3g+XHJcbiAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dEFyZWFcIiBsYWJlbD1cIlRleHQtYXJlYVwiPjwvYXBwLXRleHRhcmVhPlxyXG4gICAgPGFwcC1kYXRlcGlja2VyXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclwiXHJcbiAgICAgIFttYXRTdWZmaXhdPVwidHJ1ZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXJcIj48L2FwcC1kYXRlcGlja2VyPlxyXG4gICAgPGFwcC1kYXRlLXJhbmdlLXBpY2tlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVQaWNrZXJSYW5nZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXItcmFuZ2VcIlxyXG4gICAgICBbbWF0U3VmZml4XT1cInRydWVcIj48L2FwcC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgIDxhcHAtcmFkaW8gY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBsYWJlbD1cIlJhZGlvXCI+PC9hcHAtcmFkaW8+LS0+XHJcbiAgICA8YXBwLXRvZ2dsZS1idXR0b25cclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0b2dnbGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9uc1wiXHJcbiAgICAgIGxhYmVsPVwiVG9nZ2xlLWJ1dHRvblwiXHJcbiAgICAgIFtkaXNwbGF5ZWRMYWJlbF09XCInZGVzY3JpcHRpb24nXCJcclxuICAgICAgW2tleV09XCIndmFsdWUnXCI+PC9hcHAtdG9nZ2xlLWJ1dHRvbj5cclxuICAgIDwhLS08YXBwLWlucHV0LXRlbGVwaG9uZSBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCIgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiIGZvcm1Db250cm9sTmFtZT1cInRlbGVwaG9uZVwiIGxhYmVsPVwiVGVsZXBob25lXCI+PC9hcHAtaW5wdXQtdGVsZXBob25lPlxyXG5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2NhbGxBcGldPVwidHJ1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICBsYWJlbD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdHRhY2htZW50XCI+PC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgIDxhcHAtYXR0YWNobWVudC1zZWN0aW9uXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbZGVzY3JpcHRpb25SZXF1aXJlZF09XCJmYWxzZVwiXHJcbiAgICAgIGxhYmVsPVwiQXR0YWNobWVudCBzZWN0aW9uXCJcclxuICAgICAgW2NvbW1lbnRzUmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXR0YWNobWVudFNlY3Rpb25cIj48L2FwcC1hdHRhY2htZW50LXNlY3Rpb24+XHJcbi0tPlxyXG5cclxuXHJcbiAgICA8IS0tIDxhcHAtdGFibGVcclxuICAgIFtjb2x1bW5zQ29uZmlnXT1cImNvbHVtbnNDb25maWdcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbaXNFcnJvcl09XCJpc0Vycm9yXCJcclxuICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcclxuICAgIFtyb3dzXT1cImNhdGVnb3J5RGF0YVwiIFtoYXNQYWdpbmF0b3JdPVwidHJ1ZVwiXHJcbiAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbY3VycmVudFBhZ2VdPVwicGFnZU51bWJlclwiXHJcbiAgICBbdG90YWxFbGVtZW50c109XCJ0b3RhbEVsZW1lbnRzXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJuZXctcHJpbWFyeS10YWJsZSBmdWxsXCI+XHJcbiAgICA8L2FwcC10YWJsZT4gLS0+XHJcblxyXG5cclxuICA8L2Zvcm0+XHJcblxyXG5cclxuPC9kaXY+XHJcbkBpZiAoIXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHkpIHtcclxuICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgPGxpYi1hY3Rpb24tYnV0dG9uc1xyXG4gICAgICBbbG92T3B0aW9uc109XCJsb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9uc1wiXHJcbiAgICAgIFtsb3ZUeXBlXT1cImxvdj8uWydkZWNpc2lvbiddPy50eXBlXCJcclxuICAgICAgW3NlY3Rpb25dPVwic2VjdGlvblwiXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICBbc2VjdGlvbnNdPVwiZm9ybS5zZWN0aW9uc1wiXHJcbiAgICAgIFtzaG93QXBwcm92YWxDeWNsZV09XCJ0cnVlXCJcclxuICAgICAgW2N1c3RvbUNhbGxdPVwiZmFsc2VcIlxyXG4gICAgICBbZmllbGRzRm9ybV09XCJmb3JtR3JvdXBcIlxyXG4gICAgICAoY3VzdG9tQ2FsbEVtaXQpPVwiY3VzdG9tQ2FsbFN1Ym1pdCgkZXZlbnQpXCJcclxuICAgICAgKHJlc2V0Rm9ybUVtaXQpPVwicmVzZXRGb3JtKClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi90ZXN0Q29tcG9uZW50L3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR3JILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNsQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUV4RixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7O0FBRXpELDhEQUE4RDtBQWlDOUQsTUFBTSxPQUFPLDhCQUE4QjtJQStNdEI7SUFBK0I7SUFBeUI7SUE3TWxFLFVBQVUsQ0FBVTtJQUNwQixPQUFPLENBQVU7SUFDakIsSUFBSSxDQUFPO0lBQ1gsR0FBRyxDQUFNO0lBQ2xCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFbEIsU0FBUyxHQUFXLGNBQWMsQ0FBQztJQUM1QyxTQUFTLENBQVk7SUFDckIsT0FBTyxHQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4QyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDdkIsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLFVBQVUsR0FBVyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDOUMsUUFBUSxHQUFXLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUMxQyxhQUFhLEdBQVUsRUFBRSxDQUFDO0lBQzFCLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxrQkFBa0IsQ0FBVTtJQUU1QixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFlBQVksR0FBRztRQUNiO1lBQ0UsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsZUFBZSxFQUFFLEtBQUs7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsTUFBTTtZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxFQUFFO29CQUNSLFlBQVksRUFBRSxJQUFJO29CQUNsQixjQUFjLEVBQUUsSUFBSTtvQkFDcEIsWUFBWSxFQUFFLFdBQVc7aUJBQzFCO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsU0FBUztZQUN0QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLEtBQUs7YUFDTjtZQUNELGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxjQUFjO1NBQzdCO1FBQ0Q7WUFDRSxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxlQUFlLEVBQUUsS0FBSztZQUN0QixJQUFJLEVBQUUsS0FBSztZQUNYLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxFQUFFO29CQUNSLFlBQVksRUFBRSxJQUFJO29CQUNsQixjQUFjLEVBQUUsSUFBSTtvQkFDcEIsWUFBWSxFQUFFLFdBQVc7aUJBQzFCO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsUUFBUTtZQUNyQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLE9BQU87YUFDUjtZQUNELGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxjQUFjO1NBQzdCO1FBQ0Q7WUFDRSxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxlQUFlLEVBQUUsS0FBSztZQUN0QixJQUFJLEVBQUUsS0FBSztZQUNYLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxFQUFFO29CQUNSLFlBQVksRUFBRSxJQUFJO29CQUNsQixjQUFjLEVBQUUsSUFBSTtvQkFDcEIsWUFBWSxFQUFFLFdBQVc7aUJBQzFCO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsU0FBUztZQUN0QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLEtBQUs7YUFDTjtZQUNELGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxjQUFjO1NBQzdCO1FBQ0Q7WUFDRSxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxlQUFlLEVBQUUsS0FBSztZQUN0QixJQUFJLEVBQUUsS0FBSztZQUNYLE9BQU8sRUFBRSxNQUFNO1lBQ2YsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLEVBQUU7b0JBQ1IsWUFBWSxFQUFFLElBQUk7b0JBQ2xCLGNBQWMsRUFBRSxJQUFJO29CQUNwQixZQUFZLEVBQUUsV0FBVztpQkFDMUI7YUFDRjtZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZUFBZSxFQUFFLENBQUM7WUFDbEIsb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsS0FBSzthQUNOO1lBQ0QsYUFBYSxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLGNBQWM7U0FDN0I7UUFDRDtZQUNFLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsT0FBTyxFQUFFLE1BQU07WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFLFVBQVU7WUFDbkIsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLEVBQUU7b0JBQ1IsWUFBWSxFQUFFLElBQUk7b0JBQ2xCLGNBQWMsRUFBRSxJQUFJO29CQUNwQixZQUFZLEVBQUUsV0FBVztpQkFDMUI7YUFDRjtZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZUFBZSxFQUFFLENBQUM7WUFDbEIsb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsS0FBSzthQUNOO1lBQ0QsYUFBYSxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLGNBQWM7U0FDN0I7UUFDRDtZQUNFLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7WUFDZCxlQUFlLEVBQUUsS0FBSztZQUN0QixJQUFJLEVBQUUsS0FBSztZQUNYLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxFQUFFO29CQUNSLFlBQVksRUFBRSxJQUFJO29CQUNsQixjQUFjLEVBQUUsSUFBSTtvQkFDcEIsWUFBWSxFQUFFLFdBQVc7aUJBQzFCO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsUUFBUTtZQUNyQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLE9BQU87YUFDUjtZQUNELGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxjQUFjO1NBQzdCO0tBQ0YsQ0FBQTtJQUVELGFBQWEsR0FBVyxDQUFDLENBQUM7SUFHMUIsWUFBbUIsSUFBcUIsRUFBVSxFQUFlLEVBQVUsa0JBQXNDO1FBQTlGLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFFakgsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ3BDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBQ0QsK0JBQStCO1FBQy9COzs7Ozs7Ozs7Ozs7Z0JBWVE7SUFDVixDQUFDO0lBR0QscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO0lBRS9CLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CO2dCQUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNEO2dCQUNFLEtBQUssRUFBRSxPQUFPO2dCQUNkLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsT0FBTztnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNiO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsYUFBYSxFQUFFLE1BQU07YUFDdEI7WUFDRDtnQkFDRSxLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFO29CQUNQLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUM7b0JBQzlEO3dCQUNFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN4QixDQUFDO3FCQUNGO29CQUNEO3dCQUNFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUNsRixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMxQixDQUFDO3FCQUNGO29CQUNELEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUM7aUJBQzFEO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBRztZQUNaLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsNkRBQTZEO1lBQzdELG1GQUFtRjtZQUNuRiwyREFBMkQ7WUFDM0QsZ0VBQWdFO1lBQ2hFLG1GQUFtRjtZQUNuRixtRkFBbUY7WUFDbkYsMERBQTBEO1lBQzFELCtEQUErRDtZQUMvRCxxREFBcUQ7WUFDckQsc0RBQXNEO1lBQ3RELHlEQUF5RDtZQUN6RCw4REFBOEQ7WUFDOUQsaUJBQWlCO1lBQ2pCLDBEQUEwRDtZQUMxRCwrREFBK0Q7U0FDaEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFNUIsQ0FBQyxDQUFDLENBQUE7UUFHRixtQ0FBbUM7UUFDbkMsa0NBQWtDO1FBQ2xDLDBDQUEwQztRQUMxQywrREFBK0Q7UUFDL0Qsd0NBQXdDO1FBQ3hDLDZDQUE2QztRQUM3QyxxQ0FBcUM7UUFDckMscUNBQXFDO1FBQ3JDLHVDQUF1QztRQUN2Qyw0Q0FBNEM7UUFDNUMsa0NBQWtDO1FBQ2xDLG1DQUFtQztRQUNuQyxzQ0FBc0M7UUFDdEMsMkNBQTJDO1FBQzNDLG1CQUFtQjtRQUNuQix1Q0FBdUM7UUFDdkMsNENBQTRDO1FBQzVDLE1BQU07UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCwyQ0FBMkM7UUFDM0Msd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztZQUV0RSxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHFEQUFxRDtJQUNyRCwyREFBMkQ7SUFDM0QsOERBQThEO0lBQzlELDZFQUE2RTtJQUM3RSx5REFBeUQ7SUFDekQsY0FBYztJQUNkLHNEQUFzRDtJQUN0RCxhQUFhO0lBQ2IsU0FBUztJQUNULE9BQU87SUFDUCxJQUFJO0lBQ0osbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyxrRUFBa0U7SUFDbEUsbUVBQW1FO0lBQ25FLHNFQUFzRTtJQUN0RSw4REFBOEQ7SUFDOUQsbUVBQW1FO0lBQ25FLDhEQUE4RDtJQUM5RCx1RkFBdUY7SUFDdkYsUUFBUTtJQUNSLHNDQUFzQztJQUN0QywwQ0FBMEM7SUFDMUMsMkJBQTJCO0lBQzNCLDJEQUEyRDtJQUMzRCw4REFBOEQ7SUFDOUQsNkVBQTZFO0lBQzdFLHlEQUF5RDtJQUN6RCxzR0FBc0c7SUFDdEcsa0dBQWtHO0lBRWxHLFNBQVM7SUFDVCxPQUFPO0lBQ1AsaURBQWlEO0lBQ2pELDJDQUEyQztJQUMzQyx3REFBd0Q7SUFDeEQsMERBQTBEO0lBQzFELElBQUk7SUFFSixTQUFTLENBQUMsS0FBSztRQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsT0FBd0IsRUFBaUMsRUFBRTtZQUNqRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzVCLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsT0FBTyxJQUFJLENBQUMsQ0FBQyxRQUFRO1lBQ3ZCLENBQUM7WUFDRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxVQUFVO1FBQzlDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFJO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUM5QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUM5QixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUM5QixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO0lBQ2hDLENBQUM7dUdBaGNVLDhCQUE4QjsyRkFBOUIsOEJBQThCLG1NQzdEM0MsK3hKQStHQSxxMEJEMUVJLE9BQU8sb0ZBQ1AsY0FBYyw2S0FDZCxzQkFBc0IsK05BQ3RCLG1CQUFtQjs7MkZBcUJWLDhCQUE4QjtrQkEvQjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLFdBQzFDO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLGNBQWM7d0JBQ2QsYUFBYTtxQkFDZDsrSUFNUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgTk9fRVJST1JTX1NDSEVNQSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtLCBTZWN0aW9ufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQge0FjdGlvblN0YXRlU2VydmljZSwgQ29yZUkxOG5TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHtOZ0NsYXNzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7XHJcbiAgQWN0aW9uQnV0dG9uc0NvbXBvbmVudCxcclxuICBBdHRhY2htZW50U2VjdGlvbkNvbXBvbmVudCxcclxuICBDaGVja0JveENvbXBvbmVudCxcclxuICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50LFxyXG4gIERhdGVQaWNrZXJDb21wb25lbnQsXHJcbiAgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxyXG4gIElucHV0Q29tcG9uZW50LFxyXG4gIElucHV0Q3VycmVuY3lDb21wb25lbnQsXHJcbiAgSW5wdXRFbWFpbENvbXBvbmVudCxcclxuICBJbnB1dE51bWJlckNvbXBvbmVudCxcclxuICBJbnB1dFRlbGVwaG9uZUNvbXBvbmVudCxcclxuICBSYWRpb0NvbXBvbmVudCxcclxuICBTZWFyY2hFbXBsb3llZUNvbXBvbmVudCxcclxuICBUZXh0YXJlYUNvbXBvbmVudFxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1JlZ2V4UGF0dGVybnN9IGZyb20gJy4uLy4uL3JlZ2V4L3JlZ2V4LXBhdHRlcm5zJztcclxuaW1wb3J0IHtUb2dnbGVCdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7RG9jc1VwbG9hZGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbi8vIGltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcXVlc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXF1ZXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBJbnB1dENvbXBvbmVudCxcclxuICAgIEFjdGlvbkJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQ3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudCxcclxuICAgIENoZWNrQm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICBJbnB1dEN1cnJlbmN5Q29tcG9uZW50LFxyXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcclxuICAgIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCxcclxuICAgIElucHV0RW1haWxDb21wb25lbnQsXHJcbiAgICBJbnB1dE51bWJlckNvbXBvbmVudCxcclxuICAgIFJhZGlvQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgSW5wdXRUZWxlcGhvbmVDb21wb25lbnQsXHJcbiAgICBEb2NzVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBTZWFyY2hFbXBsb3llZUNvbXBvbmVudCxcclxuICAgIEF0dGFjaG1lbnRTZWN0aW9uQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlXHJcbiAgXVxyXG59KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb246IFNlY3Rpb247XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKSBsb3Y6IGFueTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgPSBcImluZm8tc2VjdGlvblwiO1xyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIG9wdGlvbnM6IHN0cmluZ1tdID0gWydPcHRpb24gMScsICdPcHRpb24gMicsICdPcHRpb24gMyddO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcclxuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9OVU1CRVIgPSAwO1xyXG4gIHBhZ2VOdW1iZXI6IG51bWJlciA9IHRoaXMuREVGQVVMVF9QQUdFX05VTUJFUjtcclxuICBwYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5ERUZBVUxUX1BBR0VfU0laRTtcclxuICBjb2x1bW5zQ29uZmlnOiBhbnlbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcbiAgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICByZXF1aXJlZFNlYXJjaGFibGU6IGJvb2xlYW47XHJcblxyXG4gIGlzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgPSBbXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJCZW5xXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAyXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJCNDAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIlNjYW5uZXJcIixcclxuICAgICAgXCJjbGFzc2lmaWNhdGlvbnNcIjogbnVsbCxcclxuICAgICAgXCJjb25zdW1lZENvdW50XCI6IDAsXHJcbiAgICAgIFwiY29uc3VtZWRQZXJjZW50YWdlXCI6IDAsXHJcbiAgICAgIFwic3BlY3NcIjogW1xyXG4gICAgICAgIFwiNEdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhQXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDAzXCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJFbGl0ZUJvb2tcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjUxMkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJhc3NldERldmljZVR5cGVcIjogbnVsbCxcclxuICAgICAgXCJicmFuZFwiOiBcIkhwXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA0XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJMYXNlclwiLFxyXG4gICAgICBcImZpbGVzXCI6IG51bGwsXHJcbiAgICAgIFwidmVuZG9yc1wiOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJpZFwiOiA3MSxcclxuICAgICAgICAgIFwidmVuZG9yTmFtZVwiOiBudWxsLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOdW1iZXJcIjogXCIyNlwiLFxyXG4gICAgICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiVmVuZG9yRHRvXCJcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIFwiY2F0ZWdvcnlcIjogbnVsbCxcclxuICAgICAgXCJhc3NldFR5cGVcIjogXCJQcmludGVyXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjJHQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogMSxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJBc3VzXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA1XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJBNTAwXCIsXHJcbiAgICAgIFwiZmlsZXNcIjogbnVsbCxcclxuICAgICAgXCJ2ZW5kb3JzXCI6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBcImlkXCI6IDcxLFxyXG4gICAgICAgICAgXCJ2ZW5kb3JOYW1lXCI6IG51bGwsXHJcbiAgICAgICAgICBcInZlbmRvck51bWJlclwiOiBcIjI2XCIsXHJcbiAgICAgICAgICBcIl9fdHlwZW5hbWVcIjogXCJWZW5kb3JEdG9cIlxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgXCJjYXRlZ29yeVwiOiBudWxsLFxyXG4gICAgICBcImFzc2V0VHlwZVwiOiBcIkxhcHRvcFwiLFxyXG4gICAgICBcImNsYXNzaWZpY2F0aW9uc1wiOiBudWxsLFxyXG4gICAgICBcImNvbnN1bWVkQ291bnRcIjogMCxcclxuICAgICAgXCJjb25zdW1lZFBlcmNlbnRhZ2VcIjogMCxcclxuICAgICAgXCJzcGVjc1wiOiBbXHJcbiAgICAgICAgXCIxVEJcIlxyXG4gICAgICBdLFxyXG4gICAgICBcInN1bVF1YW50aXR5XCI6IDEsXHJcbiAgICAgIFwiX190eXBlbmFtZVwiOiBcIkFsbEFzc2V0c0R0b1wiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImFzc2V0RGV2aWNlVHlwZVwiOiBudWxsLFxyXG4gICAgICBcImJyYW5kXCI6IFwiRGVsbFwiLFxyXG4gICAgICBcImNvbG9yc1wiOiBudWxsLFxyXG4gICAgICBcImFzc2V0Q29tcGFuaWVzXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0FyXCI6IG51bGwsXHJcbiAgICAgIFwiZGVzY0VuXCI6IG51bGwsXHJcbiAgICAgIFwiZXN0b3JlVmlzaWJsZVwiOiBmYWxzZSxcclxuICAgICAgXCJpZFwiOiBcIjQwN1wiLFxyXG4gICAgICBcIm1vZGVsXCI6IFwiTGF0aXR1ZGVcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiTGFwdG9wXCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjFUQlwiXHJcbiAgICAgIF0sXHJcbiAgICAgIFwic3VtUXVhbnRpdHlcIjogNCxcclxuICAgICAgXCJfX3R5cGVuYW1lXCI6IFwiQWxsQXNzZXRzRHRvXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiYXNzZXREZXZpY2VUeXBlXCI6IG51bGwsXHJcbiAgICAgIFwiYnJhbmRcIjogXCJTYW1zdW5nXCIsXHJcbiAgICAgIFwiY29sb3JzXCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRDb21wYW5pZXNcIjogbnVsbCxcclxuICAgICAgXCJkZXNjQXJcIjogbnVsbCxcclxuICAgICAgXCJkZXNjRW5cIjogbnVsbCxcclxuICAgICAgXCJlc3RvcmVWaXNpYmxlXCI6IGZhbHNlLFxyXG4gICAgICBcImlkXCI6IFwiNDA4XCIsXHJcbiAgICAgIFwibW9kZWxcIjogXCJHYWxheHlcIixcclxuICAgICAgXCJmaWxlc1wiOiBudWxsLFxyXG4gICAgICBcInZlbmRvcnNcIjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwiaWRcIjogNzEsXHJcbiAgICAgICAgICBcInZlbmRvck5hbWVcIjogbnVsbCxcclxuICAgICAgICAgIFwidmVuZG9yTnVtYmVyXCI6IFwiMjZcIixcclxuICAgICAgICAgIFwiX190eXBlbmFtZVwiOiBcIlZlbmRvckR0b1wiXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBcImNhdGVnb3J5XCI6IG51bGwsXHJcbiAgICAgIFwiYXNzZXRUeXBlXCI6IFwiVGFibGV0XCIsXHJcbiAgICAgIFwiY2xhc3NpZmljYXRpb25zXCI6IG51bGwsXHJcbiAgICAgIFwiY29uc3VtZWRDb3VudFwiOiAwLFxyXG4gICAgICBcImNvbnN1bWVkUGVyY2VudGFnZVwiOiAwLFxyXG4gICAgICBcInNwZWNzXCI6IFtcclxuICAgICAgICBcIjI1NkdCXCJcclxuICAgICAgXSxcclxuICAgICAgXCJzdW1RdWFudGl0eVwiOiAxLFxyXG4gICAgICBcIl9fdHlwZW5hbWVcIjogXCJBbGxBc3NldHNEdG9cIlxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgdG90YWxFbGVtZW50czogbnVtYmVyID0gNjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFjdGlvblN0YXRlU2VydmljZTogQWN0aW9uU3RhdGVTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIGxldCBkYXRhID0gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlsc1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICBpZiAoa2V5ICE9PSAnZGVjaXNpb24nKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh7W2tleV06IGRhdGFba2V5XX0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmluaXRpYWxpemVUYWJsZUNvbmZpZygpXHJcbiAgICAvKiAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NoZWNrYm94JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXM9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKXtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXN0b21TZWFyY2hhYmxlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkU2VhcmNoYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVxdWlyZWRTZWFyY2hhYmxlKVxyXG4gICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXN0b21TZWFyY2hhYmxlJykuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZWRTZWFyY2hhYmxlID0gZmFsc2VcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5yZXF1aXJlZFNlYXJjaGFibGUpXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3VzdG9tU2VhcmNoYWJsZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgICAgICAgfSkqL1xyXG4gIH1cclxuXHJcblxyXG4gIGluaXRpYWxpemVUYWJsZUNvbmZpZygpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbnMoKVxyXG4gICAgdGhpcy5pbml0aWFsaXplQ29sdW1uQ29uZmlnKClcclxuXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQ29sdW1ucygpIHtcclxuICAgIHRoaXMuY29sdW1ucyA9IFsnaWQnLCAnYXNzZXRUeXBlJywgJ2JyYW5kJywgJ21vZGVsJywgJ3N1bVF1YW50aXR5JywgJ3NwZWNzJywgJ2FsbG9jYXRlJ107XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQ29sdW1uQ29uZmlnKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zQ29uZmlnID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdJZCcsXHJcbiAgICAgICAgdHlwZTogJ3RleHQnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdBc3NldCBUeXBlJyxcclxuICAgICAgICB0eXBlOiAndGV4dCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ0JyYW5kJyxcclxuICAgICAgICB0eXBlOiAndGV4dCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnTW9kZWwnLFxyXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdRdWFudGl0eScsXHJcbiAgICAgICAgdHlwZTogJ2Zvcm1JZCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnQ2FwYWNpdHknLFxyXG4gICAgICAgIHR5cGU6ICdzcGVjcycsXHJcbiAgICAgICAgY2xpY2thYmxlVGV4dDogJ1ZpZXcnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ0FjdGlvbnMnLFxyXG4gICAgICAgIHR5cGU6ICdhY3Rpb25zJyxcclxuICAgICAgICBhY3Rpb25zOiBbXHJcbiAgICAgICAgICB7dmlld01vZGU6ICdhbGxvY2F0ZScsIGFjdGlvbk5hbWU6IFwiQWxsb2NhdGVcIiwgZGlzYWJsZWQ6IHRydWV9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2aWV3TW9kZTogJ2VkaXQnLCBhY3Rpb25OYW1lOiBcIkVkaXRcIiwgYWN0aW9uOiBcImVkaXRcIiwgb25DbGljazogKGFzc2V0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmVkaXRBc3NldChhc3NldCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2aWV3TW9kZTogJ2RlbGV0ZScsIGFjdGlvbk5hbWU6IFwiRGVsZXRlXCIsIGFjdGlvbjogXCJkZWxldGVcIiwgb25DbGljazogKGFzc2V0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUFzc2V0KGFzc2V0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7dmlld01vZGU6ICdjaGFydCcsIGFjdGlvbk5hbWU6IFwiQ2hhcnRcIiwgYWN0aW9uOiBcImNoYXJ0XCJ9LFxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuXHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIGxldCBuZXdGb3JtID0ge1xyXG4gICAgICBpbnB1dDE6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH07XHJcbiAgICB0aGlzLmxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zPy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgIG5ld0Zvcm1bb3B0aW9uLnZhbHVlXSA9IFsnJ107XHJcbiAgICB9KVxyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAvLyBjdXJyZW5jeUlucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIGVtYWlsSW5wdXQ6IG5ldyBGb3JtQ29udHJvbCh7dmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIG51bWJlcklucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIGN1c3RvbVNlYXJjaGFibGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgLy8gY2hlY2tib3g6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgICAgLy8gdGV4dEFyZWE6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNSldKSxcclxuICAgICAgLy8gZGF0ZVBpY2tlcjogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAvLyBkYXRlUGlja2VyUmFuZ2U6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgLy8gcmFkaW86IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgLy8gdG9nZ2xlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIHRlbGVwaG9uZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAvLyBzZWFyY2hFbXBsb3llZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAvLyAvLyAuLi5uZXdGb3JtLFxyXG4gICAgICAvLyBhdHRhY2htZW50OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIC8vIGF0dGFjaG1lbnRTZWN0aW9uOiBuZXcgRm9ybUNvbnRyb2woW10sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zPy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGlzQWN0aW9uVmFsaWQpXHJcblxyXG4gICAgfSlcclxuXHJcblxyXG4gICAgLy8gdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgIC8vICAgaW5wdXQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgY3VycmVuY3lJbnB1dDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICBlbWFpbElucHV0OiBuZXcgRm9ybUNvbnRyb2woe3ZhbHVlOiBudWxsLGRpc2FibGVkOiB0cnVlfSksXHJcbiAgICAvLyAgIG51bWJlcklucHV0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIGN1c3RvbVNlYXJjaGFibGU6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgY2hlY2tib3g6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgdGV4dEFyZWE6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgZGF0ZVBpY2tlcjogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICBkYXRlUGlja2VyUmFuZ2U6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgcmFkaW86IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIC8vICAgdG9nZ2xlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIHRlbGVwaG9uZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICBzZWFyY2hFbXBsb3llZTogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgLy8gICAvLyAuLi5uZXdGb3JtLFxyXG4gICAgLy8gICBhdHRhY2htZW50OiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAvLyAgIGF0dGFjaG1lbnRTZWN0aW9uOiBuZXcgRm9ybUNvbnRyb2woW10pLFxyXG4gICAgLy8gfSk7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5zZXRWYWx1ZSh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzKTtcclxuICAgIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0aWxzKTtcclxuICAgIC8vICAgY29uc29sZS5sb2codGhpcy5sb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnMpXHJcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICAgLyEqe1xyXG4gIC8vICAgICAgICAgaW5wdXQxOiB0aGlzLmZpZWxkc0Zvcm0uZ2V0KCdpbnB1dDEnKS52YWx1ZVxyXG4gIC8vICAgICAgIH0qIS9cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIC8vICAgY3JlYXRlRm9ybSgpIHtcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgLy8gICAgIGN1c3RvbWVyTmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgLy8gICAgIGN1c3RvbWVyUGhvbmU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICByZWFzb25Gb3JSZXF1ZXN0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbFR5cGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBjZW50ZXJPZkNhbGxzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAvLyAgICAgY2FsbERhdGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gIC8vICAgICBhZ3JlZW1lbnQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV0pLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAvLyAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAvLyAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgICAgdGhpcy5sb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9ucz8uZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gIC8vICAgICAgIGxldCBpc0FjdGlvblZhbGlkID0gdGhpcy5jaGVja1ZhbGlkaXR5KG9wdGlvbi52YWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5hY3Rpb25TdGF0ZVNlcnZpY2Uuc2V0QWN0aW9uVmFsaWQob3B0aW9uLnZhbHVlLCBpc0FjdGlvblZhbGlkKTtcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzID0gdGhpcy5mb3JtR3JvdXAudmFsdWVcclxuICAvLyAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmUgPSB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmN1c3RvbWVyUGhvbmU/LmUxNjROdW1iZXJcclxuICAvLyAgICAgICAvLyB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCA9ICh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmFncmVlbWVudCkudG9TdHJpbmcoKVxyXG5cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmxvdj8uWydkZWNpc2lvbiddPy5vcHRpb25zKVxyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscylcclxuICAvLyAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMpO1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCB0aGlzLmZvcm1Hcm91cC52YWx1ZSlcclxuICAvLyB9XHJcblxyXG4gIGVkaXRBc3NldChhc3NldCkge1xyXG4gICAgY29uc29sZS5sb2coYXNzZXQpXHJcbiAgfVxyXG5cclxuICBzdGFydHNXaXRoRE1PRU9yQ1IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgaWYgKHZhbHVlICYmICh2YWx1ZS5zdGFydHNXaXRoKCdETU9FLScpIHx8IHZhbHVlLnN0YXJ0c1dpdGgoJ0NSLScpKSkge1xyXG4gICAgICAgIHJldHVybiBudWxsOyAvLyBWYWxpZFxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7c3RhcnRzV2l0aEludmFsaWQ6IHRydWV9OyAvLyBJbnZhbGlkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXNzZXQoYXNzZXQpIHtcclxuICAgIGNvbnNvbGUubG9nKGFzc2V0KVxyXG4gIH1cclxuXHJcbiAgZm9ybVZhbHVlKGZvcm0pIHtcclxuICAgIGNvbnNvbGUubG9nKGZvcm0udmFsdWUpXHJcbiAgfVxyXG5cclxuICBjaGVja1ZhbGlkaXR5KGFjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICBjYXNlICdTVUJNSVQnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC52YWxpZDtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGNhc2UgJ1JFSkVDVCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xyXG4gICAgICBjYXNlICdTQVZFX0NIQU5HRVMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBjdXN0b21DYWxsU3VibWl0KGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zb2xlLmxvZygnY3VzdG9tQ2FsbFN1Ym1pdCcsIGFjdGlvbilcclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnJlc2V0QWN0aW9uJC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwYWdlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBldmVudC5wYWdlSW5kZXhcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdj5cclxuICA8Zm9ybSBbbmdDbGFzc109XCJ7J2Zvcm0tc2VjdGlvbi1kaXZpZGUgZm9ybS1zZWN0aW9uJzohc2VjdGlvbj8uaGVhZGVyPy5yZWFkT25seSwnaW5mby1zZWN0aW9uJzpzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5fVwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XHJcbiAgICA8YXBwLWlucHV0IGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJmYWxzZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiIFtsb2FkaW5nXT1cInRydWVcIiB0eXBlPVwiZW5Pbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXRcIiBsYWJlbD1cIklucHV0XCI+PC9hcHAtaW5wdXQ+XHJcbjwhLS0gPGFwcC1jaGVja2JveFxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94XCJcclxuICAgICAgdGVybXNMYWJlbD1cIlRlcm1zIGFuZCBjb25kaXRpb25zXCJcclxuICAgICAgbGFiZWw9XCJjaGVjay1ib3hcIlxyXG4gICAgICBbY29udGFpblRlcm1zXT1cInRydWVcIj48L2FwcC1jaGVja2JveD4tLT5cclxuICAgIDwhLS1cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgIFthcnJheUxpc3RdPVwiZm9ybUdyb3VwLmdldCgnc2VhcmNoRW1wbG95ZWUnKS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hFbXBsb3llZVwiXHJcbiAgICAgIGxhYmVsPVwiU2VhcmNoLWVtcGxveWVlXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVlPlxyXG4gICAgPGFwcC1pbnB1dCBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCIgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiIFtsb2FkaW5nXT1cInRydWVcIiB0eXBlPVwiZW5Pbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXRcIiBsYWJlbD1cIklucHV0XCI+PC9hcHAtaW5wdXQ+XHJcbiAgICA8YXBwLWlucHV0LWN1cnJlbmN5IGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VycmVuY3lJbnB1dFwiIGxhYmVsPVwiY3VycmVuY3lcIj48L2FwcC1pbnB1dC1jdXJyZW5jeT5cclxuICAgIDxhcHAtaW5wdXQtZW1haWwgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbElucHV0XCIgbGFiZWw9XCJlbWFpbFwiPjwvYXBwLWlucHV0LWVtYWlsPlxyXG4gICAgPGFwcC1pbnB1dC1udW1iZXIgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJudW1iZXJJbnB1dFwiIGxhYmVsPVwibnVtYmVyXCI+PC9hcHAtaW5wdXQtbnVtYmVyPlxyXG4gICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBtYi0wIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tU2VhcmNoYWJsZVwiXHJcbiAgICAgIGxhYmVsPVwiQ3VzdG9tLXNlYXJjaGFibGVcIlxyXG4gICAgICBbb3B0aW9uc109XCJsb3Y/LlsnYXBwcm92ZXJBY3Rpb25zJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ25hbWUnXCJcclxuICAgICAgW2tleV09XCInbmFtZSdcIj48L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuICAgIDxhcHAtY2hlY2tib3hcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2JveFwiXHJcbiAgICAgIHRlcm1zTGFiZWw9XCJUZXJtcyBhbmQgY29uZGl0aW9uc1wiXHJcbiAgICAgIGxhYmVsPVwiY2hlY2stYm94XCJcclxuICAgICAgW2NvbnRhaW5UZXJtc109XCJ0cnVlXCI+PC9hcHAtY2hlY2tib3g+XHJcbiAgICA8YXBwLXRleHRhcmVhIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIiBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dEFyZWFcIiBsYWJlbD1cIlRleHQtYXJlYVwiPjwvYXBwLXRleHRhcmVhPlxyXG4gICAgPGFwcC1kYXRlcGlja2VyXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVBpY2tlclwiXHJcbiAgICAgIFttYXRTdWZmaXhdPVwidHJ1ZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXJcIj48L2FwcC1kYXRlcGlja2VyPlxyXG4gICAgPGFwcC1kYXRlLXJhbmdlLXBpY2tlclxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVQaWNrZXJSYW5nZVwiXHJcbiAgICAgIGxhYmVsPVwiRGF0ZS1waWNrZXItcmFuZ2VcIlxyXG4gICAgICBbbWF0U3VmZml4XT1cInRydWVcIj48L2FwcC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgIDxhcHAtcmFkaW8gY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJyYWRpb1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBsYWJlbD1cIlJhZGlvXCI+PC9hcHAtcmFkaW8+LS0+XHJcbiAgIDwhLS0gPGFwcC10b2dnbGUtYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtIGZ1bGxcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidG9nZ2xlXCJcclxuICAgICAgW29wdGlvbnNdPVwibG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBsYWJlbD1cIlRvZ2dsZS1idXR0b25cIlxyXG4gICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ2Rlc2NyaXB0aW9uJ1wiXHJcbiAgICAgIFtrZXldPVwiJ3ZhbHVlJ1wiPjwvYXBwLXRvZ2dsZS1idXR0b24+LS0+XHJcbiAgICA8IS0tPGFwcC1pbnB1dC10ZWxlcGhvbmUgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWxlcGhvbmVcIiBsYWJlbD1cIlRlbGVwaG9uZVwiPjwvYXBwLWlucHV0LXRlbGVwaG9uZT5cclxuXHJcbiAgICA8YXBwLWZpbGUtdXBsb2FkZXJcclxuICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW0gZnVsbFwiXHJcbiAgICAgIFtjYWxsQXBpXT1cInRydWVcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5XCJcclxuICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgICAgbGFiZWw9XCJhdHRhY2htZW50XCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXR0YWNobWVudFwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICA8YXBwLWF0dGFjaG1lbnQtc2VjdGlvblxyXG4gICAgICBjbGFzcz1cInNlY3Rpb24taXRlbSBmdWxsXCJcclxuICAgICAgW2Rlc2NyaXB0aW9uUmVxdWlyZWRdPVwiZmFsc2VcIlxyXG4gICAgICBsYWJlbD1cIkF0dGFjaG1lbnQgc2VjdGlvblwiXHJcbiAgICAgIFtjb21tZW50c1JlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seVwiXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImF0dGFjaG1lbnRTZWN0aW9uXCI+PC9hcHAtYXR0YWNobWVudC1zZWN0aW9uPlxyXG4tLT5cclxuXHJcblxyXG4gICAgPCEtLSA8YXBwLXRhYmxlXHJcbiAgICBbY29sdW1uc0NvbmZpZ109XCJjb2x1bW5zQ29uZmlnXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW2lzRXJyb3JdPVwiaXNFcnJvclwiXHJcbiAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXHJcbiAgICBbcm93c109XCJjYXRlZ29yeURhdGFcIiBbaGFzUGFnaW5hdG9yXT1cInRydWVcIlxyXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW2N1cnJlbnRQYWdlXT1cInBhZ2VOdW1iZXJcIlxyXG4gICAgW3RvdGFsRWxlbWVudHNdPVwidG90YWxFbGVtZW50c1wiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgIGNsYXNzPVwibmV3LXByaW1hcnktdGFibGUgZnVsbFwiPlxyXG4gICAgPC9hcHAtdGFibGU+IC0tPlxyXG5cclxuXHJcbiAgPC9mb3JtPlxyXG5cclxuXHJcbjwvZGl2PlxyXG5AaWYgKCFzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5KSB7XHJcbiAgPGRpdiBjbGFzcz1cIm10LTRcIj5cclxuICAgIDxsaWItYWN0aW9uLWJ1dHRvbnNcclxuICAgICAgW2xvdk9wdGlvbnNdPVwibG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnNcIlxyXG4gICAgICBbbG92VHlwZV09XCJsb3Y/LlsnZGVjaXNpb24nXT8udHlwZVwiXHJcbiAgICAgIFtzZWN0aW9uXT1cInNlY3Rpb25cIlxyXG4gICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgW3NlY3Rpb25zXT1cImZvcm0uc2VjdGlvbnNcIlxyXG4gICAgICBbc2hvd0FwcHJvdmFsQ3ljbGVdPVwidHJ1ZVwiXHJcbiAgICAgIFtjdXN0b21DYWxsXT1cImZhbHNlXCJcclxuICAgICAgW2ZpZWxkc0Zvcm1dPVwiZm9ybUdyb3VwXCJcclxuICAgICAgKGN1c3RvbUNhbGxFbWl0KT1cImN1c3RvbUNhbGxTdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChyZXNldEZvcm1FbWl0KT1cInJlc2V0Rm9ybSgpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19