@acorex/components 6.5.53 → 6.5.55

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.
@@ -14,7 +14,8 @@ import * as i7 from "../../validation/validation-rule.widget";
14
14
  import * as i8 from "../../selectbox/selectbox.component";
15
15
  import * as i9 from "../../data-source/datasource.component";
16
16
  import * as i10 from "../../number-box/number-box.component";
17
- import * as i11 from "@angular/common";
17
+ import * as i11 from "../../date-picker/date-picker.component";
18
+ import * as i12 from "@angular/common";
18
19
  export class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {
19
20
  constructor(toast) {
20
21
  super();
@@ -160,12 +161,12 @@ export class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {
160
161
  }
161
162
  }
162
163
  AXQueryBuilderPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderPopupComponent, deps: [{ token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
163
- AXQueryBuilderPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datePicker'\">\n\n\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>", components: [{ type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i4.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { type: i8.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i9.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i10.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }], directives: [{ type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i11.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i11.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
164
+ AXQueryBuilderPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXQueryBuilderPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event,rule)\">\n </ax-date-picker>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>\n", components: [{ type: i2.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { type: i3.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { type: i4.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { type: i8.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { type: i9.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { type: i10.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }, { type: i11.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }], directives: [{ type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i12.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i12.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
164
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXQueryBuilderPopupComponent, decorators: [{
165
166
  type: Component,
166
- args: [{ template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datePicker'\">\n\n\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>" }]
167
+ args: [{ template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event,rule)\">\n </ax-date-picker>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>\n" }]
167
168
  }], ctorParameters: function () { return [{ type: i1.AXToastService }]; }, propDecorators: { form: [{
168
169
  type: ViewChild,
169
170
  args: [AXValidationFormComponent]
170
171
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1wb3B1cC9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUt2RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBRXRFLFlBQW9CLEtBQXFCO1FBQ3JDLEtBQUssRUFBRSxDQUFDO1FBRFEsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFJekMsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFFakMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFtRjlCLG1CQUFjLEdBQUcsQ0FBQyxDQUF5QixFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMs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QUMxQix5QkFBeUIsdUVDZHhDLHFoSkFpRk07NEZEcEVPLDRCQUE0QjtrQkFKeEMsU0FBUzs7cUdBS2dDLElBQUk7c0JBQXpDLFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25JdGVtLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtcGFnZS5jbGFzcyc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJQb3B1cCwgQVhRdWVyeUJ1aWxkZXJSdWxlIH0gZnJvbSAnLi4vcXVlcnktYnVpbGRlci5jbGFzcyc7XG5cbmltcG9ydCB7IEFYRGF0YVNvdXJjZVJlYWRQYXJhbXMgfSBmcm9tICcuLi8uLi9kYXRhLXNvdXJjZS9yZWFkLXBhcmFtJ1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xuICAgIGl0ZW1zOiBBWFF1ZXJ5QnVpbGRlclJ1bGVbXSA9IFtdO1xuICAgIGdyb3VwQ29weTogQVhRdWVyeUJ1aWxkZXJHcm91cDtcbiAgICBjb21wbGF0ZVZhbHVlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwcm92aWRlRGF0YTogYW55O1xuICAgIG1ha2VKc29uU3RyaW5nKGl0ZW1zOiBhbnlbXSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSnNvblN0cmluZyhlbGVtZW50Lml0ZW1zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jb250cm9sICYmIGVsZW1lbnQuY29udHJvbC5vcHRpb25zICYmIChlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID09PSAnJyB8fCBlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID0gdGhpcy5wcm92aWRlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcnJheVswXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHZhciBncm91cFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JvdXApO1xuICAgICAgICB0aGlzLmdyb3VwQ29weSA9IEpTT04ucGFyc2UoZ3JvdXBTdHJpbmcpO1xuICAgICAgICB0aGlzLm1ha2VKc29uU3RyaW5nKHRoaXMuZ3JvdXBDb3B5Lml0ZW1zKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmdyb3VwQ29weS5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5nZXROb1ZhbHVlUnVsZSh0aGlzLmdyb3VwQ29weS5pdGVtc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIGdldFZhbHVlKHYpIHtcbiAgICAgICAgcmV0dXJuIHYuaW5kZXhPZignPz8/PycpID09IDAgPyB2LnNwbGl0KCd8JylbMV0gOiB2O1xuICAgIH1cbiAgICBnZXROb1ZhbHVlUnVsZShncikge1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChnci5jb25kaXRpb24pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKGdyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB9XG5cblxuICAgIHRleHRWYWx1ZUNoYW5nZShlLCBydWxlKSB7XG4gICAgICAgIHJ1bGUudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICBydWxlLnRleHQgPSBlLnZhbHVlO1xuXG4gICAgfVxuICAgIHNlbGVjdGVkSXRlbXNDaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBsZXQgbiA9IHRoaXMuZ2V0T3B0aW9uKCd0ZXh0RmllbGQnLCBydWxlKTtcbiAgICAgICAgcnVsZS50ZXh0ID0gZVswXVtuXTtcbiAgICAgICAgaWYgKHJ1bGUgJiYgcnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xuICAgICAgICAgICAgcnVsZS52YWx1ZSA9IGVbMF1bcnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBydWxlLnZhbHVlID0gZVswXS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBydWxlLnZhbHVlSXRlbVswXSA9IGVbMF07XG5cbiAgICB9XG4gICAgdmFsdWVDaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBydWxlLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgcnVsZS50ZXh0ID0gZS52YWx1ZTtcblxuICAgIH1cbiAgICB2YWx1ZUJvb2xlYW5DaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBydWxlLnRleHQgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiBlLnZhbHVlO1xuICAgICAgICBydWxlLnZhbHVlID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogZS52YWx1ZTtcblxuICAgIH1cbiAgICBnZXRPcHRpb24obmFtZTogc3RyaW5nLCBydWxlKSB7XG4gICAgICAgIHJldHVybiBydWxlLmNvbnRyb2wub3B0aW9ucyA/IHJ1bGUuY29udHJvbC5vcHRpb25zW25hbWVdIDogbnVsbDtcbiAgICB9XG4gICAgZ2V0UHJvdmlkZURhdGEgPSAoZTogQVhEYXRhU291cmNlUmVhZFBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoZS5leHRyYSAmJiBlLmV4dHJhLmNvbnRyb2wub3B0aW9ucyAmJiBlLmV4dHJhLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZS5leHRyYS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSh7IC4uLmUsIG9wdGlvbnNEYXRhOiB7IC4uLmUuZXh0cmEuY29udHJvbC5vcHRpb25zIH0gfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvdmlkZURhdGFCb29sZWFuID0gKGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci50cnVlJylcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5mYWxzZScpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBdKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZpbmROdWxsVmFsdWUoZ3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGdyW2ldLnZhbHVlID09PSBudWxsIHx8IGdyW2ldLnZhbHVlID09PSB1bmRlZmluZWQgfHwgZ3JbaV0udmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGF0ZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIGlmIChnci5jb25kaXRpb24pIHtcbiAgICAgICAgLy8gICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZpbmROdWxsVmFsdWUoZ3IuaXRlbXNbaV0pO1xuICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBpZiAoZ3Iub25EZW1hbmRMYWJlbD8uaW5kZXhPZignPz8/PycpID09IDAgfHwgZ3IudmFsdWUgPT09IG51bGwgfHwgZ3IudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBnci52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmNvbXBsYXRlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgfVxuXG4gICAgb25Gb290ZXJCdXR0b25DbGljayhlOiBBWE1lbnVJdGVtQ2xpY2tFdmVudCkge1xuICAgICAgICBpZiAoZS5uYW1lID09PSAnY29uZmlybScpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGMucmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5ncm91cENvcHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGdldEZvb3RlckJ1dHRvbnMoKTogQVhCdXR0b25JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jb25maXJtJyksXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggcHJpbWFyeScsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1jaGVjay1jaXJjbGUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2F4IGxpZ2h0JyxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmFyIGZhLXRpbWVzJ1xuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfVxufSIsIjxkaXY+XG4gICAgPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcnVsZSBvZiBpdGVtc1wiPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIHJ1bGUuY29udHJvbFwiIFtuZ1N3aXRjaF09XCJydWxlLmNvbnRyb2wudHlwZVwiIHN0eWxlPVwicGFkZGluZzogMWVtO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0Qm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInRleHRWYWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdEJveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRGaWVsZF09XCJnZXRPcHRpb24oJ3RleHRGaWVsZCcscnVsZSlcIiBbKHNlbGVjdGVkSXRlbXMpXT1cInJ1bGUudmFsdWVJdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJnZXRPcHRpb24oJ3ZhbHVlRmllbGQnLHJ1bGUpXCIgW21vZGVdPVwiZ2V0T3B0aW9uKCdtb2RlJyxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0NoYW5nZSgkZXZlbnQscnVsZSlcIiBzaXplPVwic21cIiAjc2VsZWN0Qm94VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3RlT3BlcmF0aW9uXT1cImdldE9wdGlvbigncmVtb3RlT3BlcmF0aW9uJyxydWxlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cImdldFByb3ZpZGVEYXRhXCIgW3BhcmFtc109XCJydWxlXCI+PC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXJCb3gnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1udW1iZXItYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF0ZVBpY2tlcidcIj5cblxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94ICNzZWxlY3RCb3hCb29sZWFuIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cInZhbHVlQm9vbGVhbkNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TnVsbD1cImZhbHNlXCIgW3NlbGVjdGVkVmFsdWVzXT1cInJ1bGUudmFsdWVcIiBzaXplPVwic21cIiBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJwcm92aWRlRGF0YUJvb2xlYW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInRleHRWYWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuXG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2F4LXZhbGlkYXRpb24tZm9ybT5cbjwvZGl2PiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1wb3B1cC9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBS3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFLdkYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQUV0RSxZQUFvQixLQUFxQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBSXpDLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBRWpDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBbUY5QixtQkFBYyxHQUFHLENBQUMsQ0FBeUIsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFD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RkFDMUIseUJBQXlCLHVFQ2R4Qyw4cUpBaUZBOzRGRHBFYSw0QkFBNEI7a0JBSnhDLFNBQVM7O3FHQUtnQyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uSXRlbSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlUG9wdXBQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLXBhZ2UuY2xhc3MnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICcuLi8uLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyUG9wdXAsIEFYUXVlcnlCdWlsZGVyUnVsZSB9IGZyb20gJy4uL3F1ZXJ5LWJ1aWxkZXIuY2xhc3MnO1xuXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VSZWFkUGFyYW1zIH0gZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2UvcmVhZC1wYXJhbSdcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCkgZm9ybTogQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudDtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0OiBBWFRvYXN0U2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcbiAgICBpdGVtczogQVhRdWVyeUJ1aWxkZXJSdWxlW10gPSBbXTtcbiAgICBncm91cENvcHk6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XG4gICAgY29tcGxhdGVWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgcHJvdmlkZURhdGE6IGFueTtcbiAgICBtYWtlSnNvblN0cmluZyhpdGVtczogYW55W10pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4LCBhcnJheSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Lml0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFrZUpzb25TdHJpbmcoZWxlbWVudC5pdGVtcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuY29udHJvbCAmJiBlbGVtZW50LmNvbnRyb2wub3B0aW9ucyAmJiAoZWxlbWVudC5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSA9PT0gJycgfHwgZWxlbWVudC5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSA9IHRoaXMucHJvdmlkZURhdGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYXJyYXlbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB2YXIgZ3JvdXBTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmdyb3VwKTtcbiAgICAgICAgdGhpcy5ncm91cENvcHkgPSBKU09OLnBhcnNlKGdyb3VwU3RyaW5nKTtcbiAgICAgICAgdGhpcy5tYWtlSnNvblN0cmluZyh0aGlzLmdyb3VwQ29weS5pdGVtcyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncm91cENvcHkuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Tm9WYWx1ZVJ1bGUodGhpcy5ncm91cENvcHkuaXRlbXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5ncm91cCk7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBnZXRWYWx1ZSh2KSB7XG4gICAgICAgIHJldHVybiB2LmluZGV4T2YoJz8/Pz8nKSA9PSAwID8gdi5zcGxpdCgnfCcpWzFdIDogdjtcbiAgICB9XG4gICAgZ2V0Tm9WYWx1ZVJ1bGUoZ3IpIHtcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXROb1ZhbHVlUnVsZShnci5pdGVtc1tpXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChnci5vbkRlbWFuZExhYmVsPy5pbmRleE9mKCc/Pz8/JykgPT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChncik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgfVxuXG5cbiAgICB0ZXh0VmFsdWVDaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBydWxlLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgcnVsZS50ZXh0ID0gZS52YWx1ZTtcblxuICAgIH1cbiAgICBzZWxlY3RlZEl0ZW1zQ2hhbmdlKGUsIHJ1bGUpIHtcbiAgICAgICAgbGV0IG4gPSB0aGlzLmdldE9wdGlvbigndGV4dEZpZWxkJywgcnVsZSk7XG4gICAgICAgIHJ1bGUudGV4dCA9IGVbMF1bbl07XG4gICAgICAgIGlmIChydWxlICYmIHJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGQpIHtcbiAgICAgICAgICAgIHJ1bGUudmFsdWUgPSBlWzBdW3J1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcnVsZS52YWx1ZSA9IGVbMF0udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcnVsZS52YWx1ZUl0ZW1bMF0gPSBlWzBdO1xuXG4gICAgfVxuICAgIHZhbHVlQ2hhbmdlKGUsIHJ1bGUpIHtcbiAgICAgICAgcnVsZS52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHJ1bGUudGV4dCA9IGUudmFsdWU7XG5cbiAgICB9XG4gICAgdmFsdWVCb29sZWFuQ2hhbmdlKGUsIHJ1bGUpIHtcbiAgICAgICAgcnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogZS52YWx1ZTtcbiAgICAgICAgcnVsZS52YWx1ZSA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IGUudmFsdWU7XG5cbiAgICB9XG4gICAgZ2V0T3B0aW9uKG5hbWU6IHN0cmluZywgcnVsZSkge1xuICAgICAgICByZXR1cm4gcnVsZS5jb250cm9sLm9wdGlvbnMgPyBydWxlLmNvbnRyb2wub3B0aW9uc1tuYW1lXSA6IG51bGw7XG4gICAgfVxuICAgIGdldFByb3ZpZGVEYXRhID0gKGU6IEFYRGF0YVNvdXJjZVJlYWRQYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKGUuZXh0cmEgJiYgZS5leHRyYS5jb250cm9sLm9wdGlvbnMgJiYgZS5leHRyYS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuIGUuZXh0cmEuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UoeyAuLi5lLCBvcHRpb25zRGF0YTogeyAuLi5lLmV4dHJhLmNvbnRyb2wub3B0aW9ucyB9IH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByb3ZpZGVEYXRhQm9vbGVhbiA9IChlKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3RydWUnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIudHJ1ZScpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnZmFsc2UnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZmFsc2UnKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgXSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmaW5kTnVsbFZhbHVlKGdyKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChncltpXS52YWx1ZSA9PT0gbnVsbCB8fCBncltpXS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGdyW2ldLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxhdGVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAvLyBpZiAoZ3IuY29uZGl0aW9uKSB7XG4gICAgICAgIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcbiAgICAgICAgLy8gICAgIH1cblxuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwIHx8IGdyLnZhbHVlID09PSBudWxsIHx8IGdyLnZhbHVlID09PSB1bmRlZmluZWQgfHwgZ3IudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5jb21wbGF0ZVZhbHVlID0gZmFsc2U7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cblxuICAgIH1cblxuICAgIG9uRm9vdGVyQnV0dG9uQ2xpY2soZTogQVhNZW51SXRlbUNsaWNrRXZlbnQpIHtcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0udmFsaWRhdGUoKS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjLnJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZ3JvdXBDb3B5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZS5uYW1lID09PSAnY2FuY2VsJykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBnZXRGb290ZXJCdXR0b25zKCk6IEFYQnV0dG9uSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlybScpLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdjb25maXJtJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2F4IHByaW1hcnknLFxuICAgICAgICAgICAgICAgIGljb246ICdmYXIgZmEtY2hlY2stY2lyY2xlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY2FuY2VsJyksXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdheCBsaWdodCcsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS10aW1lcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH1cbn0iLCI8ZGl2PlxuICAgIDxheC12YWxpZGF0aW9uLWZvcm0gI2Zvcm0+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJ1bGUgb2YgaXRlbXNcIj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiBydWxlLmNvbnRyb2xcIiBbbmdTd2l0Y2hdPVwicnVsZS5jb250cm9sLnR5cGVcIiBzdHlsZT1cInBhZGRpbmc6IDFlbTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIndGV4dEJveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ0ZXh0VmFsdWVDaGFuZ2UoJGV2ZW50LHJ1bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3RCb3gnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0RmllbGRdPVwiZ2V0T3B0aW9uKCd0ZXh0RmllbGQnLHJ1bGUpXCIgWyhzZWxlY3RlZEl0ZW1zKV09XCJydWxlLnZhbHVlSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiZ2V0T3B0aW9uKCd2YWx1ZUZpZWxkJyxydWxlKVwiIFttb2RlXT1cImdldE9wdGlvbignbW9kZScscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNDaGFuZ2UoJGV2ZW50LHJ1bGUpXCIgc2l6ZT1cInNtXCIgI3NlbGVjdEJveFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW90ZU9wZXJhdGlvbl09XCJnZXRPcHRpb24oJ3JlbW90ZU9wZXJhdGlvbicscnVsZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJnZXRQcm92aWRlRGF0YVwiIFtwYXJhbXNdPVwicnVsZVwiPjwvYXgtZGF0YS1zb3VyY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyQm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbnVtYmVyLWJveCAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50LHJ1bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lJ1wiPlxuICAgICAgICAgICAgICAgICAgPGF4LWRhdGUtcGlja2VyIGxhYmVsPVwiRnJvbVwiIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIiAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50LHJ1bGUpXCI+XG4gICAgICAgICAgICAgICAgICA8L2F4LWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCAjc2VsZWN0Qm94Qm9vbGVhbiAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJ2YWx1ZUJvb2xlYW5DaGFuZ2UoJGV2ZW50LHJ1bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd051bGw9XCJmYWxzZVwiIFtzZWxlY3RlZFZhbHVlc109XCJydWxlLnZhbHVlXCIgc2l6ZT1cInNtXCIgbW9kZT1cInNpbmdsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwicHJvdmlkZURhdGFCb29sZWFuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAob25WYWx1ZUNoYW5nZWQpPVwidGV4dFZhbHVlQ2hhbmdlKCRldmVudCxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuXG5cblxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvYXgtdmFsaWRhdGlvbi1mb3JtPlxuPC9kaXY+XG4iXX0=
@@ -173,7 +173,7 @@ export class AXQueryBuilderRuleComponent {
173
173
  }
174
174
  ]);
175
175
  }
176
- if (this.rule.dataType === 'datetime') {
176
+ if (this.rule.dataType === 'datetime' || this.rule.dataType === 'date') {
177
177
  resolve([
178
178
  {
179
179
  value: 'equal',
@@ -226,8 +226,6 @@ export class AXQueryBuilderRuleComponent {
226
226
  });
227
227
  }
228
228
  ngAfterViewInit() {
229
- //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.
230
- //Add 'implements AfterViewInit' to the class.
231
229
  if (this.rule.onDemandLabel) {
232
230
  this.isOnDemandLabel = true;
233
231
  }
@@ -398,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
398
396
  }], ruleChanged: [{
399
397
  type: Output
400
398
  }] } });
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQTJCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRcEYsTUFBTSxPQUFPLDJCQUEyQjtJQW1DdEM7UUExQkEsY0FBUyxHQUFZLElBQUksQ0FBQztRQVMxQixTQUFJLEdBQW1CLEtBQUssQ0FBQztRQUc3QixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBR25CLGlCQUFZLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBR2xHLGdCQUFXLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRWpHLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFF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WTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUUsQ0FBQzs7eUhBN1hVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDhyQkFPM0IseUJBQXlCLGdEQ3BCdEMsK3JNQXNJTTs0RkR6SE8sMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLGVBQWUsUUFFbkIsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsaUJBQ3BCLGlCQUFpQixDQUFDLElBQUk7MEVBR2IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNPLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVJLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRUUsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDUyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLHlCQUF5QjtnQkFFcEMsU0FBUztzQkFEUixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJSdWxlLCBBWFF1ZXJ5QnVpbGRlckdyb3VwLCBBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudCwgQVhRdWVyeUJ1aWxkZXJDb250cm9sIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4uL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXF1ZXJ5LXJ1bGUnLFxuICB0ZW1wbGF0ZVVybDogJ3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheCBheC1xdWVyeS1ydWxlJyB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveCcpIHNlbGVjdEJveDogQVhTZWxlY3RCb3hDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveFZhbHVlJykgc2VsZWN0Qm94VmFsdWU6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveEJvb2xlYW4nKSBzZWxlY3RCb3hCb29sZWFuOiBBWFNlbGVjdEJveENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Qm94TmFtZVZhbHVlJykgdGV4dEJveE5hbWVWYWx1ZTogQVhUZXh0Qm94Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XG4gIEBJbnB1dCgpXG4gIGlzRWRpdGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcnVsZTogQVhRdWVyeUJ1aWxkZXJSdWxlO1xuXG4gIEBJbnB1dCgpXG4gIHBhcmVudDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcblxuICBASW5wdXQoKVxuICBtb2RlOiAnbmV3JyB8ICdlZGl0JyA9ICduZXcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogYW55W10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25SdWxlRGVsZXRlOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcnVsZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PigpO1xuXG4gIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzT25EZW1hbmRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNob3dTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93T3BlcmF0b3JTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PntcbiAgICAgICAgaWYoIChmaWVsZC5kYXRhRmllbGQgPT0gdGhpcy5ydWxlLmRhdGFGaWVsZCkpe1xuICAgICAgICAgIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgPSBmaWVsZC5jb250cm9sLm9wdGlvbnNcbiAgICAgICAgfVxuICAgIH0pXG4gICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIGFmdGVyIG5nQWZ0ZXJDb250ZW50SW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkLiBBcHBsaWVzIHRvIGNvbXBvbmVudHMgb25seS5cbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlclZpZXdJbml0JyB0byB0aGUgY2xhc3MuXG4gICAgaWYgKHRoaXMucnVsZS5vbkRlbWFuZExhYmVsKSB7XG4gICAgICB0aGlzLmlzT25EZW1hbmRMYWJlbCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHByb3ZpZGVEYXRhQm9vbGVhbiA9IChlKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICByZXNvbHZlKFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXG4gICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnRydWUnKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmZhbHNlJylcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfSk7XG4gIH07XG5cbiAgc2F2ZVJ1bGUoKSB7XG4gICAgdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbigoYykgPT4geyB9KTtcbiAgfVxuXG4gIHByb3ZpZGVEYXRhT3BlcmF0b3IgPSAoZSkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbCAmJiB0aGlzLnJ1bGUuY29udHJvbC50eXBlICYmIHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ3NlbGVjdEJveCcpIHtcbiAgICAgICAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucycsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWNvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWNvbnRhaW5zJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnY29udGFpbnMtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMtYWxsJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnY29udGFpbnMnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdzdGFydC13aXRoJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnN0YXJ0LXdpdGgnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbmQtd2l0aCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lbmQtd2l0aCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3QnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbicpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2d0ZScsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZ3JlYXRlci10aGFuLWVxdWFsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbHQnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbicpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2x0ZScsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuLWVxdWFsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcbiAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXG4gICAgICAgICAgfVxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdndCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZ3JlYXRlci10aGFuJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3RlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4tZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbHRlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5sZXNzLXRoYW4tZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxuICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdKTtcbiAgICB9KTtcbiAgfTtcblxuICBoYW5kbGVFZGl0Q2xpY2soKSB7XG4gICAgdGhpcy5pc0VkaXRpbmcgPSB0cnVlO1xuICB9XG5cbiAgaGFuZGxlQ29tbWl0Q2xpY2soKSB7XG4gICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBpdGVtczogdGhpcy5ydWxlLCBjb21wb25lbnQ6IHRoaXMgfSk7XG4gIH1cbiAgaGFuZGxlUmVtb3ZlQ2xpY2soKSB7XG4gICAgdGhpcy5vblJ1bGVEZWxldGUuZW1pdCh7IGl0ZW1zOiB0aGlzLnJ1bGUsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuICBjYXB0aW9uQ2hhbmdlKGUpIHtcbiAgICBpZiAoZS5zZWxlY3RlZEl0ZW1zWzBdKSB7XG4gICAgICB0aGlzLnJ1bGUuY2FwdGlvbiA9IGUuc2VsZWN0ZWRJdGVtc1swXS5jYXB0aW9uO1xuICAgICAgdGhpcy5ydWxlLmRhdGFGaWVsZCA9IGUuc2VsZWN0ZWRJdGVtc1swXS5kYXRhRmllbGQ7XG4gICAgICB0aGlzLnJ1bGUuZGF0YVR5cGUgPSBlLnNlbGVjdGVkSXRlbXNbMF0uZGF0YVR5cGU7XG4gICAgICB0aGlzLnJ1bGUuY29udHJvbCA9IGUuc2VsZWN0ZWRJdGVtc1swXS5jb250cm9sIHx8IG5ldyBBWFF1ZXJ5QnVpbGRlckNvbnRyb2woKTtcbiAgICAgIHRoaXMucnVsZS5kYXRhRmllbGRJdGVtWzBdID0gZS5zZWxlY3RlZEl0ZW1zWzBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdEJveCkge1xuICAgICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT09ICdzZWxlY3RCb3gnICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIHRoaXMucnVsZS5vcGVyYXRvciA9ICdjb250YWlucyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSAnZXF1YWwnO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd09wZXJhdG9yU2VsZWN0Qm94ID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dPcGVyYXRvclNlbGVjdEJveCA9IHRydWU7XG4gICAgfSwgMjApO1xuXG4gICAgdGhpcy5ydWxlLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcblxuICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC50eXBlID09PSAnc2VsZWN0Qm94JyAmJiB0aGlzLnNlbGVjdEJveFZhbHVlKSB7XG4gICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdEJveFZhbHVlLnJlZnJlc2goKTtcbiAgICAgIH0sIDIwKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLnNlbGVjdEJveEJvb2xlYW4ucmVmcmVzaCgpO1xuICAgIH1cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cblxuICBvcGVyYXRvckNoYW5nZShlKSB7XG4gICAgdGhpcy5ydWxlLm9wZXJhdG9yID0gZVswXS52YWx1ZTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG5cbiAgICBpZiAoZVswXS52YWx1ZSAhPT0gJ251bGwnICYmIGVbMF0udmFsdWUgIT09ICdub3QtbnVsbCcpIHtcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93VmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMucnVsZS52YWx1ZSA9ICcnO1xuICAgICAgdGhpcy5ydWxlLnRleHQgPSAnJztcbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcbiAgICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gICAgfVxuICB9XG4gIHZhbHVlQ2hhbmdlKGUpIHtcbiAgICBkZWJ1Z2dlclxuICAgIC8vIHRoaXMucnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XG5cbiAgICB0aGlzLnJ1bGUudGV4dCA9IGVbMF0gPyAoZVswXS52YWx1ZSA9PSBudWxsID8gJycgOiBlWzBdLnZhbHVlKSA6IGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICBvbkRlbWFuZExhYmVsQ2hhbmdlKGUpIHtcbiAgICAvLyB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gJz8/Pz98JyArIGVbMF0udmFsdWUgOiAnPz8/P3wnICsgZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9IGVbMF0gPyAnPz8/P3wnICsgKGVbMF0udmFsdWUgPT0gbnVsbCA/ICcnIDogZVswXS52YWx1ZSkgOiAnPz8/P3wnICsgKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XG4gICAgdGhpcy5ydWxlLnZhbHVlID0gJyc7XG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcbiAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XG5cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cbiAgdmFsdWVCb29sZWFuQ2hhbmdlKGUpIHtcbiAgICAvLyB0aGlzLnJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xuICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXSA/IChlWzBdLnZhbHVlID09IG51bGwgPyAnJyA6IGVbMF0udmFsdWUpIDogZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlO1xuICAgIHRoaXMucnVsZS52YWx1ZSA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IGUudmFsdWU7XG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cbiAgZ2V0T25EZW1hbmROYW1lKHYpIHtcbiAgICByZXR1cm4gdiA/IHYuc3BsaXQoJ3wnKVsxXSA6ICcnO1xuICB9XG4gIHNlbGVjdGVkSXRlbXNDaGFuZ2UoZSkge1xuICAgIGxldCBuID0gdGhpcy5nZXRPcHRpb24oJ3RleHRGaWVsZCcpO1xuXG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXVtuXTtcbiAgICAgIGlmICh0aGlzLnJ1bGUgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkKSB7XG4gICAgICAgIHRoaXMucnVsZS52YWx1ZSA9IGVbMF1bdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucnVsZS52YWx1ZSA9IGVbMF0udmFsdWU7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bGUudmFsdWVJdGVtWzBdID0gZVswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ydWxlLnRleHQgPSBlLm1hcCgoeCkgPT4geFtuXSkuam9pbignLSAnKTtcbiAgICAgIGNvbnN0IFRIQVQgPSB0aGlzO1xuICAgICAgaWYgKFRIQVQucnVsZSAmJiBUSEFULnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGQpIHtcbiAgICAgICAgVEhBVC5ydWxlLnZhbHVlID0gZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbVtUSEFULnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucnVsZS52YWx1ZSA9IGUubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IGU7XG4gICAgfVxuXG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gIH1cbiAgb25EZW1hbmRMYWJlbChlKSB7XG4gICAgLy8gaWYgKGUudmFsdWUgJiYgKHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09ICc/Pz8/fCcgfHwgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gbnVsbCB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gJycpKSB7XG4gICAgLy8gICB0aGlzLnRleHRCb3hOYW1lVmFsdWUuZm9jdXMoKTtcbiAgICAvLyB9XG4gICAgaWYgKGUudmFsdWUgPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gICAgfVxuICAgIHRoaXMuaXNPbkRlbWFuZExhYmVsID0gZS52YWx1ZTtcbiAgfVxuICBnZXRQcm92aWRlRGF0YSA9IChlKSA9PiB7XG4gICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSkge1xuICAgICAgcmV0dXJuIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSh7IC4uLmUsIG9wdGlvbnNEYXRhOiB7IC4uLnRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgfSB9KTtcbiAgICB9XG4gIH07XG5cbiAgZ2V0T3B0aW9uKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zID8gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9uc1tuYW1lXSA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb25kaXRpb25cIiAqbmdJZj1cInBhcmVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHt7cGFyZW50LmNvbmRpdGlvbn19XCI+XG4gICAgICAgIDxzcGFuPnt7cGFyZW50LmNvbmRpdGlvbn19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiaGFuZGxlclwiPlxuICAgIDxpIGNsYXNzPVwiZmFyIGZhLWdyaXAtbGluZXMtdmVydGljYWxcIj48L2k+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNhcHRpb25cIiBbbmdDbGFzc109XCJ7J2VkaXRhYmxlJzogaXNFZGl0aW5nfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRpbmc7ZWxzZSBmaWVsZHNUZW1wbGF0ZVwiPlxuICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFtyZWFkb25seV09XCJtb2RlID09ICdlZGl0J1wiIChzZWxlY3Rpb25DaGFuZ2VkKT1cImNhcHRpb25DaGFuZ2UoJGV2ZW50KVwiIGFsbG93TnVsbD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbKHNlbGVjdGVkSXRlbXMpXT1cInJ1bGUuZGF0YUZpZWxkSXRlbVwiIHRleHRGaWVsZD1cImNhcHRpb25cIiB2YWx1ZUZpZWxkPVwiZGF0YUZpZWxkXCIgW2l0ZW1zXT1cImZpZWxkc1wiXG4gICAgICAgICAgICAgICAgbW9kZT1cInNpbmdsZVwiPlxuICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNmaWVsZHNUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlRWRpdENsaWNrKClcIj5cbiAgICAgICAgICAgIHt7cnVsZS5jYXB0aW9ufX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwib3BlcmF0b3JcIiBbbmdDbGFzc109XCJ7J2VkaXRhYmxlJzogaXNFZGl0aW5nLCdyYWRpdXMnOiFzaG93VmFsdWV9XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZztlbHNlIG9wZXJhdG9yVGVtcGxhdGVcIj5cbiAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8YXgtc2VsZWN0LWJveCBbcmVhZG9ubHldPVwibW9kZSA9PSAnZWRpdCdcIiAqbmdJZj1cInNob3dPcGVyYXRvclNlbGVjdEJveFwiIFsoc2VsZWN0ZWRWYWx1ZXMpXT1cInJ1bGUub3BlcmF0b3JcIlxuICAgICAgICAgICAgICAgICNzZWxlY3RCb3ggKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwib3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiIGFsbG93TnVsbD1cImZhbHNlXCIgbW9kZT1cInNpbmdsZVwiPlxuICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwicHJvdmlkZURhdGFPcGVyYXRvclwiPlxuICAgICAgICAgICAgICAgIDwvYXgtZGF0YS1zb3VyY2U+XG4gICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI29wZXJhdG9yVGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKGNsaWNrKT1cImhhbmRsZUVkaXRDbGljaygpXCI+XG4gICAgICAgICAgICB7eygncXVlcnlCdWlsZGVyLicrcnVsZS5vcGVyYXRvcikgfCB0cmFuc319XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJzaG93VmFsdWVcIiBjbGFzcz1cInZhbHVlXCIgW25nQ2xhc3NdPVwieydlZGl0YWJsZSc6IGlzRWRpdGluZ31cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0aW5nO2Vsc2UgdmFsdWVUZW1wbGF0ZVwiPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCIgcnVsZS5jb250cm9sICYmICFpc09uRGVtYW5kTGFiZWxcIiBbbmdTd2l0Y2hdPVwicnVsZS5jb250cm9sLnR5cGVcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0Qm94J1wiPlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3RCb3gnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94ICpuZ0lmPVwic2hvd1NlbGVjdEJveFwiIFttb2RlXT1cImdldE9wdGlvbignbW9kZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdGVPcGVyYXRpb25dPVwiZ2V0T3B0aW9uKCdyZW1vdGVPcGVyYXRpb24nKVwiIFt2YWx1ZUZpZWxkXT1cImdldE9wdGlvbigndmFsdWVGaWVsZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBbdGV4dEZpZWxkXT1cImdldE9wdGlvbigndGV4dEZpZWxkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZEl0ZW1zKV09XCJydWxlLnZhbHVlSXRlbVwiIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjc2VsZWN0Qm94VmFsdWU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cImdldFByb3ZpZGVEYXRhXCI+PC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyQm94J1wiPlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8YXgtbnVtYmVyLWJveCBbZGVjaW1hbE51bWJlcl09XCIyXCIgKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lJ1wiPlxuICAgICAgICAgICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkZyb21cIiBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2F4LWRhdGUtcGlja2VyPlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidib29sZWFuJ1wiPlxuXG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94ICNzZWxlY3RCb3hCb29sZWFuIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cInZhbHVlQm9vbGVhbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TnVsbD1cImZhbHNlXCIgW3NlbGVjdGVkVmFsdWVzXT1cInJ1bGUudmFsdWVcIiBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cInByb3ZpZGVEYXRhQm9vbGVhblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuXG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzT25EZW1hbmRMYWJlbFwiPlxuXG4gICAgICAgICAgICA8YXgtdGV4dC1ib3ggI3RleHRCb3hOYW1lVmFsdWUgW3ZhbHVlXT1cImdldE9uRGVtYW5kTmFtZShydWxlLm9uRGVtYW5kTGFiZWwpXCJcbiAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25EZW1hbmRMYWJlbENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCLZhtin2YUg2YXYqti624zYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPiAtLT5cbiAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG5cblxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWVUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlRWRpdENsaWNrKClcIj5cblxuICAgICAgICAgICAge3tydWxlLnRleHR9fVxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJ1dHRvbnMtbGlzdFwiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93VmFsdWUgJiYgaXNFZGl0aW5nICYmIG1vZGUgPT0gJ25ldydcIiBjbGFzcz1cImJ1dHRvbiB2YXJpYWJsZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlLWJ1dHRvbic6IGlzT25EZW1hbmRMYWJlbH1cIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZG9sbGFyLXNpZ25cIj48L2k+XG4gICAgICAgIDxheC1jaGVjay1ib3ggW3ZhbHVlXT1cImlzT25EZW1hbmRMYWJlbFwiIChvbkNsaWNrKT1cIm9uRGVtYW5kTGFiZWwoJGV2ZW50KVwiPlxuICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24gY29tbWl0XCIgKGNsaWNrKT1cImhhbmRsZUNvbW1pdENsaWNrKClcIiAqbmdJZj1cImlzRWRpdGluZ1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jaGVja1wiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIHJlbW92ZVwiIChjbGljayk9XCJoYW5kbGVSZW1vdmVDbGljaygpXCIgKm5nSWY9XCJtb2RlID09ICduZXcnXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
399
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUEyQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7O0FBUXBGLE1BQU0sT0FBTywyQkFBMkI7SUFtQ3RDO1FBMUJBLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFTMUIsU0FBSSxHQUFtQixLQUFLLENBQUM7UUFHN0IsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUduQixpQkFBWSxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUdsRyxnQkFBVyxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUVqRyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FB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RCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUUsQ0FBQzs7eUhBM1hVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDhyQkFPM0IseUJBQXlCLGdEQ3BCdEMsK3JNQXNJTTs0RkR6SE8sMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLGVBQWUsUUFFbkIsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsaUJBQ3BCLGlCQUFpQixDQUFDLElBQUk7MEVBR2IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNPLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVJLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRUUsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDUyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLHlCQUF5QjtnQkFFcEMsU0FBUztzQkFEUixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJSdWxlLCBBWFF1ZXJ5QnVpbGRlckdyb3VwLCBBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudCwgQVhRdWVyeUJ1aWxkZXJDb250cm9sIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4uL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXF1ZXJ5LXJ1bGUnLFxuICB0ZW1wbGF0ZVVybDogJ3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheCBheC1xdWVyeS1ydWxlJyB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveCcpIHNlbGVjdEJveDogQVhTZWxlY3RCb3hDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveFZhbHVlJykgc2VsZWN0Qm94VmFsdWU6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveEJvb2xlYW4nKSBzZWxlY3RCb3hCb29sZWFuOiBBWFNlbGVjdEJveENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Qm94TmFtZVZhbHVlJykgdGV4dEJveE5hbWVWYWx1ZTogQVhUZXh0Qm94Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XG4gIEBJbnB1dCgpXG4gIGlzRWRpdGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcnVsZTogQVhRdWVyeUJ1aWxkZXJSdWxlO1xuXG4gIEBJbnB1dCgpXG4gIHBhcmVudDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcblxuICBASW5wdXQoKVxuICBtb2RlOiAnbmV3JyB8ICdlZGl0JyA9ICduZXcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogYW55W10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25SdWxlRGVsZXRlOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcnVsZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PigpO1xuXG4gIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzT25EZW1hbmRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNob3dTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93T3BlcmF0b3JTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+e1xuICAgICAgICBpZiggKGZpZWxkLmRhdGFGaWVsZCA9PSB0aGlzLnJ1bGUuZGF0YUZpZWxkKSl7XG4gICAgICAgICAgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyA9IGZpZWxkLmNvbnRyb2wub3B0aW9uc1xuICAgICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwpIHtcbiAgICAgIHRoaXMuaXNPbkRlbWFuZExhYmVsID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJvdmlkZURhdGFCb29sZWFuID0gKGUpID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHJlc29sdmUoW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIudHJ1ZScpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZmFsc2UnKVxuICAgICAgICB9XG4gICAgICBdKTtcbiAgICB9KTtcbiAgfTtcblxuICBzYXZlUnVsZSgpIHtcbiAgICB0aGlzLmZvcm0udmFsaWRhdGUoKS50aGVuKChjKSA9PiB7IH0pO1xuICB9XG5cbiAgcHJvdmlkZURhdGFPcGVyYXRvciA9IChlKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAodGhpcy5ydWxlLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sICYmIHRoaXMucnVsZS5jb250cm9sLnR5cGUgJiYgdGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PSAnc2VsZWN0Qm94Jykge1xuICAgICAgICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLm1vZGUgPT0gJ211bHRpcGxlJykge1xuICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtY29udGFpbnMnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtY29udGFpbnMnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucy1hbGwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5jb250YWlucy1hbGwnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucycsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5jb250YWlucycpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ3N0YXJ0LXdpdGgnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuc3RhcnQtd2l0aCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2VuZC13aXRoJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVuZC13aXRoJylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdndCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZ3JlYXRlci10aGFuJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3RlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4tZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbHRlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5sZXNzLXRoYW4tZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxuICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ydWxlLmRhdGFUeXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcbiAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2d0JyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4nKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdndGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbi1lcXVhbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2x0JyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5sZXNzLXRoYW4nKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbi1lcXVhbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXG4gICAgICAgICAgfVxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10pO1xuICAgIH0pO1xuICB9O1xuXG4gIGhhbmRsZUVkaXRDbGljaygpIHtcbiAgICB0aGlzLmlzRWRpdGluZyA9IHRydWU7XG4gIH1cblxuICBoYW5kbGVDb21taXRDbGljaygpIHtcbiAgICB0aGlzLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGl0ZW1zOiB0aGlzLnJ1bGUsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuICBoYW5kbGVSZW1vdmVDbGljaygpIHtcbiAgICB0aGlzLm9uUnVsZURlbGV0ZS5lbWl0KHsgaXRlbXM6IHRoaXMucnVsZSwgY29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG4gIGNhcHRpb25DaGFuZ2UoZSkge1xuICAgIGlmIChlLnNlbGVjdGVkSXRlbXNbMF0pIHtcbiAgICAgIHRoaXMucnVsZS5jYXB0aW9uID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmNhcHRpb247XG4gICAgICB0aGlzLnJ1bGUuZGF0YUZpZWxkID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmRhdGFGaWVsZDtcbiAgICAgIHRoaXMucnVsZS5kYXRhVHlwZSA9IGUuc2VsZWN0ZWRJdGVtc1swXS5kYXRhVHlwZTtcbiAgICAgIHRoaXMucnVsZS5jb250cm9sID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmNvbnRyb2wgfHwgbmV3IEFYUXVlcnlCdWlsZGVyQ29udHJvbCgpO1xuICAgICAgdGhpcy5ydWxlLmRhdGFGaWVsZEl0ZW1bMF0gPSBlLnNlbGVjdGVkSXRlbXNbMF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0Qm94KSB7XG4gICAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PT0gJ3NlbGVjdEJveCcgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgdGhpcy5ydWxlLm9wZXJhdG9yID0gJ2NvbnRhaW5zJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucnVsZS5vcGVyYXRvciA9ICdlcXVhbCc7XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdEJveC5yZWZyZXNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93T3BlcmF0b3JTZWxlY3RCb3ggPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd09wZXJhdG9yU2VsZWN0Qm94ID0gdHJ1ZTtcbiAgICB9LCAyMCk7XG5cbiAgICB0aGlzLnJ1bGUudmFsdWUgPSBudWxsO1xuICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcbiAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xuXG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT09ICdzZWxlY3RCb3gnICYmIHRoaXMuc2VsZWN0Qm94VmFsdWUpIHtcbiAgICAgIHRoaXMuc2hvd1NlbGVjdEJveCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdEJveCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VsZWN0Qm94VmFsdWUucmVmcmVzaCgpO1xuICAgICAgfSwgMjApO1xuICAgIH1cbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuc2VsZWN0Qm94Qm9vbGVhbi5yZWZyZXNoKCk7XG4gICAgfVxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuXG4gIG9wZXJhdG9yQ2hhbmdlKGUpIHtcbiAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSBlWzBdLnZhbHVlO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcblxuICAgIGlmIChlWzBdLnZhbHVlICE9PSAnbnVsbCcgJiYgZVswXS52YWx1ZSAhPT0gJ25vdC1udWxsJykge1xuICAgICAgdGhpcy5zaG93VmFsdWUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dWYWx1ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5ydWxlLnZhbHVlID0gJyc7XG4gICAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IFtdO1xuICAgICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgICB9XG4gIH1cbiAgdmFsdWVDaGFuZ2UoZSkge1xuICAgIGRlYnVnZ2VyXG4gICAgLy8gdGhpcy5ydWxlLnRleHQgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiAoZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlKTtcblxuICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXSA/IChlWzBdLnZhbHVlID09IG51bGwgPyAnJyA6IGVbMF0udmFsdWUpIDogZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlO1xuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xuICB9XG4gIG9uRGVtYW5kTGFiZWxDaGFuZ2UoZSkge1xuICAgIC8vIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyAnPz8/P3wnICsgZVswXS52YWx1ZSA6ICc/Pz8/fCcgKyBlLnZhbHVlO1xuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gZVswXSA/ICc/Pz8/fCcgKyAoZVswXS52YWx1ZSA9PSBudWxsID8gJycgOiBlWzBdLnZhbHVlKSA6ICc/Pz8/fCcgKyAoZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlKTtcbiAgICB0aGlzLnJ1bGUudmFsdWUgPSAnJztcbiAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xuICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcblxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICB2YWx1ZUJvb2xlYW5DaGFuZ2UoZSkge1xuICAgIC8vIHRoaXMucnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XG4gICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdID8gKGVbMF0udmFsdWUgPT0gbnVsbCA/ICcnIDogZVswXS52YWx1ZSkgOiBlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWU7XG4gICAgdGhpcy5ydWxlLnZhbHVlID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICBnZXRPbkRlbWFuZE5hbWUodikge1xuICAgIHJldHVybiB2ID8gdi5zcGxpdCgnfCcpWzFdIDogJyc7XG4gIH1cbiAgc2VsZWN0ZWRJdGVtc0NoYW5nZShlKSB7XG4gICAgbGV0IG4gPSB0aGlzLmdldE9wdGlvbigndGV4dEZpZWxkJyk7XG5cbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdW25dO1xuICAgICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGQpIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZVswXVt0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZVswXS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW1bMF0gPSBlWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJ1bGUudGV4dCA9IGUubWFwKCh4KSA9PiB4W25dKS5qb2luKCctICcpO1xuICAgICAgY29uc3QgVEhBVCA9IHRoaXM7XG4gICAgICBpZiAoVEhBVC5ydWxlICYmIFRIQVQucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xuICAgICAgICBUSEFULnJ1bGUudmFsdWUgPSBlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHJldHVybiBpdGVtW1RIQVQucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gZTtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgfVxuICBvbkRlbWFuZExhYmVsKGUpIHtcbiAgICAvLyBpZiAoZS52YWx1ZSAmJiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98JyB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSBudWxsIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSAnJykpIHtcbiAgICAvLyAgIHRoaXMudGV4dEJveE5hbWVWYWx1ZS5mb2N1cygpO1xuICAgIC8vIH1cbiAgICBpZiAoZS52YWx1ZSA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgICB9XG4gICAgdGhpcy5pc09uRGVtYW5kTGFiZWwgPSBlLnZhbHVlO1xuICB9XG4gIGdldFByb3ZpZGVEYXRhID0gKGUpID0+IHtcbiAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKHsgLi4uZSwgb3B0aW9uc0RhdGE6IHsgLi4udGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyB9IH0pO1xuICAgIH1cbiAgfTtcblxuICBnZXRPcHRpb24obmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgPyB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zW25hbWVdIDogbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbmRpdGlvblwiICpuZ0lmPVwicGFyZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQge3twYXJlbnQuY29uZGl0aW9ufX1cIj5cbiAgICAgICAgPHNwYW4+e3twYXJlbnQuY29uZGl0aW9ufX08L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJoYW5kbGVyXCI+XG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbFwiPjwvaT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY2FwdGlvblwiIFtuZ0NsYXNzXT1cInsnZWRpdGFibGUnOiBpc0VkaXRpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZztlbHNlIGZpZWxkc1RlbXBsYXRlXCI+XG4gICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggW3JlYWRvbmx5XT1cIm1vZGUgPT0gJ2VkaXQnXCIgKHNlbGVjdGlvbkNoYW5nZWQpPVwiY2FwdGlvbkNoYW5nZSgkZXZlbnQpXCIgYWxsb3dOdWxsPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwicnVsZS5kYXRhRmllbGRJdGVtXCIgdGV4dEZpZWxkPVwiY2FwdGlvblwiIHZhbHVlRmllbGQ9XCJkYXRhRmllbGRcIiBbaXRlbXNdPVwiZmllbGRzXCJcbiAgICAgICAgICAgICAgICBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2ZpZWxkc1RlbXBsYXRlPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVFZGl0Q2xpY2soKVwiPlxuICAgICAgICAgICAge3tydWxlLmNhcHRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJvcGVyYXRvclwiIFtuZ0NsYXNzXT1cInsnZWRpdGFibGUnOiBpc0VkaXRpbmcsJ3JhZGl1cyc6IXNob3dWYWx1ZX1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0aW5nO2Vsc2Ugb3BlcmF0b3JUZW1wbGF0ZVwiPlxuICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFtyZWFkb25seV09XCJtb2RlID09ICdlZGl0J1wiICpuZ0lmPVwic2hvd09wZXJhdG9yU2VsZWN0Qm94XCIgWyhzZWxlY3RlZFZhbHVlcyldPVwicnVsZS5vcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgI3NlbGVjdEJveCAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJvcGVyYXRvckNoYW5nZSgkZXZlbnQpXCIgYWxsb3dOdWxsPVwiZmFsc2VcIiBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJwcm92aWRlRGF0YU9wZXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgPC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjb3BlcmF0b3JUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAoY2xpY2spPVwiaGFuZGxlRWRpdENsaWNrKClcIj5cbiAgICAgICAgICAgIHt7KCdxdWVyeUJ1aWxkZXIuJytydWxlLm9wZXJhdG9yKSB8IHRyYW5zfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInNob3dWYWx1ZVwiIGNsYXNzPVwidmFsdWVcIiBbbmdDbGFzc109XCJ7J2VkaXRhYmxlJzogaXNFZGl0aW5nfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRpbmc7ZWxzZSB2YWx1ZVRlbXBsYXRlXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiBydWxlLmNvbnRyb2wgJiYgIWlzT25EZW1hbmRMYWJlbFwiIFtuZ1N3aXRjaF09XCJydWxlLmNvbnRyb2wudHlwZVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRCb3gnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdEJveCdcIj5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggKm5nSWY9XCJzaG93U2VsZWN0Qm94XCIgW21vZGVdPVwiZ2V0T3B0aW9uKCdtb2RlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW90ZU9wZXJhdGlvbl09XCJnZXRPcHRpb24oJ3JlbW90ZU9wZXJhdGlvbicpXCIgW3ZhbHVlRmllbGRdPVwiZ2V0T3B0aW9uKCd2YWx1ZUZpZWxkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIFt0ZXh0RmllbGRdPVwiZ2V0T3B0aW9uKCd0ZXh0RmllbGQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkSXRlbXMpXT1cInJ1bGUudmFsdWVJdGVtXCIgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICNzZWxlY3RCb3hWYWx1ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwiZ2V0UHJvdmlkZURhdGFcIj48L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXJCb3gnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC1udW1iZXItYm94IFtkZWNpbWFsTnVtYmVyXT1cIjJcIiAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF0ZXRpbWUnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWRhdGUtcGlja2VyIGxhYmVsPVwiRnJvbVwiIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIiAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtZGF0ZS1waWNrZXI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggI3NlbGVjdEJveEJvb2xlYW4gKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwidmFsdWVCb29sZWFuQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOdWxsPVwiZmFsc2VcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwicnVsZS52YWx1ZVwiIG1vZGU9XCJzaW5nbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwicHJvdmlkZURhdGFCb29sZWFuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPbkRlbWFuZExhYmVsXCI+XG5cbiAgICAgICAgICAgIDxheC10ZXh0LWJveCAjdGV4dEJveE5hbWVWYWx1ZSBbdmFsdWVdPVwiZ2V0T25EZW1hbmROYW1lKHJ1bGUub25EZW1hbmRMYWJlbClcIlxuICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbkRlbWFuZExhYmVsQ2hhbmdlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cItmG2KfZhSDZhdiq2LrbjNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+IC0tPlxuICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cblxuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICN2YWx1ZVRlbXBsYXRlPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVFZGl0Q2xpY2soKVwiPlxuXG4gICAgICAgICAgICB7e3J1bGUudGV4dH19XG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYnV0dG9ucy1saXN0XCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dWYWx1ZSAmJiBpc0VkaXRpbmcgJiYgbW9kZSA9PSAnbmV3J1wiIGNsYXNzPVwiYnV0dG9uIHZhcmlhYmxlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUtYnV0dG9uJzogaXNPbkRlbWFuZExhYmVsfVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1kb2xsYXItc2lnblwiPjwvaT5cbiAgICAgICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPVwiaXNPbkRlbWFuZExhYmVsXCIgKG9uQ2xpY2spPVwib25EZW1hbmRMYWJlbCgkZXZlbnQpXCI+XG4gICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBjb21taXRcIiAoY2xpY2spPVwiaGFuZGxlQ29tbWl0Q2xpY2soKVwiICpuZ0lmPVwiaXNFZGl0aW5nXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24gcmVtb3ZlXCIgKGNsaWNrKT1cImhhbmRsZVJlbW92ZUNsaWNrKClcIiAqbmdJZj1cIm1vZGUgPT0gJ25ldydcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -121,10 +121,10 @@ export class AXQueryBuilderService {
121
121
  codeOperator = item.operator;
122
122
  break;
123
123
  }
124
- if (item.dataType == 'datetime' && item.text && item.text != '' && item.text != null) {
124
+ if (item.dataType == 'datetime' && item.text && item.text != '' && item.text != null || item.dataType == 'date' && item.text && item.text != '' && item.text != null) {
125
125
  query = query + ' ' + item.caption + ' ' + codeOperator + ' (' + AXDateTime.convert(item.text, 'jalali') + ')';
126
126
  }
127
- else if (item.dataType != 'datetime') {
127
+ else if (item.dataType != 'datetime' || item.dataType != 'date') {
128
128
  query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
129
129
  }
130
130
  }
@@ -194,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
194
194
  type: Injectable,
195
195
  args: [{ providedIn: 'root' }]
196
196
  }], ctorParameters: function () { return [{ type: i1.AXPopupService }, { type: i2.AXToastService }]; } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixLQUFxQixFQUFVLEtBQXFCO1FBQXBELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDeEUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixXQUFNLEdBQVksS0FBSyxDQUFDO0lBRm9ELENBQUM7SUFHdEUsUUFBUSxDQUFDLEtBQTBCLEVBQUUsV0FBVztRQUNyRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQztZ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LENBQUMsQ0FBQztvQkFDNUIsSUFBSSxJQUFJLFlBQVksbUJBQW1CLEVBQUU7d0JBQ3ZDLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO3FCQUN6Qzt5QkFBTTt3QkFDTCxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO3FCQUMvRTtvQkFDRCxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRTt3QkFDbEQsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztxQkFDdkM7aUJBQ0Y7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzFCLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUN2QjtnQkFFRCxNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLE1BQU07U0FDVDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7bUhBbkxVLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRFIsTUFBTTs0RkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyU3RyaW5nVHlwZSB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jbGFzcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1wb3B1cC9xdWVyeS1idWlsZGVyLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXA6IEFYUG9wdXBTZXJ2aWNlLCBwcml2YXRlIHRvYXN0OiBBWFRvYXN0U2VydmljZSkgeyB9XG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FuUnVuOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBydW5RdWVyeShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCwgcHJvdmlkZURhdGEpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuY2FuT3BlbiA9IGZhbHNlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNhbk9wZW4pIHtcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2FuUnVuID09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xuICAgICAgICAgIHRoaXMucG9wdXAub3BlbihBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50LCB7IGRhdGE6IHsgZ3JvdXA6IGdyb3VwLCBwcm92aWRlRGF0YTogcHJvdmlkZURhdGEgfSwgdGl0bGU6ICfYr9ix24zYp9mB2Kog2YXZgtin2K/bjNixJyB9KS50aGVuKChjKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKGdyb3VwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZpbmROdWxsVmFsdWUoZ3IpIHtcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xuICAgICAgaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xuICAgICAgICAgIHRoaXMuY2FuUnVuID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdC5lcnJvcign2YTYt9mB2Kcg2YbYp9mFINmF2KrYutuM2LEg2YfYp9uMINmF2YjYsdivINmG24zYp9iyINix2Kcg2qnYp9mF2YQg2qnZhtuM2K8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9WYWx1ZVJ1bGUoZ3IpIHtcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XG4gICAgICAgIHRoaXMuY2FuT3BlbiA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gIH1cbiAgfVxuXG4gIGFzeW5jIGdldFF1ZXJ5U3RyaW5nU2ltcGxlKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdmFyIHF1ZXJ5OiBzdHJpbmc7XG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBxdWVyeSA9ICcgKCAnO1xuICAgICAgfVxuICAgICAgdmFyIGlkID0gMDtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlcmF0b3Igb2YgZ3JvdXAuaXRlbXMpIHtcbiAgICAgICAgY29uc3QgaXRlbTogYW55ID0gZ3JvdXAuaXRlbXNbaWRdO1xuXG4gICAgICAgIGlmIChpdGVtLmNvbmRpdGlvbikge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUoaXRlbSkudGhlbigoYykgPT4ge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGM7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGNvZGVPcGVyYXRvcjogc3RyaW5nID0gbnVsbDtcbiAgICAgICAgICBzd2l0Y2ggKGl0ZW0ub3BlcmF0b3IpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz09JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vdC1udWxsJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJyE9IG51bGwnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0gbnVsbCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3QnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPic7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZ3RlJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz49JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsdCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsdGUnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPD0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGFydC13aXRoJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbmQtd2l0aCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9IGl0ZW0ub3BlcmF0b3I7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmRhdGFUeXBlID09ICdkYXRldGltZScgJiYgaXRlbS50ZXh0ICYmIGl0ZW0udGV4dCAhPSAnJyAmJiBpdGVtLnRleHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uY2FwdGlvbiArICcgJyArIGNvZGVPcGVyYXRvciArICcgKCcgKyBBWERhdGVUaW1lLmNvbnZlcnQoaXRlbS50ZXh0LCAnamFsYWxpJykgKyAnKSc7XG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtLmRhdGFUeXBlICE9ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICcgKyBpdGVtLnRleHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZCArPSAxO1xuICAgICAgfVxuICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgKSAnO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShxdWVyeSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UXVlcnlTdHJpbmcoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIHR5cGU6IEFYUXVlcnlCdWlsZGVyU3RyaW5nVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IHF1ZXJ5ID0gJyc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzaW1wbGUnOlxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcbiAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFYUXVlcnlCdWlsZGVyR3JvdXApIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5jYXB0aW9uICsgJyAnICsgaXRlbS5vcGVyYXRvciArICcgJyArIGl0ZW0udmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgZ3JvdXAuY29uZGl0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZWxhc3RpYyc6XG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcXVlcnkgPSAnICggJztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGl0ZW0ucXVlcnlTdHJpbmdFbGFzdGljO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5kYXRhRmllbGQgKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgKSAnO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzcWwnOlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbn1cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixLQUFxQixFQUFVLEtBQXFCO1FBQXBELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDeEUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixXQUFNLEdBQVksS0FBSyxDQUFDO0lBRm9ELENBQUM7SUFHdEUsUUFBUSxDQUFDLEtBQTBCLEVBQUUsV0FBVztRQUNyRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQztZ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Q2Y7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMzQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixJQUFJLElBQUksWUFBWSxtQkFBbUIsRUFBRTt3QkFDdkMsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7cUJBQ3pDO3lCQUFNO3dCQUNMLEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7cUJBQy9FO29CQUNELElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO3dCQUNsRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUVELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzttSEFuTFUscUJBQXFCO3VIQUFyQixxQkFBcUIsY0FEUixNQUFNOzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnLi4vcG9wdXAvcG9wdXAuc2VydmljZSc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7IH1cbiAgY2FuT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBjYW5SdW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHJ1blF1ZXJ5KGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCBwcm92aWRlRGF0YSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5jYW5PcGVuID0gZmFsc2U7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuZ2V0Tm9WYWx1ZVJ1bGUoZ3JvdXAuaXRlbXNbaV0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY2FuT3Blbikge1xuICAgICAgICB0aGlzLmNhblJ1biA9IHRydWU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyb3VwLml0ZW1zW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FuUnVuKSB7XG4gICAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQsIHsgZGF0YTogeyBncm91cDogZ3JvdXAsIHByb3ZpZGVEYXRhOiBwcm92aWRlRGF0YSB9LCB0aXRsZTogJ9iv2LHbjNin2YHYqiDZhdmC2KfYr9uM2LEnIH0pLnRoZW4oKGMpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoYyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoZ3JvdXApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmluZE51bGxWYWx1ZShncikge1xuICAgIGlmICh0aGlzLmNhblJ1biA9PSB0cnVlKSB7XG4gICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0aGlzLmZpbmROdWxsVmFsdWUoZ3IuaXRlbXNbaV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZ3Iub25EZW1hbmRMYWJlbCA9PSAnPz8/P3wnKSB7XG4gICAgICAgICAgdGhpcy5jYW5SdW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0LmVycm9yKCfZhNi32YHYpyDZhtin2YUg2YXYqti624zYsSDZh9in24wg2YXZiNix2K8g2YbbjNin2LIg2LHYpyDaqdin2YXZhCDaqdmG24zYrycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXROb1ZhbHVlUnVsZShncikge1xuICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuZ2V0Tm9WYWx1ZVJ1bGUoZ3IuaXRlbXNbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ3Iub25EZW1hbmRMYWJlbD8uaW5kZXhPZignPz8/PycpID09IDApIHtcbiAgICAgICAgdGhpcy5jYW5PcGVuID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UXVlcnlTdHJpbmdTaW1wbGUoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB2YXIgcXVlcnk6IHN0cmluZztcbiAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHF1ZXJ5ID0gJyAoICc7XG4gICAgICB9XG4gICAgICB2YXIgaWQgPSAwO1xuICAgICAgZm9yIGF3YWl0IChjb25zdCBpdGVyYXRvciBvZiBncm91cC5pdGVtcykge1xuICAgICAgICBjb25zdCBpdGVtOiBhbnkgPSBncm91cC5pdGVtc1tpZF07XG5cbiAgICAgICAgaWYgKGl0ZW0uY29uZGl0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXRRdWVyeVN0cmluZ1NpbXBsZShpdGVtKS50aGVuKChjKSA9PiB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgYztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgY29kZU9wZXJhdG9yOiBzdHJpbmcgPSBudWxsO1xuICAgICAgICAgIHN3aXRjaCAoaXRlbS5vcGVyYXRvcikge1xuICAgICAgICAgICAgY2FzZSAnZXF1YWwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25vdC1lcXVhbCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICchPSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbm90LW51bGwnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0gbnVsbCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc9PSBudWxsJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdndCc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc+JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdndGUnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPj0nO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2x0JzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJzwnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2x0ZSc6XG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8PSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0YXJ0LXdpdGgnOlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VuZC13aXRoJzpcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YVR5cGUgPT0gJ2RhdGV0aW1lJyAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0ICE9ICcnICYmIGl0ZW0udGV4dCAhPSBudWxsIHx8IGl0ZW0uZGF0YVR5cGUgPT0gJ2RhdGUnICYmIGl0ZW0udGV4dCAmJiBpdGVtLnRleHQgIT0gJycgJiYgaXRlbS50ZXh0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICgnICsgQVhEYXRlVGltZS5jb252ZXJ0KGl0ZW0udGV4dCwgJ2phbGFsaScpICsgJyknO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5kYXRhVHlwZSAhPSAnZGF0ZXRpbWUnIHx8IGl0ZW0uZGF0YVR5cGUgIT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5jYXB0aW9uICsgJyAnICsgY29kZU9wZXJhdG9yICsgJyAnICsgaXRlbS50ZXh0O1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGlmIChpZCAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWQgKz0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcbiAgICAgIH1cbiAgICAgIHJlc29sdmUocXVlcnkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFF1ZXJ5U3RyaW5nKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCB0eXBlOiBBWFF1ZXJ5QnVpbGRlclN0cmluZ1R5cGUpOiBzdHJpbmcge1xuICAgIGxldCBxdWVyeSA9ICcnO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc2ltcGxlJzpcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBxdWVyeSA9ICcgKCAnO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gZ3JvdXAuaXRlbXNbaV07XG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uY2FwdGlvbiArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaSAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2VsYXN0aWMnOlxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcbiAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFYUXVlcnlCdWlsZGVyR3JvdXApIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nRWxhc3RpYztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uZGF0YUZpZWxkICsgJyAnICsgaXRlbS5vcGVyYXRvciArICcgJyArIGl0ZW0udmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgZ3JvdXAuY29uZGl0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG59XG4iXX0=