ets-fe-ng-sdk 17.0.234 → 17.0.237

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.
@@ -35,7 +35,7 @@ export class FormGeneratedValueComponent extends FormGeneratorComponent {
35
35
  super();
36
36
  this.formatValue = (item, value) => {
37
37
  if (item.formatter)
38
- return item.formatter(this.form().getRawValue(), item.field);
38
+ return item.formatter(this.form.getRawValue(), item.field);
39
39
  else if (item.noFormat)
40
40
  return value;
41
41
  else if (item.type == 'checkbox' || item.type == 'checkedbox')
@@ -53,7 +53,7 @@ export class FormGeneratedValueComponent extends FormGeneratorComponent {
53
53
  };
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratedValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n form().controls[scheme.field | toAny]?.value\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"labelValue; context: { $implicit: { scheme, value: form().controls[scheme.field | toAny]?.value } }\" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratedValueComponent, isStandalone: true, selector: "form-generated-value", usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n form.controls[scheme.field | toAny]?.value\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"labelValue; context: { $implicit: { scheme, value: form.controls[scheme.field | toAny]?.value } }\" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ListOptionFinderPipe, name: "listOptionFinder" }, { kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }, { kind: "pipe", type: ValueOrXPipe, name: "valueOrX" }] }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratedValueComponent, decorators: [{
59
59
  type: Component,
@@ -75,6 +75,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
75
75
  ToAnyPipe,
76
76
  ValidationMessageComponent,
77
77
  ValueOrXPipe,
78
- ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n form().controls[scheme.field | toAny]?.value\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"labelValue; context: { $implicit: { scheme, value: form().controls[scheme.field | toAny]?.value } }\" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
78
+ ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\"\n #inputTag />\n }\n @case (scheme.type == 'autocomplete') {\n <ng-container\n *ngTemplateOutlet=\"\n labelValue;\n context: {\n $implicit: {\n scheme,\n value:\n form.controls[scheme.field | toAny]?.value\n | listOptionFinder\n : scheme.options || optionsMap[scheme.field | toAny]\n : scheme.valueField\n : scheme.labelField\n : scheme.labelType\n : scheme.optionFormatter\n }\n }\n \"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"labelValue; context: { $implicit: { scheme, value: form.controls[scheme.field | toAny]?.value } }\" />\n }\n }\n </div>\n }\n </div>\n </form>\n</loader>\n\n<ng-template #labelValue let-obj>\n <div class=\"\">\n <div class=\"text-primary\">\n {{ obj.scheme.label }}\n </div>\n <div class=\" \">\n {{ formatValue | functionCaller2: obj.scheme : obj.value | valueOrX: '-' }}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep input:not([type=checkbox]),:host ::ng-deep .control-bg-gray.form-control,:host ::ng-deep textarea{border:none!important;background-color:transparent!important;padding:0!important;height:auto!important}\n"] }]
79
79
  }], ctorParameters: () => [] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxtQkFB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ZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCwwQkFBMEI7d0JBQzFCLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JDb21wb25lbnQsIElGb3JtU2NoZW1hIH0gZnJvbSAnLi4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBob25lTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50LCBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIxLCBGdW5jdGlvbkNhbGxlcjIsIFN0ckNvbmNhdGVuYXRvclBpcGUsIFRvQW55UGlwZSwgVmFsdWVPclhQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdXRpbGl0eS5waXBlJztcbmltcG9ydCB7IFRleHRDYXNlMkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHQtY2FzZS0yL3RleHQtY2FzZS0yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnB1dC9pbnB1dC5zZXJ2aWNlJztcblxuQFBpcGUoeyBuYW1lOiAnbGlzdE9wdGlvbkZpbmRlcicsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBMaXN0T3B0aW9uRmluZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7IHg6IHN0cmluZyB9W10sXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxuICAgIGxhYmVsRmllbGQ6IHN0cmluZyxcbiAgICBsYWJlbFR5cGU6IE9wdGlvbkxhYmVsVHlwZSxcbiAgICBvcHRpb25Gb3JtYXR0ZXI6IChpdGVtOiBhbnkpID0+IHN0cmluZyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBmb3JtYXR0ZWRPcHRpb25zID0gdGhpcy5pUy5vcHRpb25zRm9ybWF0dGVyKG9wdGlvbnMsIHZhbHVlRmllbGQsIG9wdGlvbkZvcm1hdHRlciwgbGFiZWxUeXBlLCBsYWJlbEZpZWxkLCBmYWxzZSk7XG4gICAgcmV0dXJuIGZvcm1hdHRlZE9wdGlvbnM/LmZpbmQoKHgpID0+IHgudmFsdWUgPT0gdmFsdWUpPy5sYWJlbDtcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaVM6IElucHV0U2VydmljZSkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybS1nZW5lcmF0ZWQtdmFsdWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnVuY3Rpb25DYWxsZXIxLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBJbnB1dEJhc2ljQ29tcG9uZW50LFxuICAgIExpc3RPcHRpb25GaW5kZXJQaXBlLFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBQaG9uZU51bWJlckNvbXBvbmVudCxcbiAgICBTdHJDb25jYXRlbmF0b3JQaXBlLFxuICAgIFRleHRDYXNlMkNvbXBvbmVudCxcbiAgICBUb0FueVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgVmFsdWVPclhQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdGVkVmFsdWVDb21wb25lbnQ8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IGV4dGVuZHMgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxURm9ybUdyb3VwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuXG4gIGZvcm1hdFZhbHVlID0gKGl0ZW06IElGb3JtU2NoZW1hLCB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcik6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgPT4ge1xuICAgIGlmIChpdGVtLmZvcm1hdHRlcikgcmV0dXJuIGl0ZW0uZm9ybWF0dGVyKHRoaXMuZm9ybSgpLmdldFJhd1ZhbHVlKCkgYXMgYW55LCBpdGVtLmZpZWxkKTtcbiAgICBlbHNlIGlmIChpdGVtLm5vRm9ybWF0KSByZXR1cm4gdmFsdWU7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdjaGVja2JveCcgfHwgaXRlbS50eXBlID09ICdjaGVja2VkYm94JykgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZScpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSBhcyBzdHJpbmcsICdFRSwgTU1NTSBkLCB5Jyk7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdkYXRldGltZS1sb2NhbCcpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmZ1bGxEYXRlVGltZSh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgIGVsc2UgaWYgKGl0ZW0uc3ViVHlwZSA9PSAnbW9uZXknKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5tb25leVBhcnNlcih2YWx1ZSBhcyBzdHJpbmcpO1xuICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnbnVtYmVyJykgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UubnVtYmVyUGlwZS50cmFuc2Zvcm0oK3ZhbHVlKTtcbiAgICBlbHNlIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwiY29tcHV0ZWRMb2FkaW5nKClcIj5cbiAgPGZvcm0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuZmllbGQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm0oKVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25JY29uXCJcbiAgICAgICAgICAgICAgICBbY291bnRyeUNvZGUzXT1cInNjaGVtZS5jb3VudHJ5Q29kZTNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtKCkudmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiXG4gICAgICAgICAgICAgICAgI2lucHV0VGFnIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICBsYWJlbFZhbHVlO1xuICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzY2hlbWUsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtKCkuY29udHJvbHNbc2NoZW1lLmZpZWxkIHwgdG9BbnldPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBsaXN0T3B0aW9uRmluZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcFtzY2hlbWUuZmllbGQgfCB0b0FueV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUudmFsdWVGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5sYWJlbEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLmxhYmVsVHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS5vcHRpb25Gb3JtYXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxWYWx1ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgc2NoZW1lLCB2YWx1ZTogZm9ybSgpLmNvbnRyb2xzW3NjaGVtZS5maWVsZCB8IHRvQW55XT8udmFsdWUgfSB9XCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFZhbHVlIGxldC1vYmo+XG4gIDxkaXYgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+XG4gICAgICB7eyBvYmouc2NoZW1lLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgIHt7IGZvcm1hdFZhbHVlIHwgZnVuY3Rpb25DYWxsZXIyOiBvYmouc2NoZW1lIDogb2JqLnZhbHVlIHwgdmFsdWVPclg6ICctJyB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRlZC12YWx1ZS9mb3JtLWdlbmVyYXRlZC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSXBELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUNQLEtBQWEsRUFDYixPQUF3QixFQUN4QixVQUFrQixFQUNsQixVQUFrQixFQUNsQixTQUEwQixFQUMxQixlQUFzQztRQUV0QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0SCxPQUFPLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDaEUsQ0FBQztJQUNELFlBQW1CLEVBQWdCO1FBQWhCLE9BQUUsR0FBRixFQUFFLENBQWM7SUFBRyxDQUFDOzhHQVo1QixvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQXlDcEQsTUFBTSxPQUFPLDJCQUlYLFNBQVEsc0JBQWtDO0lBQzFDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFJVixnQkFBVyxHQUFHLENBQUMsSUFBaUIsRUFBRSxLQUFnQyxFQUE2QixFQUFFO1lBQy9GLElBQUksSUFBSSxDQUFDLFNBQVM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNqRixJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU8sS0FBSyxDQUFDO2lCQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWTtnQkFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQ3RGLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztpQkFDekcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLGdCQUFnQjtnQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUM1RixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUTtnQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDOztnQkFDbkYsT0FBTyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDO0lBWkYsQ0FBQzs4R0FQVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix1R0N4RHhDLDRnRkFpRUEsb1JEMUJJLFlBQVkscU1BQ1osV0FBVyxtZEFFWCxlQUFlLG1EQTFCTixvQkFBb0IseURBNkI3QixlQUFlLG1HQUdmLG9CQUFvQix1SUFHcEIsU0FBUyx5Q0FFVCxZQUFZOzsyRkFHSCwyQkFBMkI7a0JBekJ2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBR1A7d0JBQ1AscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFNBQVM7d0JBQ1QsMEJBQTBCO3dCQUMxQixZQUFZO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LCBJRm9ybVNjaGVtYSB9IGZyb20gJy4uL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uQ2FsbGVyMSwgRnVuY3Rpb25DYWxsZXIyLCBTdHJDb25jYXRlbmF0b3JQaXBlLCBUb0FueVBpcGUsIFZhbHVlT3JYUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBUZXh0Q2FzZTJDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXh0LWNhc2UtMi90ZXh0LWNhc2UtMi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQuc2VydmljZSc7XG5cbkBQaXBlKHsgbmFtZTogJ2xpc3RPcHRpb25GaW5kZXInLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTGlzdE9wdGlvbkZpbmRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogeyB4OiBzdHJpbmcgfVtdLFxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcbiAgICBsYWJlbEZpZWxkOiBzdHJpbmcsXG4gICAgbGFiZWxUeXBlOiBPcHRpb25MYWJlbFR5cGUsXG4gICAgb3B0aW9uRm9ybWF0dGVyOiAoaXRlbTogYW55KSA9PiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHRoaXMuaVMub3B0aW9uc0Zvcm1hdHRlcihvcHRpb25zLCB2YWx1ZUZpZWxkLCBvcHRpb25Gb3JtYXR0ZXIsIGxhYmVsVHlwZSwgbGFiZWxGaWVsZCwgZmFsc2UpO1xuICAgIHJldHVybiBmb3JtYXR0ZWRPcHRpb25zPy5maW5kKCh4KSA9PiB4LnZhbHVlID09IHZhbHVlKT8ubGFiZWw7XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdGVkLXZhbHVlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBMaXN0T3B0aW9uRmluZGVyUGlwZSxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgU3RyQ29uY2F0ZW5hdG9yUGlwZSxcbiAgICBUZXh0Q2FzZTJDb21wb25lbnQsXG4gICAgVG9BbnlQaXBlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIFZhbHVlT3JYUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRlZFZhbHVlQ29tcG9uZW50PFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIEZvcm1HZW5lcmF0b3JDb21wb25lbnQ8VEZvcm1Hcm91cD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cblxuICBmb3JtYXRWYWx1ZSA9IChpdGVtOiBJRm9ybVNjaGVtYSwgdmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIpOiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyID0+IHtcbiAgICBpZiAoaXRlbS5mb3JtYXR0ZXIpIHJldHVybiBpdGVtLmZvcm1hdHRlcih0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBhbnksIGl0ZW0uZmllbGQpO1xuICAgIGVsc2UgaWYgKGl0ZW0ubm9Gb3JtYXQpIHJldHVybiB2YWx1ZTtcbiAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2NoZWNrYm94JyB8fCBpdGVtLnR5cGUgPT0gJ2NoZWNrZWRib3gnKSByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdkYXRlJykgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlIGFzIHN0cmluZywgJ0VFLCBNTU1NIGQsIHknKTtcbiAgICBlbHNlIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGV0aW1lLWxvY2FsJykgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZnVsbERhdGVUaW1lKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS5zdWJUeXBlID09ICdtb25leScpIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLm1vbmV5UGFyc2VyKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgZWxzZSBpZiAoaXRlbS50eXBlID09ICdudW1iZXInKSByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5udW1iZXJQaXBlLnRyYW5zZm9ybSgrdmFsdWUpO1xuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJvdyByb3ctY29scy17eyBncmlkU3R5bGUoKSB9fSByb3ctY29scy1tZC17eyBncmlkTURTdHlsZSgpIH19IHJvdy1jb2xzLWxnLXt7IGdyaWRMR1N0eWxlKCkgfX0gcm93LWNvbHMteHhsLXt7XG4gICAgICAgIGdyaWRYWExTdHlsZSgpXG4gICAgICB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3sgZm9ybUdyaWRDbGFzcygpIH19XCI+XG4gICAgICBAZm9yIChzY2hlbWUgb2YgY29tcHV0ZWRGb3JtU2NoZW1hKCk7IHRyYWNrIHNjaGVtZS5maWVsZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHNjaGVtZS5jbHMgfX0gXCI+XG4gICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICd0ZWwnKSB7XG4gICAgICAgICAgICAgIDxhcHAtcGhvbmUtbnVtYmVyXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25JY29uXCJcbiAgICAgICAgICAgICAgICBbY291bnRyeUNvZGUzXT1cInNjaGVtZS5jb3VudHJ5Q29kZTNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIlxuICAgICAgICAgICAgICAgICNpbnB1dFRhZyAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgbGFiZWxWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgc2NoZW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5jb250cm9sc1tzY2hlbWUuZmllbGQgfCB0b0FueV0/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGxpc3RPcHRpb25GaW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwW3NjaGVtZS5maWVsZCB8IHRvQW55XVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjaGVtZS52YWx1ZUZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLmxhYmVsRmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzY2hlbWUubGFiZWxUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2NoZW1lLm9wdGlvbkZvcm1hdHRlclxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFZhbHVlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBzY2hlbWUsIHZhbHVlOiBmb3JtLmNvbnRyb2xzW3NjaGVtZS5maWVsZCB8IHRvQW55XT8udmFsdWUgfSB9XCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFZhbHVlIGxldC1vYmo+XG4gIDxkaXYgY2xhc3M9XCJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+XG4gICAgICB7eyBvYmouc2NoZW1lLmxhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgIHt7IGZvcm1hdFZhbHVlIHwgZnVuY3Rpb25DYWxsZXIyOiBvYmouc2NoZW1lIDogb2JqLnZhbHVlIHwgdmFsdWVPclg6ICctJyB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -47,4 +47,4 @@ export class BaseFormGenerator {
47
47
  });
48
48
  }
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUluRSxNQUFNLE9BQWdCLGlCQUFpQjtJQVFyQztRQVBBLGtCQUFhLEdBQUcsTUFBTSxDQUF1QyxFQUFFLENBQUMsQ0FBQztRQUNqRSxlQUFVLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRyxTQUFJLEdBQTBDLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBR3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFUyxlQUFlLENBQUMsT0FBMEI7UUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxNQUFnQztRQUN6RSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxLQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM3Riw0SEFBNEg7UUFDOUgsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsR0FBb0Q7UUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGdCQUFnQixHQUF5QixFQUFFLENBQUM7WUFDbEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUMvRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2pEO2FBQ0Y7WUFDRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4uL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IElPYmplY3RMaXRlcmFsLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9idG4vYnRuLm1vZGVsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFRGb3JtR3JvdXAgZXh0ZW5kcyBJT2JqZWN0TGl0ZXJhbCwgVEJhc2VGb3JtU2NoZW1hIGV4dGVuZHMgeyBmaWVsZD86IGFueSB9ID0gYW55PiB7XG4gIGZvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIGZvcm1TY2hlbWEgPSBjb21wdXRlZDxUQmFzZUZvcm1TY2hlbWFbXT4oKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnNldCgoc2NoZW1hcyB8fCBbXSkudG9NYXAoJ2ZpZWxkJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVGb3JtU2NoZW1hKGZpZWxkOiBzdHJpbmcsIHNjaGVtZTogUGFydGlhbDxUQmFzZUZvcm1TY2hlbWE+KSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIHJldHVybiB7IC4uLmZvcm1TY2hlbWFNYXAsIFtmaWVsZCBhcyBhbnldOiAhZXhpc3RpbmcgPyBzY2hlbWUgOiB7IC4uLmV4aXN0aW5nLCAuLi5zY2hlbWUgfSB9O1xuICAgICAgLy8gcmV0dXJuICFzY2ggPyB7IC4uLmZvcm1TY2hlbWFNYXAsIFtmaWVsZCBhcyBhbnldOiBzY2hlbWUgfSA6IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHsgLi4uc2NoLCAuLi5zY2hlbWUgfSB9O1xuICAgIH0pO1xuICB9XG4gIHByb3RlY3RlZCBfdXBkYXRlQWxsRm9ybVNjaGVtYShtYXA6IChmb3JtRmllbGQ6IFRCYXNlRm9ybVNjaGVtYSkgPT4gVEJhc2VGb3JtU2NoZW1hKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3Rm9ybVNjaGVtYU1hcDogdHlwZW9mIGZvcm1TY2hlbWFNYXAgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1TY2hlbWFNYXApIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZXdGb3JtU2NoZW1hTWFwLCBrZXkpKSB7XG4gICAgICAgICAgbmV3Rm9ybVNjaGVtYU1hcFtrZXldID0gbWFwKGZvcm1TY2hlbWFNYXBba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgZGVsZXRlIGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIGNsb25lRGVlcChmb3JtU2NoZW1hTWFwKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlRm9ybVNjaGVtYTxcbiAgVCxcbiAgQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VD4sXG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IHtcbiAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbltdO1xuICBhdXRvUGlja1ZhbHVlRmllbGQ/OiBib29sZWFuO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgY2xlYXJPbkRpc2FibGU/OiBib29sZWFuO1xuICBjbHM/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlMz86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBJQmFzZUZvcm1TY2hlbWE8VCwgQ29tcG9uZW50LCBURm9ybUdyb3VwPltdO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgaXNTZWFyY2hGaWVsZD86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xuICBsYWJlbFR5cGU/OiBPcHRpb25MYWJlbFR5cGU7XG4gIG9wdGlvbkxhYmVsRm9ybWF0dGVyPzogKHJvdykgPT4gc3RyaW5nO1xuICBtYXg/OiBudW1iZXI7XG4gIG1pbj86IG51bWJlcjtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25Gb3JtYXR0ZXI/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uc0FzeW5jPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBQcm9taXNlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jPzogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIG9wdGlvbnNJbml0RnVuYzI/OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IElucHV0VHlwZTtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHZhbHVlPzogYW55O1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBvcHRpb25zRnVuYz86ICguLi52YWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHRyaWdnZXJPbkNoYW5nZU9uSW5pdD86IGJvb2xlYW47XG4gIGZvcm1hdHRlcj86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IGFueSB9LCBmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHN0cmluZztcbiAgZXh0cmE/OiBhbnk7XG4gIG9uQ2hhbmdlRnVuYz86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sIGNlbGxWYWx1ZT86IGFueSwgY29tcG9uZW50PzogQ29tcG9uZW50KSA9PiBPYnNlcnZhYmxlPGFueVtdPiB8IGFueTtcbiAgb25SZW1vdmVGdW5jPzogKHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogVEZvcm1Hcm91cFtLXVsndmFsdWUnXSB9LCBjZWxsPzogYW55LCBjb21wb25lbnQ/OiBDb21wb25lbnQpID0+IGFueTtcbiAgc2VsZWN0ZWRPcHRpb25MYWJlbD86IHN0cmluZztcbiAgc3RhY2tlZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25Nc2c/OiBib29sZWFuO1xuICBkb250Rm9ybWF0QXNJbnB1dD86IGJvb2xlYW47XG4gIHNob3dSZXF1aXJlZFRhZz86IGJvb2xlYW47XG4gIHRhYmxlRm9ybWF0dGVyPzogKHZhbDogYW55KSA9PiBzdHJpbmcgfCB1bmRlZmluZWQgfCBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4gfCBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGljb24/OiBJY29uVHlwZTtcbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUluRSxNQUFNLE9BQWdCLGlCQUFpQjtJQVFyQztRQVBBLGtCQUFhLEdBQUcsTUFBTSxDQUF1QyxFQUFFLENBQUMsQ0FBQztRQUNqRSxlQUFVLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRyxTQUFJLEdBQTBDLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBR3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFUyxlQUFlLENBQUMsT0FBMEI7UUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxNQUFnQztRQUN6RSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxLQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM3Riw0SEFBNEg7UUFDOUgsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsR0FBb0Q7UUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGdCQUFnQixHQUF5QixFQUFFLENBQUM7WUFDbEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUMvRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2pEO2FBQ0Y7WUFDRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixPQUFPLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4uL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IElPYmplY3RMaXRlcmFsLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9idG4vYnRuLm1vZGVsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFRGb3JtR3JvdXAgZXh0ZW5kcyBJT2JqZWN0TGl0ZXJhbCwgVEJhc2VGb3JtU2NoZW1hIGV4dGVuZHMgeyBmaWVsZD86IGFueSB9ID0gYW55PiB7XG4gIGZvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIGZvcm1TY2hlbWEgPSBjb21wdXRlZDxUQmFzZUZvcm1TY2hlbWFbXT4oKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnNldCgoc2NoZW1hcyB8fCBbXSkudG9NYXAoJ2ZpZWxkJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVGb3JtU2NoZW1hKGZpZWxkOiBzdHJpbmcsIHNjaGVtZTogUGFydGlhbDxUQmFzZUZvcm1TY2hlbWE+KSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIHJldHVybiB7IC4uLmZvcm1TY2hlbWFNYXAsIFtmaWVsZCBhcyBhbnldOiAhZXhpc3RpbmcgPyBzY2hlbWUgOiB7IC4uLmV4aXN0aW5nLCAuLi5zY2hlbWUgfSB9O1xuICAgICAgLy8gcmV0dXJuICFzY2ggPyB7IC4uLmZvcm1TY2hlbWFNYXAsIFtmaWVsZCBhcyBhbnldOiBzY2hlbWUgfSA6IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHsgLi4uc2NoLCAuLi5zY2hlbWUgfSB9O1xuICAgIH0pO1xuICB9XG4gIHByb3RlY3RlZCBfdXBkYXRlQWxsRm9ybVNjaGVtYShtYXA6IChmb3JtRmllbGQ6IFRCYXNlRm9ybVNjaGVtYSkgPT4gVEJhc2VGb3JtU2NoZW1hKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3Rm9ybVNjaGVtYU1hcDogdHlwZW9mIGZvcm1TY2hlbWFNYXAgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1TY2hlbWFNYXApIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZXdGb3JtU2NoZW1hTWFwLCBrZXkpKSB7XG4gICAgICAgICAgbmV3Rm9ybVNjaGVtYU1hcFtrZXldID0gbWFwKGZvcm1TY2hlbWFNYXBba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgZGVsZXRlIGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIGNsb25lRGVlcChmb3JtU2NoZW1hTWFwKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlRm9ybVNjaGVtYTxcbiAgVCxcbiAgQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VD4sXG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4+IHtcbiAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbltdO1xuICBhdXRvUGlja1ZhbHVlRmllbGQ/OiBib29sZWFuO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgY2xlYXJPbkRpc2FibGU/OiBib29sZWFuO1xuICBjbHM/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlMz86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBJQmFzZUZvcm1TY2hlbWE8VCwgQ29tcG9uZW50LCBURm9ybUdyb3VwPltdO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgLy8gaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgaXNTZWFyY2hGaWVsZD86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xuICBsYWJlbFR5cGU/OiBPcHRpb25MYWJlbFR5cGU7XG4gIG9wdGlvbkxhYmVsRm9ybWF0dGVyPzogKHJvdykgPT4gc3RyaW5nO1xuICBtYXg/OiBudW1iZXI7XG4gIG1pbj86IG51bWJlcjtcbiAgbm9Gb3JtYXQ/OiBib29sZWFuO1xuICBvcHRpb25Gb3JtYXR0ZXI/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBhbnlbXTtcbiAgb3B0aW9uc0FzeW5jPzogT2JzZXJ2YWJsZTxhbnlbXT4gfCBQcm9taXNlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jPzogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIG9wdGlvbnNJbml0RnVuYzI/OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IElucHV0VHlwZTtcbiAgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW107XG4gIHZhbHVlPzogYW55O1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuICBvcHRpb25zRnVuYz86ICguLi52YWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHRyaWdnZXJPbkNoYW5nZU9uSW5pdD86IGJvb2xlYW47XG4gIGZvcm1hdHRlcj86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IGFueSB9LCBmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHN0cmluZztcbiAgZXh0cmE/OiBhbnk7XG4gIG9uQ2hhbmdlRnVuYz86IChyb3c6IHsgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF0/OiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sIGNlbGxWYWx1ZT86IGFueSwgY29tcG9uZW50PzogQ29tcG9uZW50KSA9PiBPYnNlcnZhYmxlPGFueVtdPiB8IGFueTtcbiAgb25SZW1vdmVGdW5jPzogKHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogVEZvcm1Hcm91cFtLXVsndmFsdWUnXSB9LCBjZWxsPzogYW55LCBjb21wb25lbnQ/OiBDb21wb25lbnQpID0+IGFueTtcbiAgc2VsZWN0ZWRPcHRpb25MYWJlbD86IHN0cmluZztcbiAgc3RhY2tlZD86IGJvb2xlYW47XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25Nc2c/OiBib29sZWFuO1xuICBkb250Rm9ybWF0QXNJbnB1dD86IGJvb2xlYW47XG4gIHNob3dSZXF1aXJlZFRhZz86IGJvb2xlYW47XG4gIHRhYmxlRm9ybWF0dGVyPzogKHZhbDogYW55KSA9PiBzdHJpbmcgfCB1bmRlZmluZWQgfCBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4gfCBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGljb24/OiBJY29uVHlwZTtcbn1cbiJdfQ==
@@ -41,13 +41,12 @@ export class FormGeneratorComponent extends BaseFormGenerator {
41
41
  this.loading = input();
42
42
  this._loading = signal(false);
43
43
  this.computedLoading = computed(() => (this.useLoader() ? this.loading() || this._loading() : false));
44
- this.form = input(undefined, {});
45
44
  this.optionsMap = signal({});
46
- this.formVal = computed(() => this.form()?.getRawValue());
45
+ // formVal = computed(() => this.form?.getRawValue());
47
46
  this.computedFormSchema = computed(() => {
48
- const formVal = this.formVal(), formSchema = this.formSchema() || [], presetValueForSingleOption = this.presetValueForSingleOption(), isCreate = this.isCreate(), ret = [];
47
+ const formSchema = this.formSchema() || [], presetValueForSingleOption = this.presetValueForSingleOption(), isCreate = this.isCreate(), ret = [];
49
48
  formSchema.forEach((scheme) => {
50
- if (!scheme.hidden && (!scheme.hideIfFunc || !scheme.hideIfFunc(formVal))) {
49
+ if (!scheme.hidden) {
51
50
  if (isCreate)
52
51
  scheme.presetValue = scheme.presetValue == null ? presetValueForSingleOption : scheme.presetValue;
53
52
  ret.push(scheme);
@@ -67,14 +66,14 @@ export class FormGeneratorComponent extends BaseFormGenerator {
67
66
  }
68
67
  set _isShow(v) {
69
68
  if (v)
70
- this.form()?.disable({ emitEvent: false });
69
+ this.form?.disable({ emitEvent: false });
71
70
  else
72
- this.form()?.enable();
71
+ this.form?.enable();
73
72
  setTimeout(() => {
74
73
  if (v)
75
- this.form()?.disable({ emitEvent: false });
74
+ this.form?.disable({ emitEvent: false });
76
75
  else
77
- this.form()?.enable();
76
+ this.form?.enable();
78
77
  }, 500);
79
78
  }
80
79
  init(schema) {
@@ -87,7 +86,7 @@ export class FormGeneratorComponent extends BaseFormGenerator {
87
86
  if (schema)
88
87
  for (const scheme of schema)
89
88
  if (scheme.triggerOnChangeOnInit)
90
- scheme.onChangeFunc(this.form().getRawValue(), this.form().getRawValue()[scheme.field?.toString()], this);
89
+ scheme.onChangeFunc(this.form.getRawValue(), this.form.getRawValue()[scheme.field?.toString()], this);
91
90
  }
92
91
  handleFormScheme(scheme) {
93
92
  scheme.id = this.utilityService.generateUUID();
@@ -98,6 +97,8 @@ export class FormGeneratorComponent extends BaseFormGenerator {
98
97
  if (this.formService.config.showValidationMessagesByDefault)
99
98
  if (scheme.autoPickValueField == null && (!scheme.valueField || !scheme.labelField))
100
99
  scheme.autoPickValueField = true;
100
+ if (!this.form.controls[scheme.field])
101
+ debugger;
101
102
  this.updateFormSchema(scheme.field, scheme);
102
103
  if (scheme.optionsInitFunc)
103
104
  this.handleOptionsFetched(scheme, scheme.optionsInitFunc);
@@ -106,10 +107,8 @@ export class FormGeneratorComponent extends BaseFormGenerator {
106
107
  if (scheme.onChangeFunc) {
107
108
  if (scheme.debug)
108
109
  debugger;
109
- this.subs[scheme.field?.toString()] = this.form()
110
- ?.controls[scheme.field?.toString()]?.valueChanges.pipe(debounceTime(0))
111
- .subscribe((r) => {
112
- scheme.onChangeFunc(this.form().getRawValue(), r, this);
110
+ this.subs[scheme.field?.toString()] = this.form?.controls[scheme.field?.toString()]?.valueChanges.pipe(debounceTime(0)).subscribe((r) => {
111
+ scheme.onChangeFunc(this.form.getRawValue(), r, this);
113
112
  });
114
113
  }
115
114
  }
@@ -123,7 +122,7 @@ export class FormGeneratorComponent extends BaseFormGenerator {
123
122
  this.subs[fieldName]?.unsubscribe();
124
123
  }
125
124
  mchangeEmitter() {
126
- this.mchange.emit(this.form().getRawValue());
125
+ this.mchange.emit(this.form.getRawValue());
127
126
  }
128
127
  addToFormSchema(formScheme) {
129
128
  this.removeFromFormSchema(formScheme.field);
@@ -139,7 +138,7 @@ export class FormGeneratorComponent extends BaseFormGenerator {
139
138
  this.detachFormScheme(fieldName);
140
139
  const onRemove = this.formSchemaMap()[fieldName]?.onRemoveFunc;
141
140
  if (onRemove)
142
- onRemove(this.form().getRawValue(), this.form().controls[fieldName], this);
141
+ onRemove(this.form.getRawValue(), this.form.controls[fieldName], this);
143
142
  this._removeFormSchema(fieldName);
144
143
  }
145
144
  setOptionLabel($event, scheme) {
@@ -149,7 +148,7 @@ export class FormGeneratorComponent extends BaseFormGenerator {
149
148
  if (this.submitFunc) {
150
149
  btn?.setLoader(true);
151
150
  this._loading.set(true);
152
- const formVal = this.formVal();
151
+ const formVal = this.form.getRawValue();
153
152
  this.onSubmit.emit(formVal);
154
153
  try {
155
154
  this.submissionResponse = await this.submitFunc(formVal);
@@ -163,10 +162,10 @@ export class FormGeneratorComponent extends BaseFormGenerator {
163
162
  btn?.setLoader(false);
164
163
  }
165
164
  else
166
- this.onSubmit.emit(this.formVal());
165
+ this.onSubmit.emit(this.form.getRawValue());
167
166
  }
168
167
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratorComponent, isStandalone: true, selector: "form-generator", inputs: { keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: false, isRequired: false, transformFunction: null }, presetValueForSingleOption: { classPropertyName: "presetValueForSingleOption", publicName: "presetValueForSingleOption", isSignal: true, isRequired: false, transformFunction: null }, isCreate: { classPropertyName: "isCreate", publicName: "isCreate", isSignal: true, isRequired: false, transformFunction: null }, submitFunc: { classPropertyName: "submitFunc", publicName: "submitFunc", isSignal: false, isRequired: false, transformFunction: null }, submitBtnText: { classPropertyName: "submitBtnText", publicName: "submitBtnText", isSignal: true, isRequired: false, transformFunction: null }, submitBtnTemplate: { classPropertyName: "submitBtnTemplate", publicName: "submitBtnTemplate", isSignal: true, isRequired: false, transformFunction: null }, submitSuccessText: { classPropertyName: "submitSuccessText", publicName: "submitSuccessText", isSignal: true, isRequired: false, transformFunction: null }, showSubmitBtn: { classPropertyName: "showSubmitBtn", publicName: "showSubmitBtn", isSignal: true, isRequired: false, transformFunction: null }, gridStyle: { classPropertyName: "gridStyle", publicName: "gridStyle", isSignal: true, isRequired: false, transformFunction: null }, gridMDStyle: { classPropertyName: "gridMDStyle", publicName: "gridMDStyle", isSignal: true, isRequired: false, transformFunction: null }, gridLGStyle: { classPropertyName: "gridLGStyle", publicName: "gridLGStyle", isSignal: true, isRequired: false, transformFunction: null }, gridXXLStyle: { classPropertyName: "gridXXLStyle", publicName: "gridXXLStyle", isSignal: true, isRequired: false, transformFunction: null }, formGridClass: { classPropertyName: "formGridClass", publicName: "formGridClass", isSignal: true, isRequired: false, transformFunction: null }, useLoader: { classPropertyName: "useLoader", publicName: "useLoader", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, _formSchema: { classPropertyName: "_formSchema", publicName: "formSchema", isSignal: false, isRequired: true, transformFunction: null }, _isShow: { classPropertyName: "_isShow", publicName: "isShow", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSubmit: "onSubmit", mchange: "mchange", _submissionResponse: "submissionResponse" }, usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form()\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" actionType=\"submit\" group=\"submit\" [form]=\"form()\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionsFunc", "theme", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: RichTextEditorRFComponent, selector: "rich-text-editor-rf" }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratorComponent, isStandalone: true, selector: "form-generator", inputs: { keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: false, isRequired: false, transformFunction: null }, presetValueForSingleOption: { classPropertyName: "presetValueForSingleOption", publicName: "presetValueForSingleOption", isSignal: true, isRequired: false, transformFunction: null }, isCreate: { classPropertyName: "isCreate", publicName: "isCreate", isSignal: true, isRequired: false, transformFunction: null }, submitFunc: { classPropertyName: "submitFunc", publicName: "submitFunc", isSignal: false, isRequired: false, transformFunction: null }, submitBtnText: { classPropertyName: "submitBtnText", publicName: "submitBtnText", isSignal: true, isRequired: false, transformFunction: null }, submitBtnTemplate: { classPropertyName: "submitBtnTemplate", publicName: "submitBtnTemplate", isSignal: true, isRequired: false, transformFunction: null }, submitSuccessText: { classPropertyName: "submitSuccessText", publicName: "submitSuccessText", isSignal: true, isRequired: false, transformFunction: null }, showSubmitBtn: { classPropertyName: "showSubmitBtn", publicName: "showSubmitBtn", isSignal: true, isRequired: false, transformFunction: null }, gridStyle: { classPropertyName: "gridStyle", publicName: "gridStyle", isSignal: true, isRequired: false, transformFunction: null }, gridMDStyle: { classPropertyName: "gridMDStyle", publicName: "gridMDStyle", isSignal: true, isRequired: false, transformFunction: null }, gridLGStyle: { classPropertyName: "gridLGStyle", publicName: "gridLGStyle", isSignal: true, isRequired: false, transformFunction: null }, gridXXLStyle: { classPropertyName: "gridXXLStyle", publicName: "gridXXLStyle", isSignal: true, isRequired: false, transformFunction: null }, formGridClass: { classPropertyName: "formGridClass", publicName: "formGridClass", isSignal: true, isRequired: false, transformFunction: null }, useLoader: { classPropertyName: "useLoader", publicName: "useLoader", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, _formSchema: { classPropertyName: "_formSchema", publicName: "formSchema", isSignal: false, isRequired: true, transformFunction: null }, _isShow: { classPropertyName: "_isShow", publicName: "isShow", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSubmit: "onSubmit", mchange: "mchange", _submissionResponse: "submissionResponse" }, usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" actionType=\"submit\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionsFunc", "theme", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: RichTextEditorRFComponent, selector: "rich-text-editor-rf" }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
170
169
  }
171
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratorComponent, decorators: [{
172
171
  type: Component,
@@ -184,7 +183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
184
183
  BtnComponent,
185
184
  FunctionCaller2,
186
185
  ToAnyPipe,
187
- ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form()\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form()\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form().value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" actionType=\"submit\" group=\"submit\" [form]=\"form()\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n" }]
186
+ ], template: "<loader [loading]=\"computedLoading()\">\n <form>\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.field) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" actionType=\"submit\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n" }]
188
187
  }], propDecorators: { keyField: [{
189
188
  type: Input
190
189
  }], onSubmit: [{
@@ -196,6 +195,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
196
195
  args: ['submissionResponse']
197
196
  }], submitFunc: [{
198
197
  type: Input
198
+ }], form: [{
199
+ type: Input
199
200
  }], _formSchema: [{
200
201
  type: Input,
201
202
  args: [{ required: true, alias: 'formSchema' }]
@@ -203,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
203
204
  type: Input,
204
205
  args: ['isShow']
205
206
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQThCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQVcsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFN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Q2hCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsU0FBUztxQkFDVjs4QkFNUSxRQUFRO3NCQUFoQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDdUIsbUJBQW1CO3NCQUFoRCxNQUFNO3VCQUFDLG9CQUFvQjtnQkFDbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFxQjhDLFdBQVc7c0JBQTlELEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBR3pCLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbGFzdCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIyLCBUb0FueVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1YlR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCB9IGZyb20gJy4uL3JpY2gtdGV4dC1lZGl0b3ItcmYvcmljaC10ZXh0LWVkaXRvci1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEZvcm0gc2hvdWxkIGJlIHNldCBiZWZvcmUgdGhlIHRoZSBmb3JtU2NoZW1hXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgRnVuY3Rpb25DYWxsZXIyLFxuICAgIFRvQW55UGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxURm9ybUdyb3VwIGV4dGVuZHMgeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB9PiBleHRlbmRzIEJhc2VGb3JtR2VuZXJhdG9yPFxuICBURm9ybUdyb3VwLFxuICBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPlxuPiB7XG4gIEBJbnB1dCgpIGtleUZpZWxkOiAnZmllbGQnIHwgJ2xhYmVsJyA9ICdmaWVsZCc7XG4gIHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uID0gaW5wdXQoZmFsc2UpO1xuICBpc0NyZWF0ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBtY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3N1Ym1pc3Npb25SZXNwb25zZScpIF9zdWJtaXNzaW9uUmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc3VibWl0RnVuYzogKHZhbHVlOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgc3VibWl0QnRuVGV4dCA9IGlucHV0KCdTdWJtaXQnKTtcbiAgc3VibWl0QnRuVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBzdWJtaXRTdWNjZXNzVGV4dCA9IGlucHV0KCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgc2hvd1N1Ym1pdEJ0biA9IGlucHV0KHRydWUpO1xuXG4gIGdyaWRTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZE1EU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRMR1N0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkWFhMU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG5cbiAgZm9ybUdyaWRDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlTG9hZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgX2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbXB1dGVkTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnVzZUxvYWRlcigpID8gdGhpcy5sb2FkaW5nKCkgfHwgdGhpcy5fbG9hZGluZygpIDogZmFsc2UpKTtcblxuICBmb3JtID0gaW5wdXQ8Rm9ybUdyb3VwPFRGb3JtR3JvdXA+Pih1bmRlZmluZWQsIHt9KTtcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm1TY2hlbWEnIH0pIHNldCBfZm9ybVNjaGVtYSh2OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgdGhpcy5pbml0KGNsb25lRGVlcCh2LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuICBASW5wdXQoJ2lzU2hvdycpIHNldCBfaXNTaG93KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5mb3JtKCk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIGVsc2UgdGhpcy5mb3JtKCk/LmVuYWJsZSgpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodikgdGhpcy5mb3JtKCk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSB0aGlzLmZvcm0oKT8uZW5hYmxlKCk7XG4gICAgfSwgNTAwKTtcbiAgfVxuICBvcHRpb25zTWFwID0gc2lnbmFsPElGb3JtT3B0aW9ucz4oe30pO1xuICBmb3JtVmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtKCk/LmdldFJhd1ZhbHVlKCkpO1xuXG4gIGNvbXB1dGVkRm9ybVNjaGVtYSA9IGNvbXB1dGVkPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10+KCgpID0+IHtcbiAgICBjb25zdCBmb3JtVmFsID0gdGhpcy5mb3JtVmFsKCksXG4gICAgICBmb3JtU2NoZW1hID0gdGhpcy5mb3JtU2NoZW1hKCkgfHwgW10sXG4gICAgICBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA9IHRoaXMucHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24oKSxcbiAgICAgIGlzQ3JlYXRlID0gdGhpcy5pc0NyZWF0ZSgpLFxuICAgICAgcmV0OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdID0gW107XG4gICAgZm9ybVNjaGVtYS5mb3JFYWNoKChzY2hlbWUpID0+IHtcbiAgICAgIGlmICghc2NoZW1lLmhpZGRlbiAmJiAoIXNjaGVtZS5oaWRlSWZGdW5jIHx8ICFzY2hlbWUuaGlkZUlmRnVuYyhmb3JtVmFsKSkpIHtcbiAgICAgICAgaWYgKGlzQ3JlYXRlKSBzY2hlbWUucHJlc2V0VmFsdWUgPSBzY2hlbWUucHJlc2V0VmFsdWUgPT0gbnVsbCA/IHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uIDogc2NoZW1lLnByZXNldFZhbHVlO1xuICAgICAgICByZXQucHVzaChzY2hlbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXQ7XG4gIH0pO1xuICAvLyBtaXNjSW5kZXg6IFRNaXNjSW5kZXg7XG4gIHB1YmxpYyBmb3JtU2VydmljZSA9IGluamVjdChGb3JtR2VuZXJhdG9yU2VydmljZSk7XG5cbiAgaW5pdChzY2hlbWE6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIHRoaXMuX3NldEZvcm1TY2hlbWFzKHNjaGVtYSB8fCBbXSk7XG4gICAgaWYgKHNjaGVtYSkgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBpZiAoc2NoZW1hKVxuICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKVxuICAgICAgICBpZiAoc2NoZW1lLnRyaWdnZXJPbkNoYW5nZU9uSW5pdCkgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0oKS5nZXRSYXdWYWx1ZSgpLCB0aGlzLmZvcm0oKS5nZXRSYXdWYWx1ZSgpW3NjaGVtZS5maWVsZD8udG9TdHJpbmcoKV0sIHRoaXMpO1xuICB9XG5cbiAgaGFuZGxlRm9ybVNjaGVtZShzY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgc2NoZW1lLmlkID0gdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKTtcbiAgICBpZiAoc2NoZW1lLnN0YWNrZWQgPT0gbnVsbCkgc2NoZW1lLnN0YWNrZWQgPSB0cnVlO1xuICAgIGlmIChzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2cgPT0gbnVsbCkgc2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb3JtU2VydmljZS5jb25maWcuc2hvd1ZhbGlkYXRpb25NZXNzYWdlc0J5RGVmYXVsdClcbiAgICAgIGlmIChzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkID09IG51bGwgJiYgKCFzY2hlbWUudmFsdWVGaWVsZCB8fCAhc2NoZW1lLmxhYmVsRmllbGQpKSBzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCBzY2hlbWUpO1xuXG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jKTtcbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jMigpKTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgaWYgKHNjaGVtZS5kZWJ1ZykgZGVidWdnZXI7XG4gICAgICB0aGlzLnN1YnNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSA9IHRoaXMuZm9ybSgpXG4gICAgICAgID8uY29udHJvbHNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXT8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDApKVxuICAgICAgICAuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgICAgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0oKS5nZXRSYXdWYWx1ZSgpLCByLCB0aGlzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wdGlvbnNGZXRjaGVkKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4sIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueVtdPikge1xuICAgIG9wdGlvbnMkLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgdGhpcy51cGRhdGVGb3JtU2NoZW1hKHNjaGVtZS5maWVsZCwgeyBvcHRpb25zOiByIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWU/OiBrZXlvZiBURm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zdWJzW2ZpZWxkTmFtZSBhcyBzdHJpbmddPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1jaGFuZ2VFbWl0dGVyKCkge1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KHRoaXMuZm9ybSgpLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgZ2V0Rm9ybVNjaGVtZSA9IChmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ107XG4gIH07XG5cbiAgYWRkVG9Gb3JtU2NoZW1hKGZvcm1TY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgdGhpcy5yZW1vdmVGcm9tRm9ybVNjaGVtYShmb3JtU2NoZW1lLmZpZWxkKTtcbiAgICB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoZm9ybVNjaGVtZSk7XG4gIH1cblxuICB1cGRhdGVGb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCwgc2NoZW1lOiBQYXJ0aWFsPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+Pikge1xuICAgIHJldHVybiBzdXBlci5fdXBkYXRlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nLCBzY2hlbWUpO1xuICB9XG4gIHVwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikgPT4gSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICByZXR1cm4gc3VwZXIuX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21Gb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkge1xuICAgIHRoaXMuZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWUpO1xuICAgIGNvbnN0IG9uUmVtb3ZlID0gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ10/Lm9uUmVtb3ZlRnVuYztcbiAgICBpZiAob25SZW1vdmUpIG9uUmVtb3ZlKHRoaXMuZm9ybSgpLmdldFJhd1ZhbHVlKCkgYXMgYW55LCB0aGlzLmZvcm0oKS5jb250cm9sc1tmaWVsZE5hbWUgYXMgYW55XSwgdGhpcyk7XG4gICAgdGhpcy5fcmVtb3ZlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRPcHRpb25MYWJlbCgkZXZlbnQ6IGFueSwgc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikge1xuICAgIHNjaGVtZS5zZWxlY3RlZE9wdGlvbkxhYmVsID0gJGV2ZW50O1xuICB9XG5cbiAgYXN5bmMgc3VibWl0KGJ0bj86IEJ0bkNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdEZ1bmMpIHtcbiAgICAgIGJ0bj8uc2V0TG9hZGVyKHRydWUpO1xuICAgICAgdGhpcy5fbG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICBjb25zdCBmb3JtVmFsID0gdGhpcy5mb3JtVmFsKCk7XG4gICAgICB0aGlzLm9uU3VibWl0LmVtaXQoZm9ybVZhbCk7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnN1Ym1pc3Npb25SZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0RnVuYyhmb3JtVmFsKTtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKHRoaXMuc3VibWl0U3VjY2Vzc1RleHQoKSwgMSk7XG4gICAgICAgIHRoaXMuX3N1Ym1pc3Npb25SZXNwb25zZS5lbWl0KHRoaXMuc3VibWlzc2lvblJlc3BvbnNlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaW5mbyhlcnJvciwgMCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICBidG4/LnNldExvYWRlcihmYWxzZSk7XG4gICAgfSBlbHNlIHRoaXMub25TdWJtaXQuZW1pdCh0aGlzLmZvcm1WYWwoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNjaGVtYTxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4gZXh0ZW5kcyBJQmFzZUZvcm1TY2hlbWE8VEZvcm1Hcm91cCwgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxURm9ybUdyb3VwPj4ge1xuICBjaGlsZHJlbj86IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W107XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgZmllbGQ6IGtleW9mIFRGb3JtR3JvdXA7XG4gIHN1YlR5cGU/OiBJbnB1dFN1YlR5cGU7XG4gIHByZXNldFZhbHVlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TY2hlbWEyPFRTdHJ1Y3QgPSBhbnk+XG4gIGV4dGVuZHMgSUZvcm1TY2hlbWE8e1xuICAgIFtLIGluIGtleW9mIFRTdHJ1Y3RdPzogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfT4ge31cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybU9wdGlvbnMge1xuICBbZmllbGQ6IHN0cmluZ106IGFueTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwiY29tcHV0ZWRMb2FkaW5nKClcIj5cbiAgPGZvcm0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuZmllbGQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm0oKVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdFwiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1Z1wiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvblwiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgW2NvdW50cnlDb2RlM109XCJzY2hlbWUuY291bnRyeUNvZGUzXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkIHx8IChzY2hlbWUuZGlzYWJsZWRJZiB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybSgpLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKHNjaGVtZS50eXBlID09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgIDxhcHAtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0oKS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAncmljaHRleHQnKSB7XG4gICAgICAgICAgICAgIDxyaWNoLXRleHQtZWRpdG9yLXJmXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsIVwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZSFcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXQhXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgKG1TZWxlY3RlZE9wdGlvbkxhYmVsKT1cInNldE9wdGlvbkxhYmVsKCRldmVudCwgc2NoZW1lKVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnIVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnIVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyIVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc0Z1bmNdPVwic2NoZW1lLm9wdGlvbnNGdW5jIVwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcCgpW3NjaGVtZS5maWVsZCB8IHRvQW55XVwiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwic2NoZW1lLmhpbnQhXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkIHx8IChzY2hlbWUuZGlzYWJsZWRJZiEgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0oKS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybSgpXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJzY2hlbWUudHlwZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZFNpZ25hbF09XCJzY2hlbWUuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cIiEhc2NoZW1lLmFzeW5jVmFsaWRhdG9yc1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25Gb3JtYXR0ZXJdPVwic2NoZW1lLm9wdGlvbkZvcm1hdHRlclwiXG4gICAgICAgICAgICAgICAgKG1TZWxlY3RlZE9wdGlvbkxhYmVsKT1cInNldE9wdGlvbkxhYmVsKCRldmVudCwgc2NoZW1lKVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgb3B0aW9uc01hcCgpW3NjaGVtZS5maWVsZCB8IHRvQW55XVwiXG4gICAgICAgICAgICAgICAgW2RlY2ltYWxQb2ludHNdPVwic2NoZW1lLmRlY2ltYWxQb2ludHNcIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cInNjaGVtZS5oaW50XCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cInNjaGVtZS5tYXhcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwic2NoZW1lLm1pblwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNjaGVtZS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0oKS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtYXV0byBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIEBpZiAoc2hvd1N1Ym1pdEJ0bigpKSB7XG4gICAgICAgICAgPGFwcC1idG4gW3RleHRdPVwic3VibWl0QnRuVGV4dCgpXCIgYWN0aW9uVHlwZT1cInN1Ym1pdFwiIGdyb3VwPVwic3VibWl0XCIgW2Zvcm1dPVwiZm9ybSgpXCIgKG1jbGljayk9XCJzdWJtaXQoc3VibWl0QnRuKVwiICNzdWJtaXRCdG4gLz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN1Ym1pdEJ0blRlbXBsYXRlKCkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWl0QnRuVGVtcGxhdGUoKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9sb2FkZXI+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQThCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQVcsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFN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Z0JBbUJHLElBQUk7c0JBQVosS0FBSztnQkFFOEMsV0FBVztzQkFBOUQsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFHekIsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBsYXN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGxlcjIsIFRvQW55UGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50LCBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaG9uZU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0U3ViVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBSaWNoVGV4dEVkaXRvclJGQ29tcG9uZW50IH0gZnJvbSAnLi4vcmljaC10ZXh0LWVkaXRvci1yZi9yaWNoLXRleHQtZWRpdG9yLXJmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUdlbmVyYXRvciwgSUJhc2VGb3JtU2NoZW1hIH0gZnJvbSAnLi9mb3JtLWdlbmVyYXRvci5iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogRm9ybSBzaG91bGQgYmUgc2V0IGJlZm9yZSB0aGUgdGhlIGZvcm1TY2hlbWFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybS1nZW5lcmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQaG9uZU51bWJlckNvbXBvbmVudCxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBSaWNoVGV4dEVkaXRvclJGQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgVG9BbnlQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXAgZXh0ZW5kcyB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IH0+IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8XG4gIFRGb3JtR3JvdXAsXG4gIElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+XG4+IHtcbiAgQElucHV0KCkga2V5RmllbGQ6ICdmaWVsZCcgfCAnbGFiZWwnID0gJ2ZpZWxkJztcbiAgcHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24gPSBpbnB1dChmYWxzZSk7XG4gIGlzQ3JlYXRlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG1jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnc3VibWlzc2lvblJlc3BvbnNlJykgX3N1Ym1pc3Npb25SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzdWJtaXRGdW5jOiAodmFsdWU6IGFueSkgPT4gUHJvbWlzZTxhbnk+O1xuICBzdWJtaXRCdG5UZXh0ID0gaW5wdXQoJ1N1Ym1pdCcpO1xuICBzdWJtaXRCdG5UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHN1Ym1pdFN1Y2Nlc3NUZXh0ID0gaW5wdXQoJ1NhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICBzaG93U3VibWl0QnRuID0gaW5wdXQodHJ1ZSk7XG5cbiAgZ3JpZFN0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkTURTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZExHU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRYWExTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcblxuICBmb3JtR3JpZENsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICB1c2VMb2FkZXIgPSBpbnB1dDxib29sZWFuPigpO1xuICBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICBfbG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29tcHV0ZWRMb2FkaW5nID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudXNlTG9hZGVyKCkgPyB0aGlzLmxvYWRpbmcoKSB8fCB0aGlzLl9sb2FkaW5nKCkgOiBmYWxzZSkpO1xuXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm1TY2hlbWEnIH0pIHNldCBfZm9ybVNjaGVtYSh2OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgdGhpcy5pbml0KGNsb25lRGVlcCh2LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuICBASW5wdXQoJ2lzU2hvdycpIHNldCBfaXNTaG93KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5mb3JtPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBlbHNlIHRoaXMuZm9ybT8uZW5hYmxlKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLmZvcm0/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSB0aGlzLmZvcm0/LmVuYWJsZSgpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgb3B0aW9uc01hcCA9IHNpZ25hbDxJRm9ybU9wdGlvbnM+KHt9KTtcbiAgLy8gZm9ybVZhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XG5cbiAgY29tcHV0ZWRGb3JtU2NoZW1hID0gY29tcHV0ZWQ8SUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmZvcm1TY2hlbWEoKSB8fCBbXSxcbiAgICAgIHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uID0gdGhpcy5wcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbigpLFxuICAgICAgaXNDcmVhdGUgPSB0aGlzLmlzQ3JlYXRlKCksXG4gICAgICByZXQ6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10gPSBbXTtcbiAgICBmb3JtU2NoZW1hLmZvckVhY2goKHNjaGVtZSkgPT4ge1xuICAgICAgaWYgKCFzY2hlbWUuaGlkZGVuKSB7XG4gICAgICAgIGlmIChpc0NyZWF0ZSkgc2NoZW1lLnByZXNldFZhbHVlID0gc2NoZW1lLnByZXNldFZhbHVlID09IG51bGwgPyBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA6IHNjaGVtZS5wcmVzZXRWYWx1ZTtcbiAgICAgICAgcmV0LnB1c2goc2NoZW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbiAgLy8gbWlzY0luZGV4OiBUTWlzY0luZGV4O1xuICBwdWJsaWMgZm9ybVNlcnZpY2UgPSBpbmplY3QoRm9ybUdlbmVyYXRvclNlcnZpY2UpO1xuXG4gIGluaXQoc2NoZW1hOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgdGhpcy5vbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9zZXRGb3JtU2NoZW1hcyhzY2hlbWEgfHwgW10pO1xuICAgIGlmIChzY2hlbWEpIGZvciAoY29uc3Qgc2NoZW1lIG9mIHNjaGVtYSkgdGhpcy5oYW5kbGVGb3JtU2NoZW1lKHNjaGVtZSk7XG4gICAgaWYgKHNjaGVtYSlcbiAgICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIHNjaGVtYSlcbiAgICAgICAgaWYgKHNjaGVtZS50cmlnZ2VyT25DaGFuZ2VPbkluaXQpIHNjaGVtZS5vbkNoYW5nZUZ1bmModGhpcy5mb3JtLmdldFJhd1ZhbHVlKCksIHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpW3NjaGVtZS5maWVsZD8udG9TdHJpbmcoKV0sIHRoaXMpO1xuICB9XG5cbiAgaGFuZGxlRm9ybVNjaGVtZShzY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgc2NoZW1lLmlkID0gdGhpcy51dGlsaXR5U2VydmljZS5nZW5lcmF0ZVVVSUQoKTtcbiAgICBpZiAoc2NoZW1lLnN0YWNrZWQgPT0gbnVsbCkgc2NoZW1lLnN0YWNrZWQgPSB0cnVlO1xuICAgIGlmIChzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2cgPT0gbnVsbCkgc2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb3JtU2VydmljZS5jb25maWcuc2hvd1ZhbGlkYXRpb25NZXNzYWdlc0J5RGVmYXVsdClcbiAgICAgIGlmIChzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkID09IG51bGwgJiYgKCFzY2hlbWUudmFsdWVGaWVsZCB8fCAhc2NoZW1lLmxhYmVsRmllbGQpKSBzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuZm9ybS5jb250cm9sc1tzY2hlbWUuZmllbGQgYXMgYW55XSkgZGVidWdnZXI7XG4gICAgdGhpcy51cGRhdGVGb3JtU2NoZW1hKHNjaGVtZS5maWVsZCwgc2NoZW1lKTtcblxuICAgIGlmIChzY2hlbWUub3B0aW9uc0luaXRGdW5jKSB0aGlzLmhhbmRsZU9wdGlvbnNGZXRjaGVkKHNjaGVtZSwgc2NoZW1lLm9wdGlvbnNJbml0RnVuYyk7XG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMyKSB0aGlzLmhhbmRsZU9wdGlvbnNGZXRjaGVkKHNjaGVtZSwgc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIoKSk7XG4gICAgaWYgKHNjaGVtZS5vbkNoYW5nZUZ1bmMpIHtcbiAgICAgIGlmIChzY2hlbWUuZGVidWcpIGRlYnVnZ2VyO1xuICAgICAgdGhpcy5zdWJzW3NjaGVtZS5maWVsZD8udG9TdHJpbmcoKV0gPSB0aGlzLmZvcm0/LmNvbnRyb2xzW3NjaGVtZS5maWVsZD8udG9TdHJpbmcoKV0/LnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgwKSkuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIHNjaGVtZS5vbkNoYW5nZUZ1bmModGhpcy5mb3JtLmdldFJhd1ZhbHVlKCksIHIsIHRoaXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wdGlvbnNGZXRjaGVkKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4sIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueVtdPikge1xuICAgIG9wdGlvbnMkLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgdGhpcy51cGRhdGVGb3JtU2NoZW1hKHNjaGVtZS5maWVsZCwgeyBvcHRpb25zOiByIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWU/OiBrZXlvZiBURm9ybUdyb3VwKSB7XG4gICAgdGhpcy5zdWJzW2ZpZWxkTmFtZSBhcyBzdHJpbmddPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1jaGFuZ2VFbWl0dGVyKCkge1xuICAgIHRoaXMubWNoYW5nZS5lbWl0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIGdldEZvcm1TY2hlbWUgPSAoZmllbGROYW1lOiBrZXlvZiBURm9ybUdyb3VwKSA9PiB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjaGVtYU1hcCgpW2ZpZWxkTmFtZSBhcyBzdHJpbmddO1xuICB9O1xuXG4gIGFkZFRvRm9ybVNjaGVtYShmb3JtU2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikge1xuICAgIHRoaXMucmVtb3ZlRnJvbUZvcm1TY2hlbWEoZm9ybVNjaGVtZS5maWVsZCk7XG4gICAgdGhpcy5oYW5kbGVGb3JtU2NoZW1lKGZvcm1TY2hlbWUpO1xuICB9XG5cbiAgdXBkYXRlRm9ybVNjaGVtYShmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXAsIHNjaGVtZTogUGFydGlhbDxJRm9ybVNjaGVtYTxURm9ybUdyb3VwPj4pIHtcbiAgICByZXR1cm4gc3VwZXIuX3VwZGF0ZUZvcm1TY2hlbWEoZmllbGROYW1lIGFzIHN0cmluZywgc2NoZW1lKTtcbiAgfVxuICB1cGRhdGVBbGxGb3JtU2NoZW1hKG1hcDogKGZvcm1GaWVsZDogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pID0+IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgcmV0dXJuIHN1cGVyLl91cGRhdGVBbGxGb3JtU2NoZW1hKG1hcCk7XG4gIH1cblxuICByZW1vdmVGcm9tRm9ybVNjaGVtYShmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApIHtcbiAgICB0aGlzLmRldGFjaEZvcm1TY2hlbWUoZmllbGROYW1lKTtcbiAgICBjb25zdCBvblJlbW92ZSA9IHRoaXMuZm9ybVNjaGVtYU1hcCgpW2ZpZWxkTmFtZSBhcyBzdHJpbmddPy5vblJlbW92ZUZ1bmM7XG4gICAgaWYgKG9uUmVtb3ZlKSBvblJlbW92ZSh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBhbnksIHRoaXMuZm9ybS5jb250cm9sc1tmaWVsZE5hbWUgYXMgYW55XSwgdGhpcyk7XG4gICAgdGhpcy5fcmVtb3ZlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRPcHRpb25MYWJlbCgkZXZlbnQ6IGFueSwgc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikge1xuICAgIHNjaGVtZS5zZWxlY3RlZE9wdGlvbkxhYmVsID0gJGV2ZW50O1xuICB9XG5cbiAgYXN5bmMgc3VibWl0KGJ0bj86IEJ0bkNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdEZ1bmMpIHtcbiAgICAgIGJ0bj8uc2V0TG9hZGVyKHRydWUpO1xuICAgICAgdGhpcy5fbG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICBjb25zdCBmb3JtVmFsID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICB0aGlzLm9uU3VibWl0LmVtaXQoZm9ybVZhbCk7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnN1Ym1pc3Npb25SZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0RnVuYyhmb3JtVmFsKTtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKHRoaXMuc3VibWl0U3VjY2Vzc1RleHQoKSwgMSk7XG4gICAgICAgIHRoaXMuX3N1Ym1pc3Npb25SZXNwb25zZS5lbWl0KHRoaXMuc3VibWlzc2lvblJlc3BvbnNlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaW5mbyhlcnJvciwgMCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICBidG4/LnNldExvYWRlcihmYWxzZSk7XG4gICAgfSBlbHNlIHRoaXMub25TdWJtaXQuZW1pdCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNjaGVtYTxcbiAgVEZvcm1Hcm91cCBleHRlbmRzIHtcbiAgICBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfSA9IGFueSxcbj4gZXh0ZW5kcyBJQmFzZUZvcm1TY2hlbWE8VEZvcm1Hcm91cCwgRm9ybUdlbmVyYXRvckNvbXBvbmVudDxURm9ybUdyb3VwPj4ge1xuICBjaGlsZHJlbj86IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W107XG4gIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZTtcbiAgZmllbGQ6IGtleW9mIFRGb3JtR3JvdXA7XG4gIHN1YlR5cGU/OiBJbnB1dFN1YlR5cGU7XG4gIHByZXNldFZhbHVlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1TY2hlbWEyPFRTdHJ1Y3QgPSBhbnk+XG4gIGV4dGVuZHMgSUZvcm1TY2hlbWE8e1xuICAgIFtLIGluIGtleW9mIFRTdHJ1Y3RdPzogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgfT4ge31cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybU9wdGlvbnMge1xuICBbZmllbGQ6IHN0cmluZ106IGFueTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwiY29tcHV0ZWRMb2FkaW5nKClcIj5cbiAgPGZvcm0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuZmllbGQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybSB8fCBmb3JtXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ3JpY2h0ZXh0Jykge1xuICAgICAgICAgICAgICA8cmljaC10ZXh0LWVkaXRvci1yZlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWwhXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlIVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdCFcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWchXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWchXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXIhXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmMhXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludCFcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmISB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybVwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwic2NoZW1lLnR5cGVcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cInNjaGVtZS52YWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXRWYWx1ZV09XCJzY2hlbWUucHJlc2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRTaWduYWxdPVwic2NoZW1lLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwiISFzY2hlbWUuYXN5bmNWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXJcIlxuICAgICAgICAgICAgICAgIChtU2VsZWN0ZWRPcHRpb25MYWJlbCk9XCJzZXRPcHRpb25MYWJlbCgkZXZlbnQsIHNjaGVtZSlcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaGVtZS5vcHRpb25zIHx8IG9wdGlvbnNNYXAoKVtzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgIFtkZWNpbWFsUG9pbnRzXT1cInNjaGVtZS5kZWNpbWFsUG9pbnRzXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW21heF09XCJzY2hlbWUubWF4XCJcbiAgICAgICAgICAgICAgICBbbWluXT1cInNjaGVtZS5taW5cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzY2hlbWUucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1hdXRvIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgQGlmIChzaG93U3VibWl0QnRuKCkpIHtcbiAgICAgICAgICA8YXBwLWJ0biBbdGV4dF09XCJzdWJtaXRCdG5UZXh0KClcIiBhY3Rpb25UeXBlPVwic3VibWl0XCIgZ3JvdXA9XCJzdWJtaXRcIiBbZm9ybV09XCJmb3JtXCIgKG1jbGljayk9XCJzdWJtaXQoc3VibWl0QnRuKVwiICNzdWJtaXRCdG4gLz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN1Ym1pdEJ0blRlbXBsYXRlKCkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWl0QnRuVGVtcGxhdGUoKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9sb2FkZXI+XG4iXX0=