myrta-ui 13.0.10 → 13.0.11

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.
@@ -26,6 +26,7 @@ export class InputNumberComponent {
26
26
  // SAVE STATE
27
27
  this.uuid = uuidv4();
28
28
  this.fields = [];
29
+ this.maxlength = null;
29
30
  this.innerClass = '';
30
31
  this.customClasses = '';
31
32
  this.required = false;
@@ -223,18 +224,20 @@ export class InputNumberComponent {
223
224
  }
224
225
  InputNumberComponent._delimitersInitialised = false;
225
226
  InputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputNumberComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
226
- InputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputNumberComponent, selector: "mrx-input-number", inputs: { fields: "fields", placeholder: "placeholder", innerClass: "innerClass", customClasses: "customClasses", required: "required", allowNegative: "allowNegative", size: "size", separator: "separator", decimalSeparator: "decimalSeparator", isNullableValue: "isNullableValue", isAutoCorrectingValue: "isAutoCorrectingValue", invalid: "invalid", checkInvalid: "checkInvalid", setNumberType: ["numberType", "setNumberType"], setInvalidMessage: ["invalidMessage", "setInvalidMessage"], setDisabled: ["disabled", "setDisabled"], setReadonly: ["readonly", "setReadonly"], setMin: ["minValue", "setMin"], setMax: ["maxValue", "setMax"] }, outputs: { changed: "changed", modelChange: "modelChange", blurred: "blurred" }, providers: [
227
+ InputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputNumberComponent, selector: "mrx-input-number", inputs: { fields: "fields", placeholder: "placeholder", maxlength: "maxlength", innerClass: "innerClass", customClasses: "customClasses", required: "required", allowNegative: "allowNegative", size: "size", separator: "separator", decimalSeparator: "decimalSeparator", isNullableValue: "isNullableValue", isAutoCorrectingValue: "isAutoCorrectingValue", invalid: "invalid", checkInvalid: "checkInvalid", setNumberType: ["numberType", "setNumberType"], setInvalidMessage: ["invalidMessage", "setInvalidMessage"], setDisabled: ["disabled", "setDisabled"], setReadonly: ["readonly", "setReadonly"], setMin: ["minValue", "setMin"], setMax: ["maxValue", "setMax"] }, outputs: { changed: "changed", modelChange: "modelChange", blurred: "blurred" }, providers: [
227
228
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputNumberComponent), multi: true },
228
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"mrx-input-number\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"!isValid || invalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n>\r\n <div class=\"mrx-input-number__wrapper\">\r\n <form [formGroup]=\"numberForm\">\r\n <div>\r\n <input\r\n #inputElement\r\n autocomplete=\"nope\"\r\n formControlName=\"number\"\r\n type=\"text\"\r\n [thousandSeparator]=\"thousandsSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [class]=\"innerClass\"\r\n [mask]=\"'separator.' + decimals\"\r\n [allowNegativeNumbers]=\"allowNegative\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (blur)=\"onBlur($event)\"\r\n (paste)=\"onPaste($event)\"\r\n />\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <mrx-error-message *ngIf=\"!isValid && invalidMessageStart\">\r\n {{invalidMessageStart}}\r\n <a href=\"#\" (click)=\"resetToMax($event)\">{{maxMessage}}</a>\r\n {{invalidMessageEnd}}\r\n </mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-number.mrx-input-number{width:100%;position:relative}.mrx-input-number.mrx-input-number .mrx-input-text__wrapper{position:relative}.mrx-input-number.mrx-input-number input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-number.mrx-input-number input:focus,.mrx-input-number.mrx-input-number input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-number.mrx-input-number input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-number.mrx-input-number.mrx-input__readonly input[type=tel]:disabled{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input__readonly input{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input-number-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-lg:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-lg.mrx-input-number-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-md:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-md.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-sm.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-number.mrx-input-number.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-number.mrx-input-number.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"], components: [{ type: i2.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i3.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
229
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"mrx-input-number\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"!isValid || invalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n>\r\n <div class=\"mrx-input-number__wrapper\">\r\n <form [formGroup]=\"numberForm\">\r\n <div>\r\n <input\r\n #inputElement\r\n autocomplete=\"nope\"\r\n formControlName=\"number\"\r\n type=\"text\"\r\n [thousandSeparator]=\"thousandsSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [class]=\"innerClass\"\r\n [mask]=\"'separator.' + decimals\"\r\n [allowNegativeNumbers]=\"allowNegative\"\r\n [maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (blur)=\"onBlur($event)\"\r\n (paste)=\"onPaste($event)\"\r\n />\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <mrx-error-message *ngIf=\"!isValid && invalidMessageStart\">\r\n {{invalidMessageStart}}\r\n <a href=\"#\" (click)=\"resetToMax($event)\">{{maxMessage}}</a>\r\n {{invalidMessageEnd}}\r\n </mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-number.mrx-input-number{width:100%;position:relative}.mrx-input-number.mrx-input-number .mrx-input-text__wrapper{position:relative}.mrx-input-number.mrx-input-number input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-number.mrx-input-number input:focus,.mrx-input-number.mrx-input-number input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-number.mrx-input-number input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-number.mrx-input-number.mrx-input__readonly input[type=tel]:disabled{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input__readonly input{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input-number-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-lg:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-lg.mrx-input-number-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-md:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-md.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-sm.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-number.mrx-input-number.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-number.mrx-input-number.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"], components: [{ type: i2.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i3.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
229
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputNumberComponent, decorators: [{
230
231
  type: Component,
231
232
  args: [{ selector: 'mrx-input-number', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
232
233
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => InputNumberComponent), multi: true },
233
- ], template: "<div\r\n class=\"mrx-input-number\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"!isValid || invalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n>\r\n <div class=\"mrx-input-number__wrapper\">\r\n <form [formGroup]=\"numberForm\">\r\n <div>\r\n <input\r\n #inputElement\r\n autocomplete=\"nope\"\r\n formControlName=\"number\"\r\n type=\"text\"\r\n [thousandSeparator]=\"thousandsSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [class]=\"innerClass\"\r\n [mask]=\"'separator.' + decimals\"\r\n [allowNegativeNumbers]=\"allowNegative\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (blur)=\"onBlur($event)\"\r\n (paste)=\"onPaste($event)\"\r\n />\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <mrx-error-message *ngIf=\"!isValid && invalidMessageStart\">\r\n {{invalidMessageStart}}\r\n <a href=\"#\" (click)=\"resetToMax($event)\">{{maxMessage}}</a>\r\n {{invalidMessageEnd}}\r\n </mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-number.mrx-input-number{width:100%;position:relative}.mrx-input-number.mrx-input-number .mrx-input-text__wrapper{position:relative}.mrx-input-number.mrx-input-number input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-number.mrx-input-number input:focus,.mrx-input-number.mrx-input-number input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-number.mrx-input-number input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-number.mrx-input-number.mrx-input__readonly input[type=tel]:disabled{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input__readonly input{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input-number-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-lg:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-lg.mrx-input-number-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-md:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-md.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-sm.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-number.mrx-input-number.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-number.mrx-input-number.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"] }]
234
+ ], template: "<div\r\n class=\"mrx-input-number\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"!isValid || invalid\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n>\r\n <div class=\"mrx-input-number__wrapper\">\r\n <form [formGroup]=\"numberForm\">\r\n <div>\r\n <input\r\n #inputElement\r\n autocomplete=\"nope\"\r\n formControlName=\"number\"\r\n type=\"text\"\r\n [thousandSeparator]=\"thousandsSeparator\"\r\n [decimalMarker]=\"decimalMarker\"\r\n [class]=\"innerClass\"\r\n [mask]=\"'separator.' + decimals\"\r\n [allowNegativeNumbers]=\"allowNegative\"\r\n [maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (blur)=\"onBlur($event)\"\r\n (paste)=\"onPaste($event)\"\r\n />\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <mrx-error-message *ngIf=\"!isValid && invalidMessageStart\">\r\n {{invalidMessageStart}}\r\n <a href=\"#\" (click)=\"resetToMax($event)\">{{maxMessage}}</a>\r\n {{invalidMessageEnd}}\r\n </mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-number.mrx-input-number{width:100%;position:relative}.mrx-input-number.mrx-input-number .mrx-input-text__wrapper{position:relative}.mrx-input-number.mrx-input-number input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-number.mrx-input-number input:focus,.mrx-input-number.mrx-input-number input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-number.mrx-input-number input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-number.mrx-input-number.mrx-input__readonly input[type=tel]:disabled{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input__readonly input{background-color:inherit}.mrx-input-number.mrx-input-number.mrx-input-number-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-lg:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-lg.mrx-input-number-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-md:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-md.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-number.mrx-input-number.mrx-input-number-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-number.mrx-input-number.mrx-input-number-sm.mrx-input-number-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-number.mrx-input-number.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default)!important;background-color:var(--system-bg-negative-secondary)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary)!important;border-color:var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)!important}.mrx-input-number.mrx-input-number.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-number.mrx-input-number.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"] }]
234
235
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { fields: [{
235
236
  type: Input
236
237
  }], placeholder: [{
237
238
  type: Input
239
+ }], maxlength: [{
240
+ type: Input
238
241
  }], innerClass: [{
239
242
  type: Input
240
243
  }], customClasses: [{
@@ -285,4 +288,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
285
288
  }], blurred: [{
286
289
  type: Output
287
290
  }] } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLG9CQUFvQixFQUlyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFFM0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQWFGLE1BQU0sT0FBTyxvQkFBb0I7SUErRy9CLFlBQVksRUFBZTtRQXpHcEIsVUFBSyxHQUEwQixJQUFJLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS3hCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFTCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMsb0JBQWUsR0FBcUIs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QUF2QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFHZCxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLFlBQVk7Z0JBTVIsaUJBQWlCO3NCQUQzQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFhWixXQUFXO3NCQURyQixLQUFLO3VCQUFDLFVBQVU7Z0JBYU4sV0FBVztzQkFEckIsS0FBSzt1QkFBQyxVQUFVO2dCQWFOLE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsVUFBVTtnQkFZTixNQUFNO3NCQURoQixLQUFLO3VCQUFDLFVBQVU7Z0JBV0EsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRvcnNcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSW5wdXROdW1iZXJTaXplc0VudW0sXHJcbiAgSW5wdXROdW1iZXJTaXplc1R5cGVzLFxyXG4gIElucHV0TnVtYmVyVHlwZSwgSW5wdXROdW1iZXJWYWx1ZVR5cGVzLFxyXG4gIElucHV0TnVtYmVyVmFsdWVXaXRoSWRcclxufSBmcm9tICcuL2lucHV0LW51bWJlci5lbnVtJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmNvbnN0IG5vb3AgPSAoKSA9PiB7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBEZWNpbWFsTWFya2VyVHlwZSA9ICcuJyB8ICcsJyB8IFsnLicsICcsJ107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1pbnB1dC1udW1iZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LW51bWJlci5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dE51bWJlckNvbXBvbmVudCksIG11bHRpOiB0cnVlfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGRlY2ltYWxNYXJrZXI/OiBEZWNpbWFsTWFya2VyVHlwZTtcclxuICBwcml2YXRlIHN0YXRpYyBfZGVsaW1pdGVyc0luaXRpYWxpc2VkID0gZmFsc2U7XHJcbiAgcHVibGljIHN0YXRpYyB0aG91c2FuZHNTZXBhcmF0b3I6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHZhbHVlOiBJbnB1dE51bWJlclZhbHVlVHlwZXMgPSBudWxsO1xyXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBudW1iZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgaW52YWxpZE1lc3NhZ2VTdGFydDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuICBpbnZhbGlkTWVzc2FnZUVuZDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuICBkZWNpbWFscyA9IDI7XHJcblxyXG4gIHByaXZhdGUgaW52b2tlQ2hhbmdlZCA9IHRydWU7XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgX21pbiA9IC05OTk5OTk5OTkuOTk7XHJcbiAgcHJpdmF0ZSBfbWF4ID0gOTk5OTk5OTk5Ljk5O1xyXG4gIHByaXZhdGUgX2lzVmFsaWQgPSB0cnVlO1xyXG5cclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgaW5uZXJDbGFzcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGFsbG93TmVnYXRpdmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogSW5wdXROdW1iZXJTaXplc1R5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBwdWJsaWMgc2VwYXJhdG9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWNpbWFsU2VwYXJhdG9yPzogRGVjaW1hbE1hcmtlclR5cGU7XHJcbiAgQElucHV0KCkgcHVibGljIGlzTnVsbGFibGVWYWx1ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0F1dG9Db3JyZWN0aW5nVmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgLy8gRVJST1JcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoJ251bWJlclR5cGUnKVxyXG4gIHB1YmxpYyBzZXQgc2V0TnVtYmVyVHlwZSh2YWx1ZTogSW5wdXROdW1iZXJUeXBlKSB7XHJcbiAgICB0aGlzLmRlY2ltYWxzID0gdmFsdWUgPT09ICdmbG9hdCcgPyAyIDogdmFsdWUgPT09ICdwZXJjZW50JyA/IDEgOiAwO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdpbnZhbGlkTWVzc2FnZScpXHJcbiAgcHVibGljIHNldCBzZXRJbnZhbGlkTWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY29uc3QgcGFyYSA9IHZhbHVlLnNwbGl0KCd7MH0nKTtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZVN0YXJ0ID0gcGFyYVswXTtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZUVuZCA9IHBhcmFbMV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlU3RhcnQgPSBudWxsO1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlRW5kID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgnZGlzYWJsZWQnKVxyXG4gIHB1YmxpYyBzZXQgc2V0RGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaW52b2tlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyRm9ybS5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm51bWJlckZvcm0uZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludm9rZUNoYW5nZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdyZWFkb25seScpXHJcbiAgcHVibGljIHNldCBzZXRSZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlYWRvbmx5ID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5udW1iZXJGb3JtLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubnVtYmVyRm9ybS5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW52b2tlQ2hhbmdlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ21pblZhbHVlJylcclxuICBwdWJsaWMgc2V0IHNldE1pbih2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLl9taW4gPSB2YWw7XHJcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmdldENvbnRyb2woJ251bWJlcicpO1xyXG4gICAgICBpZiAoYykge1xyXG4gICAgICAgIGMuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW4odGhpcy5fbWluKSwgVmFsaWRhdG9ycy5tYXgodGhpcy5fbWF4KV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ21heFZhbHVlJylcclxuICBwdWJsaWMgc2V0IHNldE1heCh2YWw6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLl9tYXggPSB2YWw7XHJcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmdldENvbnRyb2woJ251bWJlcicpO1xyXG4gICAgICBpZiAoYykge1xyXG4gICAgICAgIGMuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW4odGhpcy5fbWluKSwgVmFsaWRhdG9ycy5tYXgodGhpcy5fbWF4KV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dE51bWJlclZhbHVlVHlwZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dE51bWJlclZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dE51bWJlclZhbHVlV2l0aElkPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmx1cnJlZDogRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dE51bWJlclZhbHVlV2l0aElkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMubnVtYmVyRm9ybSA9IGZiLmdyb3VwKHtcclxuICAgICAgbnVtYmVyOiBbJyddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgSW5wdXROdW1iZXJDb21wb25lbnQuaW5pdE51bWJlckZvcm1hdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWFkb25seUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA/ICdtcngtaW5wdXRfX3JlYWRvbmx5JyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/XHJcbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XHJcbiAgICAgIHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnXHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0TnVtYmVyU2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5jdXN0b21DbGFzc2VzfSAke3RoaXMucmVhZG9ubHlDbGFzc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVjaW1hbE1hcmtlcigpOiAnLicgfCAnLCcgfCBbJy4nLCAnLCddIHtcclxuICAgIHJldHVybiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgfHwgSW5wdXROdW1iZXJDb21wb25lbnQuZGVjaW1hbE1hcmtlciB8fCAnLCc7XHJcbiAgfVxyXG5cclxuICBnZXQgdGhvdXNhbmRzU2VwYXJhdG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXBhcmF0b3IgfHwgSW5wdXROdW1iZXJDb21wb25lbnQudGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldCBtYXhNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkZWMgPSB0aGlzLmRlY2ltYWxNYXJrZXJbMF07XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4LnRvTG9jYWxlU3RyaW5nKCdlbicpLnNwbGl0KCcsJykuam9pbih0aGlzLnRob3VzYW5kc1NlcGFyYXRvcikucmVwbGFjZSgnLicsIGRlYyk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWZXJpZmllZCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzLmdldENvbnRyb2woJ251bWJlcicpO1xyXG4gICAgcmV0dXJuICF0aGlzLnJlcXVpcmVkIHx8XHJcbiAgICAgICh0aGlzLnJlcXVpcmVkICYmIGYudmFsdWUgIT09IG51bGwgJiYgZi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaXNWYWxpZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaW5pdE51bWJlckZvcm1hdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kZWxpbWl0ZXJzSW5pdGlhbGlzZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8g0YHQuNGB0YLQtdC80L3Ri9C5INGE0L7RgNC80LDRgiDRh9C40YHQu9CwINGBINC00YDQvtCx0L3QvtC5INGH0LDRgdGC0YzRjiDQuCDQs9GA0YPQv9C/0L7QuSDRgNCw0LfRgNCw0Y/QtNC+0LIgKNGC0YvRgdGP0YfQuClcclxuICAgIGNvbnN0IGMgPSBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdFRvUGFydHMoMTIzNC41KTtcclxuXHJcbiAgICBjb25zdCB0ID0gYy5maW5kKHggPT4geC50eXBlID09PSAnZ3JvdXAnKT8udmFsdWU7XHJcblxyXG4gICAgLy8g0YDQsNC30LTQtdC70LjRgtC10LvRjCDQs9GA0YPQv9C/XHJcbiAgICB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA9IHQ/LmNoYXJDb2RlQXQoMCkgPT09IDE2MCA/ICcgJyA6IHQgfHwgJyAnO1xyXG5cclxuICAgIC8vINGA0LDQt9C00LXQu9C40YLQtdC70Ywg0LTRgNC+0LHQvdC+0Lkg0YfQsNGB0YLQuFxyXG4gICAgdGhpcy5kZWNpbWFsTWFya2VyID0gKGMuZmluZCh4ID0+IHgudHlwZSA9PT0gJ2RlY2ltYWwnKT8udmFsdWUgYXMgKCcsJyB8ICcuJykpO1xyXG5cclxuICAgIHRoaXMuX2RlbGltaXRlcnNJbml0aWFsaXNlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubnVtYmVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICBwYWlyd2lzZSgpXHJcbiAgICApLnN1YnNjcmliZSgoW29sZFZhbHVlLCBuZXdWYWx1ZV0pID0+IHtcclxuICAgICAgdGhpcy5fZm9ybWF0dGluZ1ZhbHVlKG5ld1ZhbHVlLm51bWJlcik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubnVtYmVyRm9ybS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrSXNWYWxpZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9mb3JtYXR0aW5nVmFsdWUoaW5zaWRlVmFsdWU6IElucHV0TnVtYmVyVmFsdWVUeXBlcykge1xyXG4gICAgaWYgKHRoaXMuaW52b2tlQ2hhbmdlZCkge1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgaWYgKCFpbnNpZGVWYWx1ZSAmJiBpbnNpZGVWYWx1ZSAhPT0gMCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldFRvTWF4KGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICBmLnNldFZhbHVlKHRoaXMuX21heCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzVmFsaWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNBdXRvQ29ycmVjdGluZ1ZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGYgPSB0aGlzLmdldENvbnRyb2woJ251bWJlcicpO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5udW1iZXJGb3JtLmRpc2FibGVkIHx8IChmICYmIGYudmFsaWQgfHwgKCFmLmRpcnR5ICYmICFmLnRvdWNoZWQpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGhvbmVJbnB1dEJsdXIoKSB7XHJcbiAgICBpZiAodGhpcy5pc0F1dG9Db3JyZWN0aW5nVmFsdWUpIHtcclxuICAgICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcblxyXG4gICAgICBpZiAoZi52YWx1ZSA+IHRoaXMuX21heCkge1xyXG4gICAgICAgIGYuc2V0VmFsdWUodGhpcy5fbWF4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGYudmFsdWUgPCB0aGlzLl9taW4pIHtcclxuICAgICAgICBmLnNldFZhbHVlKHRoaXMuX21pbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICBmLnNldFZhbHVlKHZhbHVlLCB7ZW1pdEV2ZW50OiBmYWxzZSwgZW1pdFZpZXdUb01vZGVsQ2hhbmdlOiBmYWxzZX0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udHJvbChuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLm51bWJlckZvcm0uZ2V0KG5hbWUpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlOiBJbnB1dE51bWJlclZhbHVlVHlwZXMpIHtcclxuICAgIHRoaXMudmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGluc2lkZVZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XHJcbiAgICB0aGlzLm9uUGhvbmVJbnB1dEJsdXIoKVxyXG4gICAgdGhpcy5ibHVycmVkLmVtaXQoe3ZhbHVlOiB0aGlzLnZhbHVlLCBpZDogdGhpcy51dWlkfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cclxuICAgIGNvbnN0IGYgPSB0aGlzLmdldENvbnRyb2woJ251bWJlcicpO1xyXG4gICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGEgfHwgKDxhbnk+d2luZG93KS5jbGlwYm9hcmREYXRhO1xyXG4gICAgY29uc3QgcGFzdGVkVGV4dCA9IGNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5kZWNpbWFscykge1xyXG4gICAgICBjYXNlICgyKTpcclxuICAgICAgY2FzZSAoMSk6XHJcbiAgICAgICAgZi5zZXRWYWx1ZShwYXJzZUludChwYXN0ZWRUZXh0KSlcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGYuc2V0VmFsdWUocGFyc2VJbnQocGFzdGVkVGV4dC5zcGxpdCgvWywuXS8pWzBdKSlcclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIm1yeC1pbnB1dC1udW1iZXJcIlxyXG4gICAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gICAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCIhaXNWYWxpZCB8fCBpbnZhbGlkXCJcclxuICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2NsYXNzLi1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LW51bWJlcl9fd3JhcHBlclwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJudW1iZXJGb3JtXCI+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICNpbnB1dEVsZW1lbnRcclxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cInRob3VzYW5kc1NlcGFyYXRvclwiXHJcbiAgICAgICAgICAgIFtkZWNpbWFsTWFya2VyXT1cImRlY2ltYWxNYXJrZXJcIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiaW5uZXJDbGFzc1wiXHJcbiAgICAgICAgICAgIFttYXNrXT1cIidzZXBhcmF0b3IuJyArIGRlY2ltYWxzXCJcclxuICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cImFsbG93TmVnYXRpdmVcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1yeC1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWlzVmFsaWQgJiYgaW52YWxpZE1lc3NhZ2VTdGFydFwiPlxyXG4gICAge3tpbnZhbGlkTWVzc2FnZVN0YXJ0fX1cclxuICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cInJlc2V0VG9NYXgoJGV2ZW50KVwiPnt7bWF4TWVzc2FnZX19PC9hPlxyXG4gICAge3tpbnZhbGlkTWVzc2FnZUVuZH19XHJcbiAgPC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuIl19
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLG9CQUFvQixFQUlyQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFFM0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQWFGLE1BQU0sT0FBTyxvQkFBb0I7SUFnSC9CLFlBQVksRUFBZTtRQTFHcEIsVUFBSyxHQUEwQixJQUFJLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS3hCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFTCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixzQkFBaUIsR0FBZSxJQUFJLENBQUM7UUFDckMsb0JBQWUsR0FBcUIs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VTtzQkFBekIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUdVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUdkLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsWUFBWTtnQkFNUixpQkFBaUI7c0JBRDNCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQWFaLFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMsVUFBVTtnQkFhTixXQUFXO3NCQURyQixLQUFLO3VCQUFDLFVBQVU7Z0JBYU4sTUFBTTtzQkFEaEIsS0FBSzt1QkFBQyxVQUFVO2dCQVlOLE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsVUFBVTtnQkFXQSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBJbnB1dE51bWJlclNpemVzRW51bSxcclxuICBJbnB1dE51bWJlclNpemVzVHlwZXMsXHJcbiAgSW5wdXROdW1iZXJUeXBlLCBJbnB1dE51bWJlclZhbHVlVHlwZXMsXHJcbiAgSW5wdXROdW1iZXJWYWx1ZVdpdGhJZFxyXG59IGZyb20gJy4vaW5wdXQtbnVtYmVyLmVudW0nO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBwYWlyd2lzZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuY29uc3Qgbm9vcCA9ICgpID0+IHtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIERlY2ltYWxNYXJrZXJUeXBlID0gJy4nIHwgJywnIHwgWycuJywgJywnXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWlucHV0LW51bWJlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyQ29tcG9uZW50KSwgbXVsdGk6IHRydWV9LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0TnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGVjaW1hbE1hcmtlcj86IERlY2ltYWxNYXJrZXJUeXBlO1xyXG4gIHByaXZhdGUgc3RhdGljIF9kZWxpbWl0ZXJzSW5pdGlhbGlzZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgc3RhdGljIHRob3VzYW5kc1NlcGFyYXRvcjogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgdmFsdWU6IElucHV0TnVtYmVyVmFsdWVUeXBlcyA9IG51bGw7XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gIG51bWJlckZvcm06IEZvcm1Hcm91cDtcclxuICBpbnZhbGlkTWVzc2FnZVN0YXJ0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIGludmFsaWRNZXNzYWdlRW5kOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIGRlY2ltYWxzID0gMjtcclxuXHJcbiAgcHJpdmF0ZSBpbnZva2VDaGFuZ2VkID0gdHJ1ZTtcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcclxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHJpdmF0ZSBfbWluID0gLTk5OTk5OTk5OS45OTtcclxuICBwcml2YXRlIF9tYXggPSA5OTk5OTk5OTkuOTk7XHJcbiAgcHJpdmF0ZSBfaXNWYWxpZCA9IHRydWU7XHJcblxyXG5cclxuICAvLyBTQVZFIFNUQVRFXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhsZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbm5lckNsYXNzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dOZWdhdGl2ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBJbnB1dE51bWJlclNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXBhcmF0b3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGRlY2ltYWxTZXBhcmF0b3I/OiBEZWNpbWFsTWFya2VyVHlwZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaXNOdWxsYWJsZVZhbHVlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGlzQXV0b0NvcnJlY3RpbmdWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICAvLyBFUlJPUlxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgnbnVtYmVyVHlwZScpXHJcbiAgcHVibGljIHNldCBzZXROdW1iZXJUeXBlKHZhbHVlOiBJbnB1dE51bWJlclR5cGUpIHtcclxuICAgIHRoaXMuZGVjaW1hbHMgPSB2YWx1ZSA9PT0gJ2Zsb2F0JyA/IDIgOiB2YWx1ZSA9PT0gJ3BlcmNlbnQnID8gMSA6IDA7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2ludmFsaWRNZXNzYWdlJylcclxuICBwdWJsaWMgc2V0IHNldEludmFsaWRNZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBjb25zdCBwYXJhID0gdmFsdWUuc3BsaXQoJ3swfScpO1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlU3RhcnQgPSBwYXJhWzBdO1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlRW5kID0gcGFyYVsxXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VTdGFydCA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VFbmQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCdkaXNhYmxlZCcpXHJcbiAgcHVibGljIHNldCBzZXREaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5udW1iZXJGb3JtLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubnVtYmVyRm9ybS5lbmFibGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW52b2tlQ2hhbmdlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ3JlYWRvbmx5JylcclxuICBwdWJsaWMgc2V0IHNldFJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmludm9rZUNoYW5nZWQgPSBmYWxzZTtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLm51bWJlckZvcm0uZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5udW1iZXJGb3JtLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnZva2VDaGFuZ2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgnbWluVmFsdWUnKVxyXG4gIHB1YmxpYyBzZXQgc2V0TWluKHZhbDogbnVtYmVyKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuX21pbiA9IHZhbDtcclxuICAgICAgY29uc3QgYyA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICAgIGlmIChjKSB7XHJcbiAgICAgICAgYy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbih0aGlzLl9taW4pLCBWYWxpZGF0b3JzLm1heCh0aGlzLl9tYXgpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgnbWF4VmFsdWUnKVxyXG4gIHB1YmxpYyBzZXQgc2V0TWF4KHZhbDogbnVtYmVyKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuX21heCA9IHZhbDtcclxuICAgICAgY29uc3QgYyA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICAgIGlmIChjKSB7XHJcbiAgICAgICAgYy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbih0aGlzLl9taW4pLCBWYWxpZGF0b3JzLm1heCh0aGlzLl9tYXgpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXROdW1iZXJWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVXaXRoSWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVycmVkOiBFdmVudEVtaXR0ZXI8SW5wdXROdW1iZXJWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0TnVtYmVyVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5udW1iZXJGb3JtID0gZmIuZ3JvdXAoe1xyXG4gICAgICBudW1iZXI6IFsnJ10sXHJcbiAgICB9KTtcclxuXHJcbiAgICBJbnB1dE51bWJlckNvbXBvbmVudC5pbml0TnVtYmVyRm9ybWF0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJydcclxuICB9XHJcblxyXG4gIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7SW5wdXROdW1iZXJTaXplc0VudW1bdGhpcy5zaXplXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIGdldCBkZWNpbWFsTWFya2VyKCk6ICcuJyB8ICcsJyB8IFsnLicsICcsJ10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFNlcGFyYXRvciB8fCBJbnB1dE51bWJlckNvbXBvbmVudC5kZWNpbWFsTWFya2VyIHx8ICcsJztcclxuICB9XHJcblxyXG4gIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlcGFyYXRvciB8fCBJbnB1dE51bWJlckNvbXBvbmVudC50aG91c2FuZHNTZXBhcmF0b3I7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heE1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRlYyA9IHRoaXMuZGVjaW1hbE1hcmtlclswXTtcclxuICAgIHJldHVybiB0aGlzLl9tYXgudG9Mb2NhbGVTdHJpbmcoJ2VuJykuc3BsaXQoJywnKS5qb2luKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKS5yZXBsYWNlKCcuJywgZGVjKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1ZlcmlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICByZXR1cm4gIXRoaXMucmVxdWlyZWQgfHxcclxuICAgICAgKHRoaXMucmVxdWlyZWQgJiYgZi52YWx1ZSAhPT0gbnVsbCAmJiBmLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pc1ZhbGlkKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpbml0TnVtYmVyRm9ybWF0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2RlbGltaXRlcnNJbml0aWFsaXNlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyDRgdC40YHRgtC10LzQvdGL0Lkg0YTQvtGA0LzQsNGCINGH0LjRgdC70LAg0YEg0LTRgNC+0LHQvdC+0Lkg0YfQsNGB0YLRjNGOINC4INCz0YDRg9C/0L/QvtC5INGA0LDQt9GA0LDRj9C00L7QsiAo0YLRi9GB0Y/Rh9C4KVxyXG4gICAgY29uc3QgYyA9IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0VG9QYXJ0cygxMjM0LjUpO1xyXG5cclxuICAgIGNvbnN0IHQgPSBjLmZpbmQoeCA9PiB4LnR5cGUgPT09ICdncm91cCcpPy52YWx1ZTtcclxuXHJcbiAgICAvLyDRgNCw0LfQtNC10LvQuNGC0LXQu9GMINCz0YDRg9C/0L9cclxuICAgIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yID0gdD8uY2hhckNvZGVBdCgwKSA9PT0gMTYwID8gJyAnIDogdCB8fCAnICc7XHJcblxyXG4gICAgLy8g0YDQsNC30LTQtdC70LjRgtC10LvRjCDQtNGA0L7QsdC90L7QuSDRh9Cw0YHRgtC4XHJcbiAgICB0aGlzLmRlY2ltYWxNYXJrZXIgPSAoYy5maW5kKHggPT4geC50eXBlID09PSAnZGVjaW1hbCcpPy52YWx1ZSBhcyAoJywnIHwgJy4nKSk7XHJcblxyXG4gICAgdGhpcy5fZGVsaW1pdGVyc0luaXRpYWxpc2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5udW1iZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBzdGFydFdpdGgobnVsbCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIHBhaXJ3aXNlKClcclxuICAgICkuc3Vic2NyaWJlKChbb2xkVmFsdWUsIG5ld1ZhbHVlXSkgPT4ge1xyXG4gICAgICB0aGlzLl9mb3JtYXR0aW5nVmFsdWUobmV3VmFsdWUubnVtYmVyKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5udW1iZXJGb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tJc1ZhbGlkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdHRpbmdWYWx1ZShpbnNpZGVWYWx1ZTogSW5wdXROdW1iZXJWYWx1ZVR5cGVzKSB7XHJcbiAgICBpZiAodGhpcy5pbnZva2VDaGFuZ2VkKSB7XHJcbiAgICAgIGlmICh0aGlzLm51bWJlckZvcm0udmFsaWQpIHtcclxuICAgICAgICBpZiAoIWluc2lkZVZhbHVlICYmIGluc2lkZVZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0VG9NYXgoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCBmID0gdGhpcy5nZXRDb250cm9sKCdudW1iZXInKTtcclxuICAgIGYuc2V0VmFsdWUodGhpcy5fbWF4KTtcclxuICB9XHJcblxyXG4gIGNoZWNrSXNWYWxpZCgpIHtcclxuICAgIGlmICghdGhpcy5pc0F1dG9Db3JyZWN0aW5nVmFsdWUpIHtcclxuICAgICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0aGlzLm51bWJlckZvcm0uZGlzYWJsZWQgfHwgKGYgJiYgZi52YWxpZCB8fCAoIWYuZGlydHkgJiYgIWYudG91Y2hlZCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QaG9uZUlucHV0Qmx1cigpIHtcclxuICAgIGlmICh0aGlzLmlzQXV0b0NvcnJlY3RpbmdWYWx1ZSkge1xyXG4gICAgICBjb25zdCBmID0gdGhpcy5nZXRDb250cm9sKCdudW1iZXInKTtcclxuXHJcbiAgICAgIGlmIChmLnZhbHVlID4gdGhpcy5fbWF4KSB7XHJcbiAgICAgICAgZi5zZXRWYWx1ZSh0aGlzLl9tYXgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZi52YWx1ZSA8IHRoaXMuX21pbikge1xyXG4gICAgICAgIGYuc2V0VmFsdWUodGhpcy5fbWluKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBmID0gdGhpcy5nZXRDb250cm9sKCdudW1iZXInKTtcclxuICAgIGYuc2V0VmFsdWUodmFsdWUsIHtlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0Vmlld1RvTW9kZWxDaGFuZ2U6IGZhbHNlfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubnVtYmVyRm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IElucHV0TnVtYmVyVmFsdWVUeXBlcykge1xyXG4gICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQoaW5zaWRlVmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogaW5zaWRlVmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIHRoaXMub25QaG9uZUlucHV0Qmx1cigpXHJcbiAgICB0aGlzLmJsdXJyZWQuZW1pdCh7dmFsdWU6IHRoaXMudmFsdWUsIGlkOiB0aGlzLnV1aWR9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcblxyXG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0Q29udHJvbCgnbnVtYmVyJyk7XHJcbiAgICBjb25zdCBjbGlwYm9hcmREYXRhID0gZXZlbnQuY2xpcGJvYXJkRGF0YSB8fCAoPGFueT53aW5kb3cpLmNsaXBib2FyZERhdGE7XHJcbiAgICBjb25zdCBwYXN0ZWRUZXh0ID0gY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0Jyk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRlY2ltYWxzKSB7XHJcbiAgICAgIGNhc2UgKDIpOlxyXG4gICAgICBjYXNlICgxKTpcclxuICAgICAgICBmLnNldFZhbHVlKHBhcnNlSW50KHBhc3RlZFRleHQpKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgZi5zZXRWYWx1ZShwYXJzZUludChwYXN0ZWRUZXh0LnNwbGl0KC9bLC5dLylbMF0pKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwibXJ4LWlucHV0LW51bWJlclwiXHJcbiAgICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbiAgICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cIiFpc1ZhbGlkIHx8IGludmFsaWRcIlxyXG4gICAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtaW5wdXQtbnVtYmVyX193cmFwcGVyXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIm51bWJlckZvcm1cIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgI2lucHV0RWxlbWVudFxyXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbdGhvdXNhbmRTZXBhcmF0b3JdPVwidGhvdXNhbmRzU2VwYXJhdG9yXCJcclxuICAgICAgICAgICAgW2RlY2ltYWxNYXJrZXJdPVwiZGVjaW1hbE1hcmtlclwiXHJcbiAgICAgICAgICAgIFtjbGFzc109XCJpbm5lckNsYXNzXCJcclxuICAgICAgICAgICAgW21hc2tdPVwiJ3NlcGFyYXRvci4nICsgZGVjaW1hbHNcIlxyXG4gICAgICAgICAgICBbYWxsb3dOZWdhdGl2ZU51bWJlcnNdPVwiYWxsb3dOZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtcngtZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFpc1ZhbGlkICYmIGludmFsaWRNZXNzYWdlU3RhcnRcIj5cclxuICAgIHt7aW52YWxpZE1lc3NhZ2VTdGFydH19XHJcbiAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJyZXNldFRvTWF4KCRldmVudClcIj57e21heE1lc3NhZ2V9fTwvYT5cclxuICAgIHt7aW52YWxpZE1lc3NhZ2VFbmR9fVxyXG4gIDwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSBbaWRdPVwidXVpZFwiIFtmaWVsZHNdPVwiZmllbGRzXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -241,7 +241,7 @@ export class PdfViewerComponent {
241
241
  }
242
242
  }
243
243
  PdfViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1.NgxExtendedPdfViewerService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
244
- PdfViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PdfViewerComponent, selector: "mrx-pdf-viewer", inputs: { showSidebarButton: "showSidebarButton", showHandToolButton: "showHandToolButton", handTool: "handTool", showFindbarButton: "showFindbarButton", showRotateButton: "showRotateButton", showPrintButton: "showPrintButton", showDownloadButton: "showDownloadButton", showExpandButton: "showExpandButton", defaultZoom: "defaultZoom", downloadFileName: "downloadFileName", src: "src" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [TooltipService], viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }, { propertyName: "findMenu", first: true, predicate: ["findMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #customToolbar>\r\n <div class=\"mrx-pdf-viewer__toolbar\" id=\"toolbarViewer\">\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n *ngIf=\"showSidebarButton\"\r\n [iconClass]=\"'icon-burger'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSidebarViewClick()\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': sidebarVisible}\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [title]=\"'test'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n *ngIf=\"showFindbarButton\"\r\n [iconClass]=\"'icon-search'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSearchClick()\"\r\n [customClasses]=\"'py-1 px-2 ml-1 mrx-pdf-viewer__find-button'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': isSearchPanelVisible}\"\r\n [mrxCdkTooltip]=\"'\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435'\"\r\n ></mrx-icon-button>\r\n <div *ngIf=\"isSearchPanelVisible\" class=\"mrx-pdf-viewer__findbar\" #findMenu>\r\n <div class=\"mrx-pdf-viewer__findbar-wrapper\">\r\n <mrx-input-text\r\n [customClasses]=\"findState === 1 ? 'mrx-input-error' :''+'searchText'\"\r\n placeholder=\"\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435...\"\r\n [ngModel]=\"searchQuery\"\r\n (ngModelChange)=\"onSearch($event)\">\r\n </mrx-input-text>\r\n <span *ngIf=\"searchQuery\" id=\"btnSearchClear\" (click)=\"onSearchClear()\" class=\"mrx-icon icon-close icon-font-16 cursor-pointer\"></span>\r\n </div> \r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findPrevious()\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findNext()\"\r\n ></mrx-icon-button>\r\n <div *ngIf=\"findState === 0 || findState === 2\" class=\"mrx-pdf-viewer__findbar-result\">\r\n {{currentFind}} \u0438\u0437 {{totalFound}}\r\n </div>\r\n <div *ngIf=\"findState === 1\" class=\"color-negative d-flex align-items-center\">\u0424\u0440\u0430\u0437\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n </div>\r\n <div class=\"mrx-pdf-viewer__toolbar--nav ml-2\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPageChange(1)\"\r\n [mrxCdkTooltip]=\"'\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPageChange(page - 1 || 1)\"\r\n [mrxCdkTooltip]=\"'\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-input-number [size]=\"'small'\" [customClasses]=\"'wpx-56'\"\r\n [ngModel]=\"page\"\r\n [numberType]=\"'int'\"\r\n [minValue]=\"1\"\r\n [maxValue]=\"pageCount\"\r\n [isAutoCorrectingValue]=\"true\"\r\n (ngModelChange)=\"onPageChange($event)\"\r\n ></mrx-input-number>\r\n <span class=\"mx-1\">\u0438\u0437 {{pageCount}}</span>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onNextPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onLastPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(false)\"\r\n [iconClass]=\"'icon-minus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(true)\"\r\n [iconClass]=\"'icon-plus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-input-select\r\n [size]=\"'medium'\"\r\n [customClasses]=\"'wpx-156'\"\r\n [items]=\"zoomOptions\"\r\n (ngModelChange)=\"onZoomLevelSelect($event)\"\r\n [ngModel]=\"selectedZoom\"\r\n [clearable]=\"false\">\r\n </mrx-input-select>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-fc-text'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showHandToolButton\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': !handTool}\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onHandToolClick()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0443\u0447\u043D\u043E\u0439 \u0440\u0435\u0436\u0438\u043C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-reload'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showRotateButton\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435'\" \r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-return'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showRotateButton\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(-1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438'\" \r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-arrow-expand'\"\r\n *ngIf=\"showExpandButton\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onExpandModeClick()\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-print'\"\r\n *ngIf=\"showPrintButton\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPrintClick()\"\r\n [mrxCdkTooltip]=\"'\u041F\u0435\u0447\u0430\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n *ngIf=\"showDownloadButton\"\r\n [iconClass]=\"'icon-download'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onDownloadClick()\"\r\n [mrxCdkTooltip]=\"'\u0421\u043A\u0430\u0447\u0430\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ngx-extended-pdf-viewer\r\n #pdfViewer\r\n class=\"mrx-pdf-viewer\"\r\n [page]=\"page\"\r\n [sidebarVisible]=\"showSidebarButton && sidebarVisible\"\r\n (sidebarVisibleChange)=\"onSidebarVisibleChange($event)\"\r\n [customToolbar]=\"customToolbar\"\r\n [showSidebarButton]=\"true\"\r\n (pagesLoaded)=\"onPagesLoaded($event)\"\r\n [zoom]=\"selectedZoom.value\"\r\n (zoomChange)=\"onZoomChange($event)\"\r\n [textLayer]=\"true\"\r\n (pageChange)=\"onPageChange($event)\"\r\n [handTool]=\"handTool\"\r\n [rotation]=\"rotation\"\r\n [showRotateButton]=\"showRotateButton\"\r\n (updateFindMatchesCount)=\"onUpdateMatchCase($event)\"\r\n (updateFindState)=\"onFindStateChanged($event)\"\r\n [ignoreKeys]=\"ignoreKeys\"\r\n [src]=\"src\">\r\n</ngx-extended-pdf-viewer>\r\n", styles: [".mrx-pdf-viewer__toolbar{display:flex;padding:var(--spacing-1, 4px);justify-content:space-between;align-items:center;background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3b43571a;font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-style:normal;font-weight:var(--body-extra-sm-font-weight, 400);line-height:var(--body-lg-bold-font-size, 16px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container{min-height:28px!important;min-width:var(--sizing-10);padding:2px;padding-left:var(--spacing-1);padding-right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-input{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{min-height:var(--sizing-5);padding:calc(var(--spacing-1) / 2) var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option span{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected:before{content:url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.3336 4.6665L6.00032 11.9998L2.66699 8.66649' stroke='%23000' stroke-width='0.999998' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:var(--spacing-1, 4px) var(--spacing-2, 8px)!important;min-height:28px;border:var(--border-width-default, 1px) solid var(--neutral-bg-stroke-default, #BFC5CC);text-align:right;font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon{color:var(--neutral-icon-default)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-20{font-size:20px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button{max-width:36px;max-height:28px;border:var(--border-width-default, 1px) solid transparent;box-sizing:border-box}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button{background:var(--brand-bg-secondary-default, #EDF5FF);border:var(--border-width-default, 1px) solid var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active{background:var(--brand-bg-secondary-default, #EDF5FF);border:1px solid var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button.icon-search.mrx-pdf-viewer__find-button{position:relative}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-input-text.mrx-input-text-lg input{font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-icon-button{max-width:20px;max-height:20px}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar-result{display:flex;padding:6px var(--spacing-2, 8px);justify-content:center;align-items:center;gap:10px;border-radius:var(--sizing-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar--nav{display:flex;align-items:center}.mrx-pdf-viewer__toolbar--nav span{color:var(--neutral-text-tertiary, #71767E)}.mrx-pdf-viewer__toolbar__find-button{position:relative}.mrx-pdf-viewer__findbar{position:absolute;top:47px;left:35px;z-index:100;background:white;width:auto;display:flex;padding:var(--spacing-3, 12px);border-radius:var(--sizing-1, 4px);box-shadow:0 1px 4px #3a3a3a4d;max-height:44px;box-sizing:border-box;gap:4px}.mrx-pdf-viewer__findbar:before{position:absolute;content:\"\";background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2012%22%20fill%3D%22none%22%3E%0A%3Cpath%20d%3D%22M24%2012H0L12%200L24%2012Z%22%20fill%3D%22white%22/%3E%0A%3C/svg%3E);background-repeat:no-repeat;top:-12px;left:12px;width:24px;height:12px}.mrx-pdf-viewer__findbar .searchText{position:absolute;top:20px}.mrx-pdf-viewer__findbar-wrapper{position:relative;height:48px}.mrx-pdf-viewer__findbar-wrapper .mrx-icon.icon-close{position:absolute;right:var(--spacing-3);top:50%;transform:translateY(-50%)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar{background-color:var(--neutral-bg-island-default, #F8F9FA);padding:var(--spacing-1, 4px);height:28px!important;box-sizing:border-box;width:100%;display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton{margin-top:0;margin-bottom:0;width:var(--sizing-6, 24px);max-width:var(--sizing-6, 24px);height:20px;padding:0;font-family:mrx-icon-font!important;color:var(--neutral-icon-default, #33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;border-radius:var(--sizing-1, 4px);outline:none;border:1px solid transparent}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:focus{border:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:hover{background:var(--brand-bg-tertiary-hover, #edf5ff)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton.toggled{border:1px solid var(--brand-bg-primary-default, #2A6AB8);background:var(--brand-bg-secondary-default, #EDF5FF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton svg{display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewThumbnail:after{content:\"\\e968\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewOutline:after{content:\"\\ea1b\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewLayers:after{content:\"\\e935\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-content #sidebarContent{top:0!important;background-color:var(--neutral-bg-island-default, #F8F9FA)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar{width:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView{padding:var(--spacing-6, 24px) var(--sizing-10, 40px);width:calc(100% - var(--sizing-20, 80px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail{margin:0;border:var(--spacing-1) solid rgba(0,0,0,0);border-radius:0}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail.selected{border:var(--spacing-1, 4px) solid var(--brand-bg-secondary-selected, #BED6F1)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView{padding:var(--spacing-3, 16px);width:calc(100% - var(--spacing-6, 64px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:hover{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a{color:var(--neutral-text-primary, #262626);font-size:var(--body-sm-font-size, 12px);line-height:var(--body-lg-bold-font-size, 16px);outline:none;border:none;padding:calc(var(--spacing-1, 4px) / 2) var(--spacing-1, 4px);min-width:calc(100% - var(--sizing-3, 12px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a:focus{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem.selected>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem.selected>a{border-radius:var(--spacing-1, 4px);border:1px solid var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem input[type=checkbox]:checked,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem input[type=checkbox]:checked{accent-color:var(--brand-bg-primary-default, #2A6AB8)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler{font-family:mrx-icon-font!important;color:var(--neutral-icon-default, 33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;cursor:pointer}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler:before{content:\"\\e926\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler.treeItemsHidden:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler.treeItemsHidden:before{content:\"\\e925\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar{width:var(--sizing-2, 8px);height:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer.grab-to-pan-grab{cursor:default!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .pdfViewer .page{border:none;box-shadow:0 1px 4px #3b43571a;margin-bottom:var(--spacing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight{background-color:var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight.selected{background-color:var(--system-text-positive, #004A1A)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer ::selection{background:var(--brand-bg-secondary-hover, #bed6f1)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .dialogButton{color:var(--neutral-text-primary, #262626);font-size:var(--body-md-font-size, 14px);line-height:20px;background-color:var(--brand-bg-tertiary-default, #FFF);border:var(--brand-bg-tertiary-default, #FFF)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog{box-shadow:0 1px 4px #3a3a3a4d;border:none;padding:var(--spacing-3, 16px);background:var(--brand-bg-tertiary-default, #FFF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog::backdrop{background:var(--neutral-bg-modal, rgba(38, 38, 38, .25))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress{border-radius:var(--sizing-1, 4px);width:120px;height:var(--sizing-1, 4px);vertical-align:middle}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-bar{background-color:var(--neutral-bg-island-default, #F8F9FA);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-value{background-color:var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}\n"], components: [{ type: i2.IconButtonComponent, selector: "mrx-icon-button", inputs: ["size", "state", "type", "iconClass", "disabled", "tooltip", "tooltipPosition", "tooltipMaxWidth", "isActive", "customClasses"], outputs: ["mrxClick"] }, { type: i3.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: i4.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["changed", "modelChange", "blurred"] }, { type: i5.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "hideSelected", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched", "cleared"] }, { type: i1.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "delayFirstView", "showTextEditor", "showStampEditor", "showDrawEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "useBrowserLocale", "forceUsingLegacyES5", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindCurrentPageOnly", "showFindPageRange", "showFindEntireWord", "showFindEntirePhrase", "showFindMatchDiacritics", "showFindFuzzySearch", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showZoomButtons", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "handTool", "showHandToolButton", "showScrollingButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
244
+ PdfViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: PdfViewerComponent, selector: "mrx-pdf-viewer", inputs: { showSidebarButton: "showSidebarButton", showHandToolButton: "showHandToolButton", handTool: "handTool", showFindbarButton: "showFindbarButton", showRotateButton: "showRotateButton", showPrintButton: "showPrintButton", showDownloadButton: "showDownloadButton", showExpandButton: "showExpandButton", defaultZoom: "defaultZoom", downloadFileName: "downloadFileName", src: "src" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [TooltipService], viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }, { propertyName: "findMenu", first: true, predicate: ["findMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #customToolbar>\r\n <div class=\"mrx-pdf-viewer__toolbar\" id=\"toolbarViewer\">\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n *ngIf=\"showSidebarButton\"\r\n [iconClass]=\"'icon-burger'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSidebarViewClick()\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': sidebarVisible}\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [title]=\"'test'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C/\u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n *ngIf=\"showFindbarButton\"\r\n [iconClass]=\"'icon-search'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onSearchClick()\"\r\n [customClasses]=\"'py-1 px-2 ml-1 mrx-pdf-viewer__find-button'\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': isSearchPanelVisible}\"\r\n [mrxCdkTooltip]=\"'\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435'\"\r\n ></mrx-icon-button>\r\n <div *ngIf=\"isSearchPanelVisible\" class=\"mrx-pdf-viewer__findbar\" #findMenu>\r\n <div class=\"mrx-pdf-viewer__findbar-wrapper\">\r\n <mrx-input-text\r\n [customClasses]=\"findState === 1 ? 'mrx-input-error' :''+'searchText'\"\r\n placeholder=\"\u041D\u0430\u0439\u0442\u0438 \u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435...\"\r\n [ngModel]=\"searchQuery\"\r\n (ngModelChange)=\"onSearch($event)\">\r\n </mrx-input-text>\r\n <span *ngIf=\"searchQuery\" id=\"btnSearchClear\" (click)=\"onSearchClear()\" class=\"mrx-icon icon-close icon-font-16 cursor-pointer\"></span>\r\n </div> \r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findPrevious()\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'p-1'\"\r\n (mrxClick)=\"findNext()\"\r\n ></mrx-icon-button>\r\n <div *ngIf=\"findState === 0 || findState === 2\" class=\"mrx-pdf-viewer__findbar-result\">\r\n {{currentFind}} \u0438\u0437 {{totalFound}}\r\n </div>\r\n <div *ngIf=\"findState === 1\" class=\"color-negative d-flex align-items-center\">\u0424\u0440\u0430\u0437\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430</div>\r\n </div>\r\n <div class=\"mrx-pdf-viewer__toolbar--nav ml-2\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPageChange(1)\"\r\n [mrxCdkTooltip]=\"'\u041F\u0435\u0440\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-left'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPageChange(page - 1 || 1)\"\r\n [mrxCdkTooltip]=\"'\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-input-number [size]=\"'small'\" [customClasses]=\"'wpx-56'\"\r\n [ngModel]=\"page\"\r\n [numberType]=\"'int'\"\r\n [minValue]=\"1\"\r\n [maxValue]=\"pageCount\"\r\n [isAutoCorrectingValue]=\"true\"\r\n (ngModelChange)=\"onPageChange($event)\"\r\n ></mrx-input-number>\r\n <span class=\"mx-1\">\u0438\u0437 {{pageCount}}</span>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-chevron-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onNextPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-in-the-end-right'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onLastPage()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430'\"\r\n ></mrx-icon-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(false)\"\r\n [iconClass]=\"'icon-minus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n (mrxClick)=\"zoomClick(true)\"\r\n [iconClass]=\"'icon-plus'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-input-select\r\n [size]=\"'medium'\"\r\n [customClasses]=\"'wpx-156'\"\r\n [items]=\"zoomOptions\"\r\n (ngModelChange)=\"onZoomLevelSelect($event)\"\r\n [ngModel]=\"selectedZoom\"\r\n [clearable]=\"false\">\r\n </mrx-input-select>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-fc-text'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showHandToolButton\"\r\n [ngClass]=\"{'mrx-icon-button--toggled': !handTool}\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onHandToolClick()\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0443\u0447\u043D\u043E\u0439 \u0440\u0435\u0436\u0438\u043C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-reload'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showRotateButton\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u043E \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0435'\" \r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-return'\"\r\n [size]=\"'medium'\"\r\n *ngIf=\"showRotateButton\"\r\n [state]=\"'default'\"\r\n (mrxClick)=\"onRotate(-1)\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u043F\u0440\u043E\u0442\u0438\u0432 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0441\u0442\u0440\u0435\u043B\u043A\u0438'\" \r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-arrow-expand'\"\r\n *ngIf=\"showExpandButton\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onExpandModeClick()\"\r\n [mrxCdkTooltip]=\"'\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0430 \u0432\u0435\u0441\u044C \u044D\u043A\u0440\u0430\u043D'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n [iconClass]=\"'icon-print'\"\r\n *ngIf=\"showPrintButton\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onPrintClick()\"\r\n [mrxCdkTooltip]=\"'\u041F\u0435\u0447\u0430\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n <mrx-icon-button\r\n *ngIf=\"showDownloadButton\"\r\n [iconClass]=\"'icon-download'\"\r\n [size]=\"'medium'\"\r\n [state]=\"'default'\"\r\n [customClasses]=\"'py-1 px-2'\"\r\n (mrxClick)=\"onDownloadClick()\"\r\n [mrxCdkTooltip]=\"'\u0421\u043A\u0430\u0447\u0430\u0442\u044C'\"\r\n ></mrx-icon-button>\r\n </div>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<ngx-extended-pdf-viewer\r\n #pdfViewer\r\n class=\"mrx-pdf-viewer\"\r\n [page]=\"page\"\r\n [sidebarVisible]=\"showSidebarButton && sidebarVisible\"\r\n (sidebarVisibleChange)=\"onSidebarVisibleChange($event)\"\r\n [customToolbar]=\"customToolbar\"\r\n [showSidebarButton]=\"true\"\r\n (pagesLoaded)=\"onPagesLoaded($event)\"\r\n [zoom]=\"selectedZoom.value\"\r\n (zoomChange)=\"onZoomChange($event)\"\r\n [textLayer]=\"true\"\r\n (pageChange)=\"onPageChange($event)\"\r\n [handTool]=\"handTool\"\r\n [rotation]=\"rotation\"\r\n [showRotateButton]=\"showRotateButton\"\r\n (updateFindMatchesCount)=\"onUpdateMatchCase($event)\"\r\n (updateFindState)=\"onFindStateChanged($event)\"\r\n [ignoreKeys]=\"ignoreKeys\"\r\n [src]=\"src\">\r\n</ngx-extended-pdf-viewer>\r\n", styles: [".mrx-pdf-viewer__toolbar{display:flex;padding:var(--spacing-1, 4px);justify-content:space-between;align-items:center;background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3b43571a;font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-style:normal;font-weight:var(--body-extra-sm-font-weight, 400);line-height:var(--body-lg-bold-font-size, 16px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container{min-height:28px!important;min-width:var(--sizing-10);padding:2px;padding-left:var(--spacing-1);padding-right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-select-container .ng-value-container .ng-input{padding-left:var(--spacing-1)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-value .ng-value-label{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{min-height:var(--sizing-5);padding:calc(var(--spacing-1) / 2) var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option span{font-size:var(--body-sm-font-size);line-height:var(--body-sm-line-height)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-select .ng-select.mrx-input-select-md .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected:before{content:url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.3336 4.6665L6.00032 11.9998L2.66699 8.66649' stroke='%23000' stroke-width='0.999998' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");right:var(--spacing-2)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-input-number.mrx-input-number.mrx-input-number-sm:not(.mrx-input-number-with-icon) input{padding:var(--spacing-1, 4px) var(--spacing-2, 8px)!important;min-height:28px;border:var(--border-width-default, 1px) solid var(--neutral-bg-stroke-default, #BFC5CC);text-align:right;font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon{color:var(--neutral-icon-default)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon.icon-font-20{font-size:20px!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button{max-width:36px;max-height:28px;border:var(--border-width-default, 1px) solid transparent;box-sizing:border-box}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button--toggled .mrx-icon-button{background:var(--brand-bg-secondary-default, #EDF5FF);border:var(--border-width-default, 1px) solid var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button:active{background:var(--brand-bg-secondary-default, #EDF5FF);border:1px solid var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-icon-button.icon-search.mrx-pdf-viewer__find-button{position:relative}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-input-text.mrx-input-text-lg input{font-size:var(--body-sm-font-size, 12px)!important}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar .mrx-icon-button{max-width:20px;max-height:20px}.mrx-pdf-viewer__toolbar ::ng-deep .mrx-pdf-viewer__findbar-result{display:flex;padding:6px var(--spacing-2, 8px);justify-content:center;align-items:center;gap:10px;border-radius:var(--sizing-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-pdf-viewer__toolbar--nav{display:flex;align-items:center}.mrx-pdf-viewer__toolbar--nav span{color:var(--neutral-text-tertiary, #71767E)}.mrx-pdf-viewer__toolbar__find-button{position:relative}.mrx-pdf-viewer__findbar{position:absolute;top:47px;left:35px;z-index:100;background:white;width:auto;display:flex;padding:var(--spacing-3, 12px);border-radius:var(--sizing-1, 4px);box-shadow:0 1px 4px #3a3a3a4d;max-height:44px;box-sizing:border-box;gap:4px}.mrx-pdf-viewer__findbar:before{position:absolute;content:\"\";background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2012%22%20fill%3D%22none%22%3E%0A%3Cpath%20d%3D%22M24%2012H0L12%200L24%2012Z%22%20fill%3D%22white%22/%3E%0A%3C/svg%3E);background-repeat:no-repeat;top:-12px;left:12px;width:24px;height:12px}.mrx-pdf-viewer__findbar .searchText{position:absolute;top:20px}.mrx-pdf-viewer__findbar-wrapper{position:relative;height:48px}.mrx-pdf-viewer__findbar-wrapper .mrx-icon.icon-close{position:absolute;right:var(--spacing-3);top:50%;transform:translateY(-50%)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar{background-color:var(--neutral-bg-island-default, #F8F9FA);padding:var(--spacing-1, 4px);height:28px!important;box-sizing:border-box;width:100%;display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton{margin-top:0;margin-bottom:0;width:var(--sizing-6, 24px);max-width:var(--sizing-6, 24px);height:20px;padding:0;font-family:mrx-icon-font!important;color:var(--neutral-icon-default, #33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;border-radius:var(--sizing-1, 4px);outline:none;border:1px solid transparent}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:focus{border:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton:hover{background:var(--brand-bg-tertiary-hover, #edf5ff)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton.toggled{border:1px solid var(--brand-bg-primary-default, #2A6AB8);background:var(--brand-bg-secondary-default, #EDF5FF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton svg{display:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewThumbnail:after{content:\"\\e968\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewOutline:after{content:\"\\ea1b\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-toolbar #toolbarSidebar button.toolbarButton#viewLayers:after{content:\"\\e935\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer pdf-sidebar pdf-sidebar-content #sidebarContent{top:0!important;background-color:var(--neutral-bg-island-default, #F8F9FA)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar{width:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView::-webkit-scrollbar-thumb:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView{padding:var(--spacing-6, 24px) var(--sizing-10, 40px);width:calc(100% - var(--sizing-20, 80px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail{margin:0;border:var(--spacing-1) solid rgba(0,0,0,0);border-radius:0}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #thumbnailView .thumbnail.selected{border:var(--spacing-1, 4px) solid var(--brand-bg-secondary-selected, #BED6F1)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView{padding:var(--spacing-3, 16px);width:calc(100% - var(--spacing-6, 64px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem:hover,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem:hover{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a{color:var(--neutral-text-primary, #262626);font-size:var(--body-sm-font-size, 12px);line-height:var(--body-lg-bold-font-size, 16px);outline:none;border:none;padding:calc(var(--spacing-1, 4px) / 2) var(--spacing-1, 4px);min-width:calc(100% - var(--sizing-3, 12px))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem>a:focus,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem>a:focus{outline:none}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem.selected>a,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem.selected>a{border-radius:var(--spacing-1, 4px);border:1px solid var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItem input[type=checkbox]:checked,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItem input[type=checkbox]:checked{accent-color:var(--brand-bg-primary-default, #2A6AB8)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler{font-family:mrx-icon-font!important;color:var(--neutral-icon-default, 33373C);line-height:1;font-size:var(--body-lg-font-size, 16px);box-sizing:border-box;cursor:pointer}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler:before{content:\"\\e926\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #layersView .treeItemToggler.treeItemsHidden:before,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer.mrx-pdf-viewer .html #outlineView.treeWithDeepNesting .treeItemToggler.treeItemsHidden:before{content:\"\\e925\"}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar{width:var(--sizing-2, 8px);height:var(--sizing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default, #BFC5CC);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer::-webkit-scrollbar-thumb:hover{background:var(--neutral-bg-stroke-default, #BFC5CC)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer #viewerContainer.grab-to-pan-grab{cursor:default!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .pdfViewer .page{border:none;box-shadow:0 1px 4px #3b43571a;margin-bottom:var(--spacing-2, 8px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight{background-color:var(--brand-bg-primary-default, #2A6AB8)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer .highlight.selected{background-color:var(--system-text-positive, #004A1A)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .textLayer ::selection{background:var(--brand-bg-secondary-hover, #bed6f1)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog,::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer .dialogButton{color:var(--neutral-text-primary, #262626);font-size:var(--body-md-font-size, 14px);line-height:20px;background-color:var(--brand-bg-tertiary-default, #FFF);border:var(--brand-bg-tertiary-default, #FFF)!important}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog{box-shadow:0 1px 4px #3a3a3a4d;border:none;padding:var(--spacing-3, 16px);background:var(--brand-bg-tertiary-default, #FFF)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog::backdrop{background:var(--neutral-bg-modal, rgba(38, 38, 38, .25))}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress{border-radius:var(--sizing-1, 4px);width:120px;height:var(--sizing-1, 4px);vertical-align:middle}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-bar{background-color:var(--neutral-bg-island-default, #F8F9FA);border-radius:var(--sizing-1, 4px)}::ng-deep mrx-pdf-viewer ngx-extended-pdf-viewer dialog progress::-webkit-progress-value{background-color:var(--brand-bg-primary-default, #2A6AB8);border-radius:var(--sizing-1, 4px)}\n"], components: [{ type: i2.IconButtonComponent, selector: "mrx-icon-button", inputs: ["size", "state", "type", "iconClass", "disabled", "tooltip", "tooltipPosition", "tooltipMaxWidth", "isActive", "customClasses"], outputs: ["mrxClick"] }, { type: i3.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: i4.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "maxlength", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["changed", "modelChange", "blurred"] }, { type: i5.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "hideSelected", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched", "cleared"] }, { type: i1.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "delayFirstView", "showTextEditor", "showStampEditor", "showDrawEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "useBrowserLocale", "forceUsingLegacyES5", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindCurrentPageOnly", "showFindPageRange", "showFindEntireWord", "showFindEntirePhrase", "showFindMatchDiacritics", "showFindFuzzySearch", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showZoomButtons", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "handTool", "showHandToolButton", "showScrollingButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
245
245
  trigger('openClose', [
246
246
  state('open', style({ height: '*', padding: '*', 'margin-bottom': '8px' })),
247
247
  state('closed', style({ height: 0, padding: 0, 'margin-bottom': 0 })),
@@ -291,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
291
291
  type: HostListener,
292
292
  args: ['document:keydown', ['$event']]
293
293
  }] } });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztBQXNCakMsTUFBTSxPQUFPLGtCQUFrQjtJQXlDN0IsWUFDVSxpQkFBOEMsRUFDOUMsU0FBb0IsRUFDcEIsSUFBdUI7UUFGdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBM0MxQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQWMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUN6QyxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBRyxJQUFJ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QUVvQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLDZCQUE2QjtnQkFDakIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQVVyQixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLi90b29sdGlwL3NlcnZpY2VzL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmluZFJlc3VsdE1hdGNoZXNDb3VudCxcclxuICBGaW5kU3RhdGUsXHJcbiAgTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQsXHJcbiAgTmd4RXh0ZW5kZWRQZGZWaWV3ZXJTZXJ2aWNlLFxyXG4gIFBhZ2VzTG9hZGVkRXZlbnRcclxufSBmcm9tICduZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcic7XHJcblxyXG50eXBlIFJvdGF0aW9uVHlwZSA9IDAgfCA5MCB8IDE4MCB8IDI3MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXBkZi12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnb3BlbicsXHJcbiAgICAgICAgc3R5bGUoe2hlaWdodDogJyonLCBwYWRkaW5nOiAnKicsICdtYXJnaW4tYm90dG9tJzogJzhweCd9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZSgnY2xvc2VkJywgc3R5bGUoe2hlaWdodDogMCwgcGFkZGluZzogMCwgJ21hcmdpbi1ib3R0b20nOiAwfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgXSksXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUb29sdGlwU2VydmljZV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHVibGljIHNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgcHVibGljIGZpbmRTdGF0ZTogRmluZFN0YXRlID0gRmluZFN0YXRlLlBFTkRJTkc7XHJcbiAgcHVibGljIHRvdGFsRm91bmQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGN1cnJlbnRGaW5kOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBwYWdlID0gMTtcclxuICBwdWJsaWMgaXNTZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICBwdWJsaWMgc2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG4gIHB1YmxpYyBwYWdlQ291bnQgPSAxO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFpvb206IHsgdmFsdWU6IG51bWJlciB8IHN0cmluZywgbGFiZWw6IHN0cmluZyB9ID0ge3ZhbHVlOiAnYXV0bycsIGxhYmVsOiAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnfTtcclxuICBwdWJsaWMgem9vbU9wdGlvbnMgPSBbXHJcbiAgICB7dmFsdWU6ICdhdXRvJywgbGFiZWw6ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCd9LFxyXG4gICAge3ZhbHVlOiAncGFnZS1hY3R1YWwnLCBsYWJlbDogJ9Cg0LXQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAJ30sXHJcbiAgICB7dmFsdWU6ICdwZ2UtZml0JywgbGFiZWw6ICfQn9C+INGA0LDQt9C80LXRgNGDINGB0YLRgNCw0L3QuNGG0YsnfSxcclxuICAgIHt2YWx1ZTogJ3BhZ2Utd2lkdGgnLCBsYWJlbDogJ9Cf0L4g0YjQuNGA0LjQvdC1INGB0YLRgNCw0L3QuNGG0YsnfSxcclxuICAgIHt2YWx1ZTogNTAsIGxhYmVsOiAnNTAlJ30sXHJcbiAgICB7dmFsdWU6IDEwMCwgbGFiZWw6ICcxMDAlJ30sXHJcbiAgICB7dmFsdWU6IDEyNSwgbGFiZWw6ICcxMjUlJ30sXHJcbiAgICB7dmFsdWU6IDE1MCwgbGFiZWw6ICcxNTAlJ30sXHJcbiAgICB7dmFsdWU6IDIwMCwgbGFiZWw6ICcyMDAlJ30sXHJcbiAgICB7dmFsdWU6IDMwMCwgbGFiZWw6ICczMDAlJ30sXHJcbiAgICB7dmFsdWU6IDQwMCwgbGFiZWw6ICc0MDAlJ30sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIHJvdGF0aW9uOiBSb3RhdGlvblR5cGUgPSAwO1xyXG5cclxuICBASW5wdXQoKSBzaG93U2lkZWJhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0hhbmRUb29sQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGFuZFRvb2wgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dGaW5kYmFyQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93Um90YXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93UHJpbnRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0V4cGFuZEJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVmYXVsdFpvb206IG51bWJlciB8ICdhdXRvJyB8ICdwYWdlLWFjdHVhbCcgfCAncGdlLWZpdCcgfCAncGFnZS13aWR0aCcgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHNyYyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50KSBwZGZWaWV3ZXIhOiBOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdmaW5kTWVudScpIGZpbmRNZW51OiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGRmVmlld2VyU2VydmljZTogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSAmJiBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3AnICYmICF0aGlzLnNob3dQcmludEJ1dHRvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3Qge2RlZmF1bHRab29tfSA9IGNoYW5nZXM7XHJcblxyXG4gICAgaWYgKGRlZmF1bHRab29tLmN1cnJlbnRWYWx1ZSAhPSBkZWZhdWx0Wm9vbS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdFpvb20oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2VcclxuICB9XHJcblxyXG4gIGluaXRab29tKCkge1xyXG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09IHRoaXMuZGVmYXVsdFpvb20pO1xyXG5cclxuICAgIGlmIChleGlzdGluZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nVmFsdWV9O1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IHRoaXMuZGVmYXVsdFpvb20sIGxhYmVsOiBgJHt0aGlzLmRlZmF1bHRab29tfSVgfTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgaWdub3JlS2V5cygpOnN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGlnbm9yZWRLZXlzID0gW107XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLnNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnUicsICdTaGlmdCtSJyk7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93RG93bmxvYWRCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnQ1RSTCtTJyk7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93U2lkZWJhckJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdGNCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpZ25vcmVkS2V5cztcclxuICB9XHJcblxyXG4gIGluaXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5zaG93RmluZGJhckJ1dHRvbikge1xyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnZicgJiYgZXZlbnQuY3RybEtleSkge1xyXG4gICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0U2VhcmNoKCk7XHJcbiAgICB0aGlzLmluaXRab29tKCk7XHJcblxyXG4gICAgdGhpcy5fcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3QgaXNJbk1lbnUgPSB0aGlzLmZpbmRNZW51Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcclxuICAgICAgICAgIHx8IChldmVudC50YXJnZXQgYXMgYW55KS5pZCA9PT0gJ2ZpbmROZXh0J1xyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnZmluZFByZXZpb3VzJ1xyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnYnRuU2VhcmNoQ2xlYXInO1xyXG5cclxuICAgICAgICBjb25zdCBpc0ZpbmRCdXR0b24gPSAoZXZlbnQudGFyZ2V0IGFzIGFueSkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtcngtcGRmLXZpZXdlcl9fZmluZC1idXR0b24nKTtcclxuXHJcbiAgICAgICAgaWYgKCFpc0luTWVudSAmJiAhaXNGaW5kQnV0dG9uKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5wYWdlID0gJGV2ZW50IHx8IDE7XHJcbiAgfVxyXG5cclxuICBvbk5leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMucGFnZUNvdW50KSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZSArIDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxhc3RQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlQ291bnQ7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VzTG9hZGVkKCRldmVudDogUGFnZXNMb2FkZWRFdmVudCkge1xyXG4gICAgY29uc3Qgdmlld091dGxpbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdmlld091dGxpbmUnKTtcclxuICAgIGNvbnN0IHZpZXdUaHVtYm5haWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdmlld1RodW1ibmFpbCcpO1xyXG5cclxuICAgIHRoaXMucGFnZUNvdW50ID0gJGV2ZW50LnBhZ2VzQ291bnQ7XHJcblxyXG4gICAgaWYgKHZpZXdPdXRsaW5lKSB7XHJcbiAgICAgICh2aWV3T3V0bGluZSBhcyBhbnkpLnRpdGxlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZpZXdUaHVtYm5haWwpIHtcclxuICAgICAgKHZpZXdUaHVtYm5haWwgYXMgYW55KS50aXRsZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgem9vbUNsaWNrKGluY3JlYXNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogMTAwLCBsYWJlbDogJzEwMCUnfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5jcmVhc2UgPyB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSArPSAyMCA6IHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlIC09IDIwO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiBuZXdWYWx1ZSwgbGFiZWw6IGAke25ld1ZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUxldmVsU2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgb25ab29tQ2hhbmdlKCRldmVudDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ09wdGlvbiA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09ICRldmVudCk7XHJcblxyXG4gICAgaWYgKGV4aXN0aW5nT3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nT3B0aW9ufTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpeGVkVmFsdWUgPSBNYXRoLnJvdW5kKE51bWJlcigkZXZlbnQpKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogZml4ZWRWYWx1ZSwgbGFiZWw6IGAke2ZpeGVkVmFsdWV9JWB9O1xyXG4gIH1cclxuXHJcbiAgb25Sb3RhdGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5yb3RhdGlvbjtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uIDwgMCkge1xyXG4gICAgICBkYXRhIC09IDkwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YSArPSA5MDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YSA+PSAzNjApIHtcclxuICAgICAgdGhpcy5yb3RhdGlvbiA9IGRhdGEgLSAzNjAgYXMgUm90YXRpb25UeXBlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPCAwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSAzNjAgKyBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm90YXRpb24gPSBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIG9uUHJpbnRDbGljaygpIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UucHJpbnQoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcHJpbnREaWFsb2cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaWFsb2cjcHJpbnRTZXJ2aWNlRGlhbG9nJyk7XHJcbiAgICAgIGNvbnN0IHByb2dyZXNzVGV4dCA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcucm93IHNwYW4nKTtcclxuICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcHJpbnREaWFsb2c/LnF1ZXJ5U2VsZWN0b3IoJyNwcmludENhbmNlbCBzcGFuJyk7XHJcblxyXG4gICAgICBpZiAocHJvZ3Jlc3NUZXh0KSB7XHJcbiAgICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gJ9Cf0L7QtNCz0L7RgtC+0LLQutCwINC00L7QutGD0LzQtdC90YLQsCDQuiDQv9C10YfQsNGC0LguLi4nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY2FuY2VsQnV0dG9uKSB7XHJcbiAgICAgICAgY2FuY2VsQnV0dG9uLnRleHRDb250ZW50ID0gJ9Ce0YLQvNC10L3QsCc7XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25Eb3dubG9hZENsaWNrKCkge1xyXG4gICAgY29uc3QgYmxvYjogQmxvYiA9IGF3YWl0IHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZ2V0Q3VycmVudERvY3VtZW50QXNCbG9iKCk7XHJcbiAgICBjb25zdCBvYmplY3RVcmw6IHN0cmluZyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBjb25zdCBhOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuXHJcbiAgICBhLmhyZWYgPSBvYmplY3RVcmw7XHJcbiAgICBhLmRvd25sb2FkID0gdGhpcy5kb3dubG9hZEZpbGVOYW1lIHx8IHRoaXMuc3JjO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgIGEuY2xpY2soKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlld0NsaWNrKCkge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICF0aGlzLnNpZGViYXJWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRNb2RlQ2xpY2soKSB7XHJcbiAgICBjb25zdCBwZGZWaWV3ZXJBcHBsaWNhdGlvbiA9ICh3aW5kb3cgYXMgYW55KS5QREZWaWV3ZXJBcHBsaWNhdGlvbjtcclxuXHJcbiAgICBpZiAocGRmVmlld2VyQXBwbGljYXRpb24/LnBkZlZpZXdlcikge1xyXG4gICAgICBwZGZWaWV3ZXJBcHBsaWNhdGlvbi5yZXF1ZXN0UHJlc2VudGF0aW9uTW9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDbGljaygpIHtcclxuICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSAhdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gXCJcIjtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgnJywge30pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goJGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAkZXZlbnQ7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgkZXZlbnQsIHtoaWdobGlnaHRBbGw6IHRydWV9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGRmVmlld2VyU2VydmljZS5maW5kKCcnLCB7fSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTmV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZE5leHQoKTtcclxuICB9XHJcblxyXG4gIGZpbmRQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZFByZXZpb3VzKCk7XHJcbiAgfVxyXG5cclxuICBvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQ6IEZpbmRSZXN1bHRNYXRjaGVzQ291bnQpIHtcclxuICAgIHRoaXMudG90YWxGb3VuZCA9ICRldmVudC50b3RhbDtcclxuICAgIHRoaXMuY3VycmVudEZpbmQgPSAkZXZlbnQuY3VycmVudDtcclxuICB9XHJcblxyXG4gIG9uRmluZFN0YXRlQ2hhbmdlZCgkZXZlbnQ6IEZpbmRTdGF0ZSkge1xyXG4gICAgdGhpcy5maW5kU3RhdGUgPSAkZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICRldmVudDtcclxuICB9XHJcblxyXG4gIG9uSGFuZFRvb2xDbGljaygpIHtcclxuICAgIHRoaXMuaGFuZFRvb2wgPSAhdGhpcy5oYW5kVG9vbDtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNjdXN0b21Ub29sYmFyPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fdG9vbGJhclwiIGlkPVwidG9vbGJhclZpZXdlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dTaWRlYmFyQnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYnVyZ2VyJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblNpZGViYXJWaWV3Q2xpY2soKVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6IHNpZGViYXJWaXNpYmxlfVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdGl0bGVdPVwiJ3Rlc3QnXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQsdC+0LrQvtCy0YPRjiDQv9Cw0L3QtdC70YwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dGaW5kYmFyQnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tc2VhcmNoJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblNlYXJjaENsaWNrKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMiBtbC0xIG1yeC1wZGYtdmlld2VyX19maW5kLWJ1dHRvbidcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiBpc1NlYXJjaFBhbmVsVmlzaWJsZX1cIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPGRpdiAqbmdJZj1cImlzU2VhcmNoUGFuZWxWaXNpYmxlXCIgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhclwiICNmaW5kTWVudT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJfX2ZpbmRiYXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG1yeC1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cImZpbmRTdGF0ZSA9PT0gMSA/ICdtcngtaW5wdXQtZXJyb3InIDonJysnc2VhcmNoVGV4dCdcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1Li4uXCJcclxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoUXVlcnlcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L21yeC1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWFyY2hRdWVyeVwiIGlkPVwiYnRuU2VhcmNoQ2xlYXJcIiAoY2xpY2spPVwib25TZWFyY2hDbGVhcigpXCIgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNiBjdXJzb3ItcG9pbnRlclwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj4gICAgICAgIFxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJmaW5kUHJldmlvdXMoKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncC0xJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZE5leHQoKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmaW5kU3RhdGUgPT09IDAgfHwgZmluZFN0YXRlID09PSAyXCIgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhci1yZXN1bHRcIj5cclxuICAgICAgICAgIHt7Y3VycmVudEZpbmR9fSDQuNC3IHt7dG90YWxGb3VuZH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZpbmRTdGF0ZSA9PT0gMVwiIGNsYXNzPVwiY29sb3ItbmVnYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPtCk0YDQsNC30LAg0L3QtSDQvdCw0LnQtNC10L3QsDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyLS1uYXYgbWwtMlwiPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblBhZ2VDaGFuZ2UoMSlcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cf0LXRgNCy0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblBhZ2VDaGFuZ2UocGFnZSAtIDEgfHwgMSlcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pbnB1dC1udW1iZXIgW3NpemVdPVwiJ3NtYWxsJ1wiIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtNTYnXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW251bWJlclR5cGVdPVwiJ2ludCdcIlxyXG4gICAgICAgICAgW21pblZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgW21heFZhbHVlXT1cInBhZ2VDb3VudFwiXHJcbiAgICAgICAgICBbaXNBdXRvQ29ycmVjdGluZ1ZhbHVlXT1cInRydWVcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+0LjQtyB7e3BhZ2VDb3VudH19PC9zcGFuPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25OZXh0UGFnZSgpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQodC70LXQtNGD0Y7RidCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWluLXRoZS1lbmQtcmlnaHQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uTGFzdFBhZ2UoKVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtGB0LvQtdC00L3Rj9GPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayhmYWxzZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tbWludXMnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQo9C80LXQvdGM0YjQuNGC0YwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwiem9vbUNsaWNrKHRydWUpXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcGx1cydcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0KPQstC10LvQuNGH0LjRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3dweC0xNTYnXCJcclxuICAgICAgICBbaXRlbXNdPVwiem9vbU9wdGlvbnNcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUxldmVsU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkWm9vbVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWZjLXRleHQnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJzaG93SGFuZFRvb2xCdXR0b25cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogIWhhbmRUb29sfVwiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgKG1yeENsaWNrKT1cIm9uSGFuZFRvb2xDbGljaygpXCJcclxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9CS0LrQu9GO0YfQuNGC0Ywg0YDRg9GH0L3QvtC5INGA0LXQttC40LwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZWxvYWQnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJzaG93Um90YXRlQnV0dG9uXCJcclxuICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoMSlcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtCy0LXRgNC90YPRgtGMINC/0L4g0YfQsNGB0L7QstC+0Lkg0YHRgtGA0LXQu9C60LUnXCIgICAgICAgIFxyXG4gICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcmV0dXJuJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dSb3RhdGVCdXR0b25cIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoLTEpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQn9C+0LLQtdGA0L3Rg9GC0Ywg0L/RgNC+0YLQuNCyINGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC4J1wiICAgICAgICAgIFxyXG4gICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dFeHBhbmRCdXR0b25cIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25FeHBhbmRNb2RlQ2xpY2soKVwiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtC60LDQt9Cw0YLRjCDQvdCwINCy0LXRgdGMINGN0LrRgNCw0L0nXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLXByaW50J1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dQcmludEJ1dHRvblwiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblByaW50Q2xpY2soKVwiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QtdGH0LDRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRCdXR0b25cIlxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1kb3dubG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Eb3dubG9hZENsaWNrKClcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Ch0LrQsNGH0LDRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxyXG4gICAgI3BkZlZpZXdlclxyXG4gICAgY2xhc3M9XCJtcngtcGRmLXZpZXdlclwiXHJcbiAgICBbcGFnZV09XCJwYWdlXCJcclxuICAgIFtzaWRlYmFyVmlzaWJsZV09XCJzaG93U2lkZWJhckJ1dHRvbiAmJiBzaWRlYmFyVmlzaWJsZVwiXHJcbiAgICAoc2lkZWJhclZpc2libGVDaGFuZ2UpPVwib25TaWRlYmFyVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtjdXN0b21Ub29sYmFyXT1cImN1c3RvbVRvb2xiYXJcIlxyXG4gICAgW3Nob3dTaWRlYmFyQnV0dG9uXT1cInRydWVcIlxyXG4gICAgKHBhZ2VzTG9hZGVkKT1cIm9uUGFnZXNMb2FkZWQoJGV2ZW50KVwiXHJcbiAgICBbem9vbV09XCJzZWxlY3RlZFpvb20udmFsdWVcIlxyXG4gICAgKHpvb21DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW3RleHRMYXllcl09XCJ0cnVlXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXHJcbiAgICBbcm90YXRpb25dPVwicm90YXRpb25cIlxyXG4gICAgW3Nob3dSb3RhdGVCdXR0b25dPVwic2hvd1JvdGF0ZUJ1dHRvblwiXHJcbiAgICAodXBkYXRlRmluZE1hdGNoZXNDb3VudCk9XCJvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQpXCJcclxuICAgICh1cGRhdGVGaW5kU3RhdGUpPVwib25GaW5kU3RhdGVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgW2lnbm9yZUtleXNdPVwiaWdub3JlS2V5c1wiXHJcbiAgICBbc3JjXT1cInNyY1wiPlxyXG48L25neC1leHRlbmRlZC1wZGYtdmlld2VyPlxyXG4iXX0=
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztBQXNCakMsTUFBTSxPQUFPLGtCQUFrQjtJQXlDN0IsWUFDVSxpQkFBOEMsRUFDOUMsU0FBb0IsRUFDcEIsSUFBdUI7UUFGdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBM0MxQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQWMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUN6QyxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBRyxJQUFJ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QUVvQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLDZCQUE2QjtnQkFDakIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQVVyQixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLi90b29sdGlwL3NlcnZpY2VzL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmluZFJlc3VsdE1hdGNoZXNDb3VudCxcclxuICBGaW5kU3RhdGUsXHJcbiAgTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQsXHJcbiAgTmd4RXh0ZW5kZWRQZGZWaWV3ZXJTZXJ2aWNlLFxyXG4gIFBhZ2VzTG9hZGVkRXZlbnRcclxufSBmcm9tICduZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcic7XHJcblxyXG50eXBlIFJvdGF0aW9uVHlwZSA9IDAgfCA5MCB8IDE4MCB8IDI3MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXBkZi12aWV3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZGYtdmlld2VyLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnb3BlbicsXHJcbiAgICAgICAgc3R5bGUoe2hlaWdodDogJyonLCBwYWRkaW5nOiAnKicsICdtYXJnaW4tYm90dG9tJzogJzhweCd9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZSgnY2xvc2VkJywgc3R5bGUoe2hlaWdodDogMCwgcGFkZGluZzogMCwgJ21hcmdpbi1ib3R0b20nOiAwfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFthbmltYXRlKCcwLjVzIGVhc2UnKV0pLFxyXG4gICAgXSksXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtUb29sdGlwU2VydmljZV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHVibGljIHNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgcHVibGljIGZpbmRTdGF0ZTogRmluZFN0YXRlID0gRmluZFN0YXRlLlBFTkRJTkc7XHJcbiAgcHVibGljIHRvdGFsRm91bmQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGN1cnJlbnRGaW5kOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBwYWdlID0gMTtcclxuICBwdWJsaWMgaXNTZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICBwdWJsaWMgc2lkZWJhclZpc2libGUgPSB0cnVlO1xyXG4gIHB1YmxpYyBwYWdlQ291bnQgPSAxO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFpvb206IHsgdmFsdWU6IG51bWJlciB8IHN0cmluZywgbGFiZWw6IHN0cmluZyB9ID0ge3ZhbHVlOiAnYXV0bycsIGxhYmVsOiAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnfTtcclxuICBwdWJsaWMgem9vbU9wdGlvbnMgPSBbXHJcbiAgICB7dmFsdWU6ICdhdXRvJywgbGFiZWw6ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCd9LFxyXG4gICAge3ZhbHVlOiAncGFnZS1hY3R1YWwnLCBsYWJlbDogJ9Cg0LXQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAJ30sXHJcbiAgICB7dmFsdWU6ICdwZ2UtZml0JywgbGFiZWw6ICfQn9C+INGA0LDQt9C80LXRgNGDINGB0YLRgNCw0L3QuNGG0YsnfSxcclxuICAgIHt2YWx1ZTogJ3BhZ2Utd2lkdGgnLCBsYWJlbDogJ9Cf0L4g0YjQuNGA0LjQvdC1INGB0YLRgNCw0L3QuNGG0YsnfSxcclxuICAgIHt2YWx1ZTogNTAsIGxhYmVsOiAnNTAlJ30sXHJcbiAgICB7dmFsdWU6IDEwMCwgbGFiZWw6ICcxMDAlJ30sXHJcbiAgICB7dmFsdWU6IDEyNSwgbGFiZWw6ICcxMjUlJ30sXHJcbiAgICB7dmFsdWU6IDE1MCwgbGFiZWw6ICcxNTAlJ30sXHJcbiAgICB7dmFsdWU6IDIwMCwgbGFiZWw6ICcyMDAlJ30sXHJcbiAgICB7dmFsdWU6IDMwMCwgbGFiZWw6ICczMDAlJ30sXHJcbiAgICB7dmFsdWU6IDQwMCwgbGFiZWw6ICc0MDAlJ30sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIHJvdGF0aW9uOiBSb3RhdGlvblR5cGUgPSAwO1xyXG5cclxuICBASW5wdXQoKSBzaG93U2lkZWJhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0hhbmRUb29sQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGFuZFRvb2wgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dGaW5kYmFyQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93Um90YXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93UHJpbnRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0V4cGFuZEJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVmYXVsdFpvb206IG51bWJlciB8ICdhdXRvJyB8ICdwYWdlLWFjdHVhbCcgfCAncGdlLWZpdCcgfCAncGFnZS13aWR0aCcgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHNyYyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50KSBwZGZWaWV3ZXIhOiBOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdmaW5kTWVudScpIGZpbmRNZW51OiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGRmVmlld2VyU2VydmljZTogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KSAmJiBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3AnICYmICF0aGlzLnNob3dQcmludEJ1dHRvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3Qge2RlZmF1bHRab29tfSA9IGNoYW5nZXM7XHJcblxyXG4gICAgaWYgKGRlZmF1bHRab29tLmN1cnJlbnRWYWx1ZSAhPSBkZWZhdWx0Wm9vbS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdFpvb20oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2VcclxuICB9XHJcblxyXG4gIGluaXRab29tKCkge1xyXG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09IHRoaXMuZGVmYXVsdFpvb20pO1xyXG5cclxuICAgIGlmIChleGlzdGluZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nVmFsdWV9O1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IHRoaXMuZGVmYXVsdFpvb20sIGxhYmVsOiBgJHt0aGlzLmRlZmF1bHRab29tfSVgfTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgaWdub3JlS2V5cygpOnN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGlnbm9yZWRLZXlzID0gW107XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLnNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnUicsICdTaGlmdCtSJyk7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93RG93bmxvYWRCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnQ1RSTCtTJyk7XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5zaG93U2lkZWJhckJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdGNCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpZ25vcmVkS2V5cztcclxuICB9XHJcblxyXG4gIGluaXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5zaG93RmluZGJhckJ1dHRvbikge1xyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnZicgJiYgZXZlbnQuY3RybEtleSkge1xyXG4gICAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0U2VhcmNoKCk7XHJcbiAgICB0aGlzLmluaXRab29tKCk7XHJcblxyXG4gICAgdGhpcy5fcmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgY29uc3QgaXNJbk1lbnUgPSB0aGlzLmZpbmRNZW51Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcclxuICAgICAgICAgIHx8IChldmVudC50YXJnZXQgYXMgYW55KS5pZCA9PT0gJ2ZpbmROZXh0J1xyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnZmluZFByZXZpb3VzJ1xyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnYnRuU2VhcmNoQ2xlYXInO1xyXG5cclxuICAgICAgICBjb25zdCBpc0ZpbmRCdXR0b24gPSAoZXZlbnQudGFyZ2V0IGFzIGFueSkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtcngtcGRmLXZpZXdlcl9fZmluZC1idXR0b24nKTtcclxuXHJcbiAgICAgICAgaWYgKCFpc0luTWVudSAmJiAhaXNGaW5kQnV0dG9uKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5wYWdlID0gJGV2ZW50IHx8IDE7XHJcbiAgfVxyXG5cclxuICBvbk5leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMucGFnZUNvdW50KSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZSArIDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxhc3RQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlQ291bnQ7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VzTG9hZGVkKCRldmVudDogUGFnZXNMb2FkZWRFdmVudCkge1xyXG4gICAgY29uc3Qgdmlld091dGxpbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdmlld091dGxpbmUnKTtcclxuICAgIGNvbnN0IHZpZXdUaHVtYm5haWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdmlld1RodW1ibmFpbCcpO1xyXG5cclxuICAgIHRoaXMucGFnZUNvdW50ID0gJGV2ZW50LnBhZ2VzQ291bnQ7XHJcblxyXG4gICAgaWYgKHZpZXdPdXRsaW5lKSB7XHJcbiAgICAgICh2aWV3T3V0bGluZSBhcyBhbnkpLnRpdGxlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZpZXdUaHVtYm5haWwpIHtcclxuICAgICAgKHZpZXdUaHVtYm5haWwgYXMgYW55KS50aXRsZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgem9vbUNsaWNrKGluY3JlYXNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogMTAwLCBsYWJlbDogJzEwMCUnfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5jcmVhc2UgPyB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSArPSAyMCA6IHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlIC09IDIwO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiBuZXdWYWx1ZSwgbGFiZWw6IGAke25ld1ZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUxldmVsU2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgb25ab29tQ2hhbmdlKCRldmVudDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ09wdGlvbiA9IHRoaXMuem9vbU9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09ICRldmVudCk7XHJcblxyXG4gICAgaWYgKGV4aXN0aW5nT3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRab29tID0gey4uLmV4aXN0aW5nT3B0aW9ufTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpeGVkVmFsdWUgPSBNYXRoLnJvdW5kKE51bWJlcigkZXZlbnQpKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogZml4ZWRWYWx1ZSwgbGFiZWw6IGAke2ZpeGVkVmFsdWV9JWB9O1xyXG4gIH1cclxuXHJcbiAgb25Sb3RhdGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5yb3RhdGlvbjtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uIDwgMCkge1xyXG4gICAgICBkYXRhIC09IDkwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YSArPSA5MDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YSA+PSAzNjApIHtcclxuICAgICAgdGhpcy5yb3RhdGlvbiA9IGRhdGEgLSAzNjAgYXMgUm90YXRpb25UeXBlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPCAwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSAzNjAgKyBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm90YXRpb24gPSBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIG9uUHJpbnRDbGljaygpIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UucHJpbnQoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcHJpbnREaWFsb2cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaWFsb2cjcHJpbnRTZXJ2aWNlRGlhbG9nJyk7XHJcbiAgICAgIGNvbnN0IHByb2dyZXNzVGV4dCA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcucm93IHNwYW4nKTtcclxuICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcHJpbnREaWFsb2c/LnF1ZXJ5U2VsZWN0b3IoJyNwcmludENhbmNlbCBzcGFuJyk7XHJcblxyXG4gICAgICBpZiAocHJvZ3Jlc3NUZXh0KSB7XHJcbiAgICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gJ9Cf0L7QtNCz0L7RgtC+0LLQutCwINC00L7QutGD0LzQtdC90YLQsCDQuiDQv9C10YfQsNGC0LguLi4nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY2FuY2VsQnV0dG9uKSB7XHJcbiAgICAgICAgY2FuY2VsQnV0dG9uLnRleHRDb250ZW50ID0gJ9Ce0YLQvNC10L3QsCc7XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25Eb3dubG9hZENsaWNrKCkge1xyXG4gICAgY29uc3QgYmxvYjogQmxvYiA9IGF3YWl0IHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZ2V0Q3VycmVudERvY3VtZW50QXNCbG9iKCk7XHJcbiAgICBjb25zdCBvYmplY3RVcmw6IHN0cmluZyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICBjb25zdCBhOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuXHJcbiAgICBhLmhyZWYgPSBvYmplY3RVcmw7XHJcbiAgICBhLmRvd25sb2FkID0gdGhpcy5kb3dubG9hZEZpbGVOYW1lIHx8IHRoaXMuc3JjO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcclxuICAgIGEuY2xpY2soKTtcclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlld0NsaWNrKCkge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICF0aGlzLnNpZGViYXJWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRNb2RlQ2xpY2soKSB7XHJcbiAgICBjb25zdCBwZGZWaWV3ZXJBcHBsaWNhdGlvbiA9ICh3aW5kb3cgYXMgYW55KS5QREZWaWV3ZXJBcHBsaWNhdGlvbjtcclxuXHJcbiAgICBpZiAocGRmVmlld2VyQXBwbGljYXRpb24/LnBkZlZpZXdlcikge1xyXG4gICAgICBwZGZWaWV3ZXJBcHBsaWNhdGlvbi5yZXF1ZXN0UHJlc2VudGF0aW9uTW9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDbGljaygpIHtcclxuICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSAhdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gXCJcIjtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgnJywge30pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2goJGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAkZXZlbnQ7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgkZXZlbnQsIHtoaWdobGlnaHRBbGw6IHRydWV9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGRmVmlld2VyU2VydmljZS5maW5kKCcnLCB7fSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTmV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZE5leHQoKTtcclxuICB9XHJcblxyXG4gIGZpbmRQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZFByZXZpb3VzKCk7XHJcbiAgfVxyXG5cclxuICBvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQ6IEZpbmRSZXN1bHRNYXRjaGVzQ291bnQpIHtcclxuICAgIHRoaXMudG90YWxGb3VuZCA9ICRldmVudC50b3RhbDtcclxuICAgIHRoaXMuY3VycmVudEZpbmQgPSAkZXZlbnQuY3VycmVudDtcclxuICB9XHJcblxyXG4gIG9uRmluZFN0YXRlQ2hhbmdlZCgkZXZlbnQ6IEZpbmRTdGF0ZSkge1xyXG4gICAgdGhpcy5maW5kU3RhdGUgPSAkZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICRldmVudDtcclxuICB9XHJcblxyXG4gIG9uSGFuZFRvb2xDbGljaygpIHtcclxuICAgIHRoaXMuaGFuZFRvb2wgPSAhdGhpcy5oYW5kVG9vbDtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNjdXN0b21Ub29sYmFyPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fdG9vbGJhclwiIGlkPVwidG9vbGJhclZpZXdlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dTaWRlYmFyQnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYnVyZ2VyJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblNpZGViYXJWaWV3Q2xpY2soKVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6IHNpZGViYXJWaXNpYmxlfVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdGl0bGVdPVwiJ3Rlc3QnXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQsdC+0LrQvtCy0YPRjiDQv9Cw0L3QtdC70YwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dGaW5kYmFyQnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tc2VhcmNoJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblNlYXJjaENsaWNrKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMiBtbC0xIG1yeC1wZGYtdmlld2VyX19maW5kLWJ1dHRvbidcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiBpc1NlYXJjaFBhbmVsVmlzaWJsZX1cIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPGRpdiAqbmdJZj1cImlzU2VhcmNoUGFuZWxWaXNpYmxlXCIgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhclwiICNmaW5kTWVudT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJfX2ZpbmRiYXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG1yeC1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cImZpbmRTdGF0ZSA9PT0gMSA/ICdtcngtaW5wdXQtZXJyb3InIDonJysnc2VhcmNoVGV4dCdcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1Li4uXCJcclxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoUXVlcnlcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L21yeC1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWFyY2hRdWVyeVwiIGlkPVwiYnRuU2VhcmNoQ2xlYXJcIiAoY2xpY2spPVwib25TZWFyY2hDbGVhcigpXCIgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNiBjdXJzb3ItcG9pbnRlclwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj4gICAgICAgIFxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJmaW5kUHJldmlvdXMoKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncC0xJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZE5leHQoKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmaW5kU3RhdGUgPT09IDAgfHwgZmluZFN0YXRlID09PSAyXCIgY2xhc3M9XCJtcngtcGRmLXZpZXdlcl9fZmluZGJhci1yZXN1bHRcIj5cclxuICAgICAgICAgIHt7Y3VycmVudEZpbmR9fSDQuNC3IHt7dG90YWxGb3VuZH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZpbmRTdGF0ZSA9PT0gMVwiIGNsYXNzPVwiY29sb3ItbmVnYXRpdmUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPtCk0YDQsNC30LAg0L3QtSDQvdCw0LnQtNC10L3QsDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyLS1uYXYgbWwtMlwiPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblBhZ2VDaGFuZ2UoMSlcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cf0LXRgNCy0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblBhZ2VDaGFuZ2UocGFnZSAtIDEgfHwgMSlcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pbnB1dC1udW1iZXIgW3NpemVdPVwiJ3NtYWxsJ1wiIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtNTYnXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW251bWJlclR5cGVdPVwiJ2ludCdcIlxyXG4gICAgICAgICAgW21pblZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgW21heFZhbHVlXT1cInBhZ2VDb3VudFwiXHJcbiAgICAgICAgICBbaXNBdXRvQ29ycmVjdGluZ1ZhbHVlXT1cInRydWVcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+0LjQtyB7e3BhZ2VDb3VudH19PC9zcGFuPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25OZXh0UGFnZSgpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQodC70LXQtNGD0Y7RidCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWluLXRoZS1lbmQtcmlnaHQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uTGFzdFBhZ2UoKVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtGB0LvQtdC00L3Rj9GPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayhmYWxzZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tbWludXMnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQo9C80LXQvdGM0YjQuNGC0YwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwiem9vbUNsaWNrKHRydWUpXCJcclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcGx1cydcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0KPQstC10LvQuNGH0LjRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3dweC0xNTYnXCJcclxuICAgICAgICBbaXRlbXNdPVwiem9vbU9wdGlvbnNcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUxldmVsU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkWm9vbVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWZjLXRleHQnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJzaG93SGFuZFRvb2xCdXR0b25cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogIWhhbmRUb29sfVwiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgKG1yeENsaWNrKT1cIm9uSGFuZFRvb2xDbGljaygpXCJcclxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9CS0LrQu9GO0YfQuNGC0Ywg0YDRg9GH0L3QvtC5INGA0LXQttC40LwnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZWxvYWQnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgKm5nSWY9XCJzaG93Um90YXRlQnV0dG9uXCJcclxuICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoMSlcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtCy0LXRgNC90YPRgtGMINC/0L4g0YfQsNGB0L7QstC+0Lkg0YHRgtGA0LXQu9C60LUnXCIgICAgICAgIFxyXG4gICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tcmV0dXJuJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dSb3RhdGVCdXR0b25cIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoLTEpXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFttcnhDZGtUb29sdGlwXT1cIifQn9C+0LLQtdGA0L3Rg9GC0Ywg0L/RgNC+0YLQuNCyINGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC4J1wiICAgICAgICAgIFxyXG4gICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dFeHBhbmRCdXR0b25cIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25FeHBhbmRNb2RlQ2xpY2soKVwiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QvtC60LDQt9Cw0YLRjCDQvdCwINCy0LXRgdGMINGN0LrRgNCw0L0nXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLXByaW50J1wiXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dQcmludEJ1dHRvblwiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblByaW50Q2xpY2soKVwiXHJcbiAgICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCIn0J/QtdGH0LDRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRCdXR0b25cIlxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1kb3dubG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Eb3dubG9hZENsaWNrKClcIlxyXG4gICAgICAgICAgW21yeENka1Rvb2x0aXBdPVwiJ9Ch0LrQsNGH0LDRgtGMJ1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxyXG4gICAgI3BkZlZpZXdlclxyXG4gICAgY2xhc3M9XCJtcngtcGRmLXZpZXdlclwiXHJcbiAgICBbcGFnZV09XCJwYWdlXCJcclxuICAgIFtzaWRlYmFyVmlzaWJsZV09XCJzaG93U2lkZWJhckJ1dHRvbiAmJiBzaWRlYmFyVmlzaWJsZVwiXHJcbiAgICAoc2lkZWJhclZpc2libGVDaGFuZ2UpPVwib25TaWRlYmFyVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtjdXN0b21Ub29sYmFyXT1cImN1c3RvbVRvb2xiYXJcIlxyXG4gICAgW3Nob3dTaWRlYmFyQnV0dG9uXT1cInRydWVcIlxyXG4gICAgKHBhZ2VzTG9hZGVkKT1cIm9uUGFnZXNMb2FkZWQoJGV2ZW50KVwiXHJcbiAgICBbem9vbV09XCJzZWxlY3RlZFpvb20udmFsdWVcIlxyXG4gICAgKHpvb21DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW3RleHRMYXllcl09XCJ0cnVlXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXHJcbiAgICBbcm90YXRpb25dPVwicm90YXRpb25cIlxyXG4gICAgW3Nob3dSb3RhdGVCdXR0b25dPVwic2hvd1JvdGF0ZUJ1dHRvblwiXHJcbiAgICAodXBkYXRlRmluZE1hdGNoZXNDb3VudCk9XCJvblVwZGF0ZU1hdGNoQ2FzZSgkZXZlbnQpXCJcclxuICAgICh1cGRhdGVGaW5kU3RhdGUpPVwib25GaW5kU3RhdGVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgW2lnbm9yZUtleXNdPVwiaWdub3JlS2V5c1wiXHJcbiAgICBbc3JjXT1cInNyY1wiPlxyXG48L25neC1leHRlbmRlZC1wZGYtdmlld2VyPlxyXG4iXX0=