@pepperi-addons/ngx-lib 0.4.0-angular14.6 → 0.4.0-angular14.9

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.
Files changed (57) hide show
  1. package/esm2020/form/form.module.mjs +8 -3
  2. package/esm2020/form/internal-carusel.component.mjs +11 -13
  3. package/esm2020/form/internal-page.component.mjs +15 -18
  4. package/esm2020/link/link.component.mjs +10 -11
  5. package/esm2020/ngx-lib.module.mjs +4 -2
  6. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +5 -0
  7. package/esm2020/plugin/plugin-proxy.component.mjs +90 -0
  8. package/esm2020/plugin/plugin.model.mjs +2 -0
  9. package/esm2020/plugin/public-api.mjs +6 -0
  10. package/esm2020/query-builder/common/services/query-structure.service.mjs +12 -10
  11. package/esm2020/query-builder/query-builder.module.mjs +8 -3
  12. package/esm2020/remote-loader/remote-loader.component.mjs +40 -41
  13. package/esm2020/smart-filters/common/model/base-filter-component.mjs +1 -1
  14. package/esm2020/smart-filters/smart-filters.module.mjs +8 -3
  15. package/esm2020/textbox/textbox.component.mjs +9 -10
  16. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -29
  17. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  18. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +8 -9
  19. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  20. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +107 -0
  21. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  22. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +15 -8
  23. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  24. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +39 -40
  25. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  26. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -2
  27. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  28. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +10 -11
  29. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  30. package/fesm2015/pepperi-addons-ngx-lib.mjs +3 -1
  31. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  32. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -29
  33. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  34. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +8 -9
  35. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  36. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +101 -0
  37. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  38. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +15 -8
  39. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  40. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +39 -40
  41. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  42. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -2
  43. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  44. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +10 -11
  45. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  46. package/fesm2020/pepperi-addons-ngx-lib.mjs +3 -1
  47. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  48. package/form/internal-carusel.component.d.ts +1 -3
  49. package/form/internal-page.component.d.ts +2 -4
  50. package/link/link.component.d.ts +2 -3
  51. package/package.json +9 -1
  52. package/plugin/index.d.ts +5 -0
  53. package/plugin/plugin-proxy.component.d.ts +22 -0
  54. package/plugin/plugin.model.d.ts +5 -0
  55. package/plugin/public-api.d.ts +2 -0
  56. package/query-builder/common/services/query-structure.service.d.ts +3 -4
  57. package/textbox/textbox.component.d.ts +2 -3
@@ -1,11 +1,11 @@
1
1
  import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, HostBinding, } from '@angular/core';
2
2
  import { PepCustomizationService, DEFAULT_HORIZONTAL_ALIGNMENT, PepTextboxField, } from '@pepperi-addons/ngx-lib';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "@pepperi-addons/ngx-lib";
6
- import * as i3 from "@ngx-translate/core";
7
- import * as i4 from "./link.pipes";
8
- import * as i5 from "@angular/common";
4
+ import * as i1 from "@pepperi-addons/ngx-lib";
5
+ import * as i2 from "@ngx-translate/core";
6
+ import * as i3 from "./link.pipes";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/forms";
9
9
  import * as i6 from "@angular/material/button";
10
10
  import * as i7 from "@angular/material/form-field";
11
11
  import * as i8 from "@angular/material/input";
@@ -23,8 +23,7 @@ import * as i12 from "@pepperi-addons/ngx-lib/textbox-icon";
23
23
  * @implements {OnDestroy}
24
24
  */
25
25
  export class PepLinkComponent {
26
- constructor(fb, customizationService, renderer, element, translate, utilitiesService, isUrlPipe) {
27
- this.fb = fb;
26
+ constructor(customizationService, renderer, element, translate, utilitiesService, isUrlPipe) {
28
27
  this.customizationService = customizationService;
29
28
  this.renderer = renderer;
30
29
  this.element = element;
@@ -279,12 +278,12 @@ export class PepLinkComponent {
279
278
  }, 0);
280
279
  }
281
280
  }
282
- PepLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLinkComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.TranslateService }, { token: i2.PepUtilitiesService }, { token: i4.IsUrlPipe }], target: i0.ɵɵFactoryTarget.Component });
283
- PepLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLinkComponent, selector: "pep-link", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", placeholder: "placeholder", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", 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]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i11.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i12.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.IsUrlPipe, name: "isUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
281
+ PepLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLinkComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TranslateService }, { token: i1.PepUtilitiesService }, { token: i3.IsUrlPipe }], target: i0.ɵɵFactoryTarget.Component });
282
+ PepLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepLinkComponent, selector: "pep-link", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", placeholder: "placeholder", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", textColor: "textColor", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderError: "renderError", renderSymbol: "renderSymbol", layoutType: "layoutType" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick" }, host: { properties: { "attr.data-qa": "this.dataQa" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i11.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i12.PepTextboxIconComponent, selector: "pep-textbox-icon", inputs: ["value", "label", "type", "disabled"], outputs: ["iconClick"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i3.IsUrlPipe, name: "isUrl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
284
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepLinkComponent, decorators: [{
285
284
  type: Component,
286
285
  args: [{ selector: 'pep-link', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\" let-hasParent=\"hasParent\">\n <pep-field-title *ngIf=\"renderTitle && isFormView && !hasParent\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"maxFieldCharacters\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\" [inputLength]=\"value.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\">\n <input #input pepTextboxValidation [id]=\"key\" [name]=\"key\" class=\" body-sm \" matInput autocomplete=\"off\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [placeholder]=\"hasParent && !disabled ? placeholder : ''\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ formattedValue }}\" [formControlName]=\"key\" [type]=\"type\" [value]=\"displayValue\"\n (keyup.enter)=\"$event?.currentTarget?.blur()\" (focus)=\"onFocus($event)\" (blur)=\"onBlur($event)\"\n (change)=\"onChange($event)\" [ngClass]=\"{'disable-hidden': disabled && formattedValue?.length > 0}\" />\n\n <span *ngIf=\"disabled && formattedValue?.length > 0\" class=\"dis-grid\">\n <a href=\"javascript:void(0)\" (click)=\"anchorClicked()\" [id]=\"key\" [name]=\"key\"\n class=\"color-link body-sm \">\n {{formattedValue}}</a>\n </span>\n <mat-error *ngIf=\"renderError\">\n <ng-container *ngIf=\"mandatory && input.value.length == 0 then requiredError else otherError\">\n </ng-container>\n <ng-template #requiredError>\n <span class=\"body-xs\" [title]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\"\n [innerText]=\"('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label })\">\n </span>\n </ng-template>\n <ng-template #otherError>\n <!-- TODO: Show error if it's not a valid link -->\n <!-- <span class=\"body-xs\" [title]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\" [innerText]=\"(input.value | pepToNumber) > this.maxValue || (input.value | pepToNumber) < this.minValue ?\n ('MESSAGES.ERROR_RANGE_IS_NOT_VALID' | translate: { min: minValue, max: maxValue }) :\n ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\">\n </span> -->\n </ng-template>\n </mat-error>\n\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"renderSymbol && isFormView && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"type\" [disabled]=\"disabled\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true, hasParent: false }\">\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\" [ngStyle]=\"{ color: textColor }\"\n [class]=\"'text-align-' + xAlignment\" [ngClass]=\"{'one-row': rowSpan === 1,\n 'multi-rows': rowSpan > 1,\n 'pep-button weak': isActive && !disabled}\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm value\"\n [ngClass]=\"{'multi-rows-text': rowSpan > 1}\" [ngStyle]=\"{ '-webkit-line-clamp': rowSpan }\">{{\n formattedValue }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n </ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a *ngIf=\"formattedValue != null && (value ? value : formattedValue) | isUrl\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n target=\"_blank\" href=\"{{ value ? value : formattedValue }}\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n <a *ngIf=\"formattedValue != null && !((value ? value : formattedValue) | isUrl)\" [id]=\"key\"\n class=\"color-link body-sm pep-report-input\"\n [ngClass]=\"{'disable': (disabled && value === '')}\" title=\"{{ formattedValue }}\"\n href=\"javascript:void(0)\" (click)=\"onClick()\">{{\n formattedValue }}</a>\n </ng-template>\n <ng-template #emptyBlock>\n <span [id]=\"key\">&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n\n</ng-container>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center;align-items:baseline}.disable-hidden{display:none}.dis-grid{display:grid}.multi-rows-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal!important}\n"] }]
287
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PepCustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.TranslateService }, { type: i2.PepUtilitiesService }, { type: i4.IsUrlPipe }]; }, propDecorators: { dataQa: [{
286
+ }], ctorParameters: function () { return [{ type: i1.PepCustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.TranslateService }, { type: i1.PepUtilitiesService }, { type: i3.IsUrlPipe }]; }, propDecorators: { dataQa: [{
288
287
  type: HostBinding,
289
288
  args: ['attr.data-qa']
290
289
  }], key: [{
@@ -337,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
337
336
  type: ViewChild,
338
337
  args: ['input']
339
338
  }] } });
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpbmsvbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpbmsvbGluay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUV2QixTQUFTLEVBSVQsV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsNEJBQTRCLEVBRTVCLGVBQWUsR0FJbEIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHakM7Ozs7Ozs7O0dBUUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEt6QixZQUNXLEVBQWUsRUFDZCxvQkFBNkMsRUFDN0MsUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsU0FBMkIsRUFDM0IsZ0JBQXFDLEVBQ3JDLFNBQW9CO1FBTnJCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUEvS0gsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVqQyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBZVYsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQXNCWixvQkFBZSxHQUFHLElBQUksQ0FBQztRQXVCL0I7Ozs7V0FJRztRQUNNLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEI7Ozs7V0FJRztRQUNNLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRTFC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c0JBQWpCLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtGLE9BQU87c0JBRFYsS0FBSztnQkFtQkcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQVNOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNO2dCQUdhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBFbGVtZW50UmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBSZW5kZXJlcjIsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIFBlcFRleHRib3hGaWVsZFR5cGUsXG4gICAgUGVwVGV4dGJveEZpZWxkLFxuICAgIFBlcEZpZWxkQmFzZSxcbiAgICBQZXBVdGlsaXRpZXNTZXJ2aWNlLFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IElzVXJsUGlwZSB9IGZyb20gJy4vbGluay5waXBlcyc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHRleHQgYm94IGlucHV0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2UgdG9cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgUGVwVGV4dGJveENvbXBvbmVudFxuICogQGltcGxlbWVudHMge09uQ2hhbmdlc31cbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1saW5rJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluay5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBMaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1xYScpIGRhdGFRYSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfa2V5ID0gJyc7XG4gICAgLyoqXG4gICAgICogVGhlIHRleHQgYm94IGtleVxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBrZXkodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVFhID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBrZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgdGV4dCBib3guXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgIC8vIGlmICghdmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHZhbHVlID0gJyc7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlID0gZmFsc2U7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIHRleHRib3guXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhY2Vob2xkZXIgKHJlbGV2YW50IG9ubHkgZm9yIGNoaWxkcmVuIC0gaWYgcGFyZW50IGlzbid0IG51bGwpLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHRleHRib3guXG4gICAgICpcbiAgICAgKiBAdHlwZSB7UGVwVGV4dGJveEZpZWxkVHlwZX1cbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAnbGluayc7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdGV4dGJveCBpcyBtYW5kYXRvcnlcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBQZXBUZXh0Ym94Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgbWFuZGF0b3J5ID0gZmFsc2U7XG5cbiAgICAvLyBUT0RPOiBDaGVjayBpZiBzaG91bGQgcmVtb3ZlIGRpc2FibGVkIGFuZCBrZWVwIG9ubHkgcmVhZG9ubHkuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRleHRib3ggaXMgZGlzYWJsZWQuXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdGV4dGJveCBpcyByZWFkb25seVxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHRleHRDb2xvciA9ICcnO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuICAgIEBJbnB1dCgpIHJvd1NwYW4gPSAxO1xuICAgIC8vIEBJbnB1dCgpIGxhc3RGb2N1c0ZpZWxkOiBhbnk7XG4gICAgXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyRXJyb3IgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclN5bWJvbCA9IHRydWU7XG4gICAgQElucHV0KCkgbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgY2hhbmdlIGV2ZW50LlxuICAgICAqXG4gICAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxzdHJpbmc+fVxuICAgICAqIEBtZW1iZXJvZiBQZXBUZXh0Ym94Q29tcG9uZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtVmFsaWRhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUgPSB0cnVlO1xuICAgIGdldCBjYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ2xpbmsnO1xuXG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGlzSW5FZGl0TW9kZSA9IGZhbHNlO1xuICAgIGlzSW5Gb2N1czogYm9vbGVhbjtcbiAgICBpc1VybCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpc1VybFBpcGU6IElzVXJsUGlwZVxuICAgICkge1xuICAgICAgICB0aGlzLmlzSW5Gb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtRmllbGRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUZpZWxkVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBUZXh0Ym94RmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICBtYXhGaWVsZENoYXJhY3RlcnM6IHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKFxuICAgICAgICAgICAgcGVwRmllbGQsXG4gICAgICAgICAgICB0aGlzLnJlbmRlckVycm9yXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUZpZWxkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgb25Gb2N1cyhldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNJbkZvY3VzID0gdHJ1ZTtcblxuICAgICAgICAvLyBzZWxlY3QgdGhlIHZhbHVlIGluIGZvY3VzIChESS0xODI0NiBpbXByb3ZlbWVudClcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGV2ZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgZXZlbnRUYXJnZXQuc2VsZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIGlzVmFsdWVWYWxpZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRPRE86IE1heWJlIG5lZWQgdG8gY2hlY2sgb3RoZXIgdHlwZXMuXG4gICAgICAgIGNvbnN0IHJlcyA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBvbkNoYW5nZShlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldCA/IGUudGFyZ2V0LnZhbHVlIDogZTtcblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQmx1cihlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldCA/IGUudGFyZ2V0LnZhbHVlIDogZTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJZiByZW5kZXJFcnJvciBpcyBmYWxzZSBhbmQgdGhlIG5ldyB2YWx1ZSBpcyBub3QgdmFsaWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyRXJyb3IgJiYgIXRoaXMuaXNWYWx1ZVZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHNldHRpbmcgdGhlIGZvcm1hdHRlZCB2YWx1ZSB0aGVuIHNldCB0aGUgdmFsdWUgdGlsbCB0aGUgdXNlciBmb3JtYXQgaXQgYW5kIHJldHVybiBpdCBiYWNrLlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5FZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0OiBJUGVwRmllbGRDbGlja0V2ZW50ID0ge1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGVcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgYW5jaG9yQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBJUGVwRmllbGRDbGlja0V2ZW50ID0ge1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQob3V0cHV0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVXJsUGlwZS50cmFuc2Zvcm0oY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYXJkVGVtcGxhdGVDbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRWRpdE1vZGUgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG5nLXRlbXBsYXRlICNwZXBUZW1wbGF0ZSBsZXQtaXNGb3JtVmlldz1cImlzRm9ybVZpZXdcIiBsZXQtaGFzUGFyZW50PVwiaGFzUGFyZW50XCI+XG4gICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCJyZW5kZXJUaXRsZSAmJiBpc0Zvcm1WaWV3ICYmICFoYXNQYXJlbnRcIiBbbGFiZWxdPVwibGFiZWxcIiBbbWFuZGF0b3J5XT1cIm1hbmRhdG9yeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbWF4RmllbGRDaGFyYWN0ZXJzXT1cIm1heEZpZWxkQ2hhcmFjdGVyc1wiIFt4QWxpZ25tZW50XT1cInhBbGlnbm1lbnRcIlxuICAgICAgICAgICAgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbaW5wdXRMZW5ndGhdPVwidmFsdWUubGVuZ3RoXCI+XG4gICAgICAgIDwvcGVwLWZpZWxkLXRpdGxlPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCAjaW5wdXQgcGVwVGV4dGJveFZhbGlkYXRpb24gW2lkXT1cImtleVwiIFtuYW1lXT1cImtleVwiIGNsYXNzPVwiIGJvZHktc20gXCIgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCJ7eyBtYXhGaWVsZENoYXJhY3RlcnMgPiAwID8gbWF4RmllbGRDaGFyYWN0ZXJzIDogOTk5OTkgfX1cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJoYXNQYXJlbnQgJiYgIWRpc2FibGVkID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogdGV4dENvbG9yLCAndGV4dC1hbGlnbic6IHhBbGlnbm1lbnQgPT0gJ2NlbnRlcicgPyAnY2VudGVyJyA6IHhBbGlnbm1lbnQgPT0gJ3JpZ2h0JyA/ICdyaWdodCcgOiAnbGVmdCcgfVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBmb3JtYXR0ZWRWYWx1ZSB9fVwiIFtmb3JtQ29udHJvbE5hbWVdPVwia2V5XCIgW3R5cGVdPVwidHlwZVwiIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCIkZXZlbnQ/LmN1cnJlbnRUYXJnZXQ/LmJsdXIoKVwiIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlLWhpZGRlbic6IGRpc2FibGVkICYmIGZvcm1hdHRlZFZhbHVlPy5sZW5ndGggPiAwfVwiIC8+XG5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlzYWJsZWQgJiYgZm9ybWF0dGVkVmFsdWU/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRpcy1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJhbmNob3JDbGlja2VkKClcIiBbaWRdPVwia2V5XCIgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci1saW5rIGJvZHktc20gXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Zm9ybWF0dGVkVmFsdWV9fTwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJyZW5kZXJFcnJvclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5kYXRvcnkgJiYgaW5wdXQudmFsdWUubGVuZ3RoID09IDAgdGhlbiByZXF1aXJlZEVycm9yIGVsc2Ugb3RoZXJFcnJvclwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVxdWlyZWRFcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIignTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJUZXh0XT1cIignTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI290aGVyRXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETzogU2hvdyBlcnJvciBpZiBpdCdzIG5vdCBhIHZhbGlkIGxpbmsgLS0+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIihpbnB1dC52YWx1ZSB8IHBlcFRvTnVtYmVyKSA+IHRoaXMubWF4VmFsdWUgfHwgKGlucHV0LnZhbHVlIHwgcGVwVG9OdW1iZXIpIDwgdGhpcy5taW5WYWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdNRVNTQUdFUy5FUlJPUl9SQU5HRV9JU19OT1RfVkFMSUQnIHwgdHJhbnNsYXRlOiB7IG1pbjogbWluVmFsdWUsIG1heDogbWF4VmFsdWUgfSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIiBbaW5uZXJUZXh0XT1cIihpbnB1dC52YWx1ZSB8IHBlcFRvTnVtYmVyKSA+IHRoaXMubWF4VmFsdWUgfHwgKGlucHV0LnZhbHVlIHwgcGVwVG9OdW1iZXIpIDwgdGhpcy5taW5WYWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdNRVNTQUdFUy5FUlJPUl9SQU5HRV9JU19OT1RfVkFMSUQnIHwgdHJhbnNsYXRlOiB7IG1pbjogbWluVmFsdWUsIG1heDogbWF4VmFsdWUgfSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgICAgICAgIDxwZXAtdGV4dGJveC1pY29uICpuZ0lmPVwicmVuZGVyU3ltYm9sICYmIGlzRm9ybVZpZXcgJiYgeEFsaWdubWVudCA9PSAncmlnaHQnXCIgbWF0UHJlZml4IFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCIgW3R5cGVdPVwidHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgICAgPC9wZXAtdGV4dGJveC1pY29uPlxuICAgICAgICAgICAgPHBlcC10ZXh0Ym94LWljb24gKm5nSWY9XCJyZW5kZXJTeW1ib2wgJiYgaXNGb3JtVmlldyAmJiAoeEFsaWdubWVudCA9PSAnbGVmdCcpXCIgbWF0U3VmZml4IFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCIgW3R5cGVdPVwidHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgICAgPC9wZXAtdGV4dGJveC1pY29uPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ2Zvcm0nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBUZW1wbGF0ZTsgY29udGV4dDogeyBpc0Zvcm1WaWV3OiB0cnVlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ2NhcmQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0luRWRpdE1vZGU7IHRoZW4gZWRpdEJsb2NrOyBlbHNlIHJlYWRPbmx5QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0QmxvY2s+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnb25lLXJvdyc6IHJvd1NwYW4gPT09IDF9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlOyBjb250ZXh0OiB7IGlzRm9ybVZpZXc6IGZhbHNlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3JlYWRPbmx5QmxvY2s+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWNhcmQtaW5wdXQgY2FyZC1mbGV4LWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgY29sb3I6IHRleHRDb2xvciB9XCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3RleHQtYWxpZ24tJyArIHhBbGlnbm1lbnRcIiBbbmdDbGFzc109XCJ7J29uZS1yb3cnOiByb3dTcGFuID09PSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtdWx0aS1yb3dzJzogcm93U3BhbiA+IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BlcC1idXR0b24gd2Vhayc6IGlzQWN0aXZlICYmICFkaXNhYmxlZH1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWQgPyBjYXJkVGVtcGxhdGVDbGlja2VkKCRldmVudCkgOiAnJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1RpdGxlICYmIGxhYmVsICE9ICcnXCIgY2xhc3M9XCJib2R5LXhzIHRpdGxlXCIgdGl0bGU9XCJ7eyBsYWJlbCB9fVwiPnt7IGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIH19Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtpZF09XCJrZXlcIiB0aXRsZT1cInt7IGZvcm1hdHRlZFZhbHVlIH19XCIgY2xhc3M9XCJib2R5LXNtIHZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtdWx0aS1yb3dzLXRleHQnOiByb3dTcGFuID4gMX1cIiBbbmdTdHlsZV09XCJ7ICctd2Via2l0LWxpbmUtY2xhbXAnOiByb3dTcGFuIH1cIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBY3RpdmUgJiYgIWRpc2FibGVkXCIgY2xhc3M9XCJwZXAtYnV0dG9uIHdlYWsgY2FyZC1lZGl0LWJ1dHRvblwiIG1hdC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX2VkaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09ICd0YWJsZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWN0aXZlICYmICFkaXNhYmxlZDsgdGhlbiBzZWxlY3RlZEJsb2NrOyBlbHNlIG5vdFNlbGVjdGVkQmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEJsb2NrPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlOyBjb250ZXh0OiB7IGlzRm9ybVZpZXc6IGZhbHNlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNlbGVjdGVkQmxvY2s+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0dGVkVmFsdWU/Lmxlbmd0aCA+IDA7IHRoZW4gbm90RW1wdHlCbG9jazsgZWxzZSBlbXB0eUJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdEVtcHR5QmxvY2s+XG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJmb3JtYXR0ZWRWYWx1ZSAhPSBudWxsICYmICh2YWx1ZSA/IHZhbHVlIDogZm9ybWF0dGVkVmFsdWUpIHwgaXNVcmxcIiBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci1saW5rIGJvZHktc20gcGVwLXJlcG9ydC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZSc6IChkaXNhYmxlZCAmJiB2YWx1ZSA9PT0gJycpfVwiIHRpdGxlPVwie3sgZm9ybWF0dGVkVmFsdWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgdmFsdWUgPyB2YWx1ZSA6IGZvcm1hdHRlZFZhbHVlIH19XCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPnt7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlIH19PC9hPlxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiZm9ybWF0dGVkVmFsdWUgIT0gbnVsbCAmJiAhKCh2YWx1ZSA/IHZhbHVlIDogZm9ybWF0dGVkVmFsdWUpIHwgaXNVcmwpXCIgW2lkXT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3ItbGluayBib2R5LXNtIHBlcC1yZXBvcnQtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGUnOiAoZGlzYWJsZWQgJiYgdmFsdWUgPT09ICcnKX1cIiB0aXRsZT1cInt7IGZvcm1hdHRlZFZhbHVlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvbkNsaWNrKClcIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSB9fTwvYT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5QmxvY2s+XG4gICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cImtleVwiPiZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctY29udGFpbmVyPiJdfQ==
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpbmsvbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpbmsvbGluay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUV2QixTQUFTLEVBSVQsV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsNEJBQTRCLEVBRTVCLGVBQWUsR0FJbEIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHakM7Ozs7Ozs7O0dBUUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEt6QixZQUNZLG9CQUE2QyxFQUM3QyxRQUFtQixFQUNuQixPQUFtQixFQUNuQixTQUEyQixFQUMzQixnQkFBcUMsRUFDckMsU0FBb0I7UUFMcEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBOUtILFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFakMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQWVWLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFzQlosb0JBQWUsR0FBRyxJQUFJLENBQUM7UUF1Qi9COzs7O1dBSUc7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCOzs7O1dBSUc7UUFDTSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUUxQjs7Ozs7V0FLRztRQUNILFNBQUksR0FBd0IsTUFBTSxDQUFD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Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBbUJHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFTTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsb0JBQW9CO3NCQURuQixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFHYSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgRWxlbWVudFJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgUmVuZGVyZXIyLFxuICAgIE9uRGVzdHJveSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIFBlcFRleHRib3hGaWVsZFR5cGUsXG4gICAgUGVwVGV4dGJveEZpZWxkLFxuICAgIFBlcEZpZWxkQmFzZSxcbiAgICBQZXBVdGlsaXRpZXNTZXJ2aWNlLFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IElzVXJsUGlwZSB9IGZyb20gJy4vbGluay5waXBlcyc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHRleHQgYm94IGlucHV0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2UgdG9cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgUGVwVGV4dGJveENvbXBvbmVudFxuICogQGltcGxlbWVudHMge09uQ2hhbmdlc31cbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1saW5rJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGluay5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBMaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1xYScpIGRhdGFRYSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfa2V5ID0gJyc7XG4gICAgLyoqXG4gICAgICogVGhlIHRleHQgYm94IGtleVxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBrZXkodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVFhID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBrZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgdGV4dCBib3guXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgIC8vIGlmICghdmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHZhbHVlID0gJyc7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlID0gZmFsc2U7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAvLyB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIHRleHRib3guXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGxhY2Vob2xkZXIgKHJlbGV2YW50IG9ubHkgZm9yIGNoaWxkcmVuIC0gaWYgcGFyZW50IGlzbid0IG51bGwpLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHRleHRib3guXG4gICAgICpcbiAgICAgKiBAdHlwZSB7UGVwVGV4dGJveEZpZWxkVHlwZX1cbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIHR5cGU6IFBlcFRleHRib3hGaWVsZFR5cGUgPSAnbGluayc7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdGV4dGJveCBpcyBtYW5kYXRvcnlcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBQZXBUZXh0Ym94Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgbWFuZGF0b3J5ID0gZmFsc2U7XG5cbiAgICAvLyBUT0RPOiBDaGVjayBpZiBzaG91bGQgcmVtb3ZlIGRpc2FibGVkIGFuZCBrZWVwIG9ubHkgcmVhZG9ubHkuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRleHRib3ggaXMgZGlzYWJsZWQuXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgUGVwVGV4dGJveENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdGV4dGJveCBpcyByZWFkb25seVxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIFBlcFRleHRib3hDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHRleHRDb2xvciA9ICcnO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuICAgIEBJbnB1dCgpIHJvd1NwYW4gPSAxO1xuICAgIC8vIEBJbnB1dCgpIGxhc3RGb2N1c0ZpZWxkOiBhbnk7XG4gICAgXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyRXJyb3IgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclN5bWJvbCA9IHRydWU7XG4gICAgQElucHV0KCkgbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgY2hhbmdlIGV2ZW50LlxuICAgICAqXG4gICAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxzdHJpbmc+fVxuICAgICAqIEBtZW1iZXJvZiBQZXBUZXh0Ym94Q29tcG9uZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtVmFsaWRhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUgPSB0cnVlO1xuICAgIGdldCBjYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ2xpbmsnO1xuXG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGlzSW5FZGl0TW9kZSA9IGZhbHNlO1xuICAgIGlzSW5Gb2N1czogYm9vbGVhbjtcbiAgICBpc1VybCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpc1VybFBpcGU6IElzVXJsUGlwZVxuICAgICkge1xuICAgICAgICB0aGlzLmlzSW5Gb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtRmllbGRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUZpZWxkVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBUZXh0Ym94RmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICBtYXhGaWVsZENoYXJhY3RlcnM6IHRoaXMubWF4RmllbGRDaGFyYWN0ZXJzLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKFxuICAgICAgICAgICAgcGVwRmllbGQsXG4gICAgICAgICAgICB0aGlzLnJlbmRlckVycm9yXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUZpZWxkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgb25Gb2N1cyhldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNJbkZvY3VzID0gdHJ1ZTtcblxuICAgICAgICAvLyBzZWxlY3QgdGhlIHZhbHVlIGluIGZvY3VzIChESS0xODI0NiBpbXByb3ZlbWVudClcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGV2ZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgZXZlbnRUYXJnZXQuc2VsZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIGlzVmFsdWVWYWxpZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRPRE86IE1heWJlIG5lZWQgdG8gY2hlY2sgb3RoZXIgdHlwZXMuXG4gICAgICAgIGNvbnN0IHJlcyA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBvbkNoYW5nZShlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldCA/IGUudGFyZ2V0LnZhbHVlIDogZTtcblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQmx1cihlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldCA/IGUudGFyZ2V0LnZhbHVlIDogZTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJZiByZW5kZXJFcnJvciBpcyBmYWxzZSBhbmQgdGhlIG5ldyB2YWx1ZSBpcyBub3QgdmFsaWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyRXJyb3IgJiYgIXRoaXMuaXNWYWx1ZVZhbGlkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHNldHRpbmcgdGhlIGZvcm1hdHRlZCB2YWx1ZSB0aGVuIHNldCB0aGUgdmFsdWUgdGlsbCB0aGUgdXNlciBmb3JtYXQgaXQgYW5kIHJldHVybiBpdCBiYWNrLlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5FZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgY29uc3Qgb3V0cHV0OiBJUGVwRmllbGRDbGlja0V2ZW50ID0ge1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGVcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgYW5jaG9yQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZS50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBJUGVwRmllbGRDbGlja0V2ZW50ID0ge1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQob3V0cHV0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVXJsUGlwZS50cmFuc2Zvcm0oY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYXJkVGVtcGxhdGVDbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRWRpdE1vZGUgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG5nLXRlbXBsYXRlICNwZXBUZW1wbGF0ZSBsZXQtaXNGb3JtVmlldz1cImlzRm9ybVZpZXdcIiBsZXQtaGFzUGFyZW50PVwiaGFzUGFyZW50XCI+XG4gICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCJyZW5kZXJUaXRsZSAmJiBpc0Zvcm1WaWV3ICYmICFoYXNQYXJlbnRcIiBbbGFiZWxdPVwibGFiZWxcIiBbbWFuZGF0b3J5XT1cIm1hbmRhdG9yeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbWF4RmllbGRDaGFyYWN0ZXJzXT1cIm1heEZpZWxkQ2hhcmFjdGVyc1wiIFt4QWxpZ25tZW50XT1cInhBbGlnbm1lbnRcIlxuICAgICAgICAgICAgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbaW5wdXRMZW5ndGhdPVwidmFsdWUubGVuZ3RoXCI+XG4gICAgICAgIDwvcGVwLWZpZWxkLXRpdGxlPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCAjaW5wdXQgcGVwVGV4dGJveFZhbGlkYXRpb24gW2lkXT1cImtleVwiIFtuYW1lXT1cImtleVwiIGNsYXNzPVwiIGJvZHktc20gXCIgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCJ7eyBtYXhGaWVsZENoYXJhY3RlcnMgPiAwID8gbWF4RmllbGRDaGFyYWN0ZXJzIDogOTk5OTkgfX1cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJoYXNQYXJlbnQgJiYgIWRpc2FibGVkID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogdGV4dENvbG9yLCAndGV4dC1hbGlnbic6IHhBbGlnbm1lbnQgPT0gJ2NlbnRlcicgPyAnY2VudGVyJyA6IHhBbGlnbm1lbnQgPT0gJ3JpZ2h0JyA/ICdyaWdodCcgOiAnbGVmdCcgfVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBmb3JtYXR0ZWRWYWx1ZSB9fVwiIFtmb3JtQ29udHJvbE5hbWVdPVwia2V5XCIgW3R5cGVdPVwidHlwZVwiIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCIkZXZlbnQ/LmN1cnJlbnRUYXJnZXQ/LmJsdXIoKVwiIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlLWhpZGRlbic6IGRpc2FibGVkICYmIGZvcm1hdHRlZFZhbHVlPy5sZW5ndGggPiAwfVwiIC8+XG5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlzYWJsZWQgJiYgZm9ybWF0dGVkVmFsdWU/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImRpcy1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJhbmNob3JDbGlja2VkKClcIiBbaWRdPVwia2V5XCIgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci1saW5rIGJvZHktc20gXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Zm9ybWF0dGVkVmFsdWV9fTwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJyZW5kZXJFcnJvclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5kYXRvcnkgJiYgaW5wdXQudmFsdWUubGVuZ3RoID09IDAgdGhlbiByZXF1aXJlZEVycm9yIGVsc2Ugb3RoZXJFcnJvclwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVxdWlyZWRFcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIignTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJUZXh0XT1cIignTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI290aGVyRXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVE9ETzogU2hvdyBlcnJvciBpZiBpdCdzIG5vdCBhIHZhbGlkIGxpbmsgLS0+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIihpbnB1dC52YWx1ZSB8IHBlcFRvTnVtYmVyKSA+IHRoaXMubWF4VmFsdWUgfHwgKGlucHV0LnZhbHVlIHwgcGVwVG9OdW1iZXIpIDwgdGhpcy5taW5WYWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdNRVNTQUdFUy5FUlJPUl9SQU5HRV9JU19OT1RfVkFMSUQnIHwgdHJhbnNsYXRlOiB7IG1pbjogbWluVmFsdWUsIG1heDogbWF4VmFsdWUgfSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIiBbaW5uZXJUZXh0XT1cIihpbnB1dC52YWx1ZSB8IHBlcFRvTnVtYmVyKSA+IHRoaXMubWF4VmFsdWUgfHwgKGlucHV0LnZhbHVlIHwgcGVwVG9OdW1iZXIpIDwgdGhpcy5taW5WYWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdNRVNTQUdFUy5FUlJPUl9SQU5HRV9JU19OT1RfVkFMSUQnIHwgdHJhbnNsYXRlOiB7IG1pbjogbWluVmFsdWUsIG1heDogbWF4VmFsdWUgfSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgICAgICAgIDxwZXAtdGV4dGJveC1pY29uICpuZ0lmPVwicmVuZGVyU3ltYm9sICYmIGlzRm9ybVZpZXcgJiYgeEFsaWdubWVudCA9PSAncmlnaHQnXCIgbWF0UHJlZml4IFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCIgW3R5cGVdPVwidHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgICAgPC9wZXAtdGV4dGJveC1pY29uPlxuICAgICAgICAgICAgPHBlcC10ZXh0Ym94LWljb24gKm5nSWY9XCJyZW5kZXJTeW1ib2wgJiYgaXNGb3JtVmlldyAmJiAoeEFsaWdubWVudCA9PSAnbGVmdCcpXCIgbWF0U3VmZml4IFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCIgW3R5cGVdPVwidHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgICAgPC9wZXAtdGV4dGJveC1pY29uPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ2Zvcm0nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBUZW1wbGF0ZTsgY29udGV4dDogeyBpc0Zvcm1WaWV3OiB0cnVlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ2NhcmQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0luRWRpdE1vZGU7IHRoZW4gZWRpdEJsb2NrOyBlbHNlIHJlYWRPbmx5QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0QmxvY2s+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnb25lLXJvdyc6IHJvd1NwYW4gPT09IDF9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlOyBjb250ZXh0OiB7IGlzRm9ybVZpZXc6IGZhbHNlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3JlYWRPbmx5QmxvY2s+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWNhcmQtaW5wdXQgY2FyZC1mbGV4LWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgY29sb3I6IHRleHRDb2xvciB9XCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3RleHQtYWxpZ24tJyArIHhBbGlnbm1lbnRcIiBbbmdDbGFzc109XCJ7J29uZS1yb3cnOiByb3dTcGFuID09PSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtdWx0aS1yb3dzJzogcm93U3BhbiA+IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BlcC1idXR0b24gd2Vhayc6IGlzQWN0aXZlICYmICFkaXNhYmxlZH1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWQgPyBjYXJkVGVtcGxhdGVDbGlja2VkKCRldmVudCkgOiAnJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1RpdGxlICYmIGxhYmVsICE9ICcnXCIgY2xhc3M9XCJib2R5LXhzIHRpdGxlXCIgdGl0bGU9XCJ7eyBsYWJlbCB9fVwiPnt7IGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIH19Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtpZF09XCJrZXlcIiB0aXRsZT1cInt7IGZvcm1hdHRlZFZhbHVlIH19XCIgY2xhc3M9XCJib2R5LXNtIHZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtdWx0aS1yb3dzLXRleHQnOiByb3dTcGFuID4gMX1cIiBbbmdTdHlsZV09XCJ7ICctd2Via2l0LWxpbmUtY2xhbXAnOiByb3dTcGFuIH1cIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBY3RpdmUgJiYgIWRpc2FibGVkXCIgY2xhc3M9XCJwZXAtYnV0dG9uIHdlYWsgY2FyZC1lZGl0LWJ1dHRvblwiIG1hdC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX2VkaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09ICd0YWJsZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWN0aXZlICYmICFkaXNhYmxlZDsgdGhlbiBzZWxlY3RlZEJsb2NrOyBlbHNlIG5vdFNlbGVjdGVkQmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEJsb2NrPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlOyBjb250ZXh0OiB7IGlzRm9ybVZpZXc6IGZhbHNlLCBoYXNQYXJlbnQ6IGZhbHNlIH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNlbGVjdGVkQmxvY2s+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0dGVkVmFsdWU/Lmxlbmd0aCA+IDA7IHRoZW4gbm90RW1wdHlCbG9jazsgZWxzZSBlbXB0eUJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdEVtcHR5QmxvY2s+XG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJmb3JtYXR0ZWRWYWx1ZSAhPSBudWxsICYmICh2YWx1ZSA/IHZhbHVlIDogZm9ybWF0dGVkVmFsdWUpIHwgaXNVcmxcIiBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci1saW5rIGJvZHktc20gcGVwLXJlcG9ydC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZSc6IChkaXNhYmxlZCAmJiB2YWx1ZSA9PT0gJycpfVwiIHRpdGxlPVwie3sgZm9ybWF0dGVkVmFsdWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgdmFsdWUgPyB2YWx1ZSA6IGZvcm1hdHRlZFZhbHVlIH19XCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPnt7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlIH19PC9hPlxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiZm9ybWF0dGVkVmFsdWUgIT0gbnVsbCAmJiAhKCh2YWx1ZSA/IHZhbHVlIDogZm9ybWF0dGVkVmFsdWUpIHwgaXNVcmwpXCIgW2lkXT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3ItbGluayBib2R5LXNtIHBlcC1yZXBvcnQtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGUnOiAoZGlzYWJsZWQgJiYgdmFsdWUgPT09ICcnKX1cIiB0aXRsZT1cInt7IGZvcm1hdHRlZFZhbHVlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvbkNsaWNrKClcIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSB9fTwvYT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5QmxvY2s+XG4gICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cImtleVwiPiZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { HttpClientModule } from '@angular/common/http';
4
- import { ReactiveFormsModule } from '@angular/forms';
4
+ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
5
5
  import { httpInterceptorProviders } from './core/http/interceptors/index';
6
6
  import { PepClipboardDirective } from './core/clipboard/clipboard.directive';
7
7
  import { PepRtlClassDirective, PepRtlDirectionDirective, } from './core/layout/rtl.directive';
@@ -105,6 +105,7 @@ PepNgxLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
105
105
  PepLayoutService,
106
106
  PepPortalService,
107
107
  PepScrollToService,
108
+ FormBuilder
108
109
  ], imports: [CommonModule,
109
110
  HttpClientModule,
110
111
  ReactiveFormsModule, TranslateModule] });
@@ -150,7 +151,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
150
151
  PepLayoutService,
151
152
  PepPortalService,
152
153
  PepScrollToService,
154
+ FormBuilder
153
155
  ]
154
156
  }]
155
157
  }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9uZ3gtbGliLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc3RSxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLHdCQUF3QixHQUMzQixNQUFNLDZCQUE2QixDQUFDO0FBR3JDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGFBQWEsRUFDYix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixlQUFlLEdBQ2xCLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBZ0JoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRixtR0FBbUc7QUFDbkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFhN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEUsT0FBTyxFQUFFLGVBQWUsRUFBb0MsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RixPQUFPLEVBQ0gsZUFBZSxFQUNmLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNyQixNQUFNLGNBQWMsQ0FBQzs7QUFqRnRCLE1BQU0sYUFBYSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQU05QyxNQUFNLFVBQVUsR0FBRyxDQUFDLG9CQUFvQixFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFpQnBFLE1BQU0sUUFBUSxHQUFHO0lBQ2IsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixhQUFhO0lBQ2Isd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQiwwQkFBMEI7SUFDMUIsZUFBZTtJQUNmLFdBQVc7SUFDWCxxQkFBcUI7SUFDckIsZUFBZTtJQUNmLFdBQVc7Q0FDZCxDQUFDO0FBV0YsTUFBTSxhQUFhLEdBQUc7SUFDbEIsMEJBQTBCO0lBQzFCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0IsNkJBQTZCO0lBQzdCLGlCQUFpQjtDQUNwQixDQUFDO0FBS0YsTUFBTSxVQUFVLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBaUU1RCxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQXJHeEIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixhQUFhO1FBQ2Isd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLFdBQVc7UUFDWCxxQkFBcUI7UUFDckIsZUFBZTtRQUNmLFdBQVcsRUFhWCwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLCtCQUErQjtRQUMvQiw2QkFBNkI7UUFDN0IsaUJBQWlCLEVBdERFLHFCQUFxQixFQU14QixvQkFBb0IsRUFBRSx3QkFBd0IsRUFzRDlDLGtCQUFrQixFQUFFLGtCQUFrQixhQWdDbEQsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixtQkFBbUIsYUF0RXZCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsYUFBYTtRQUNiLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLGVBQWU7UUFDZixXQUFXO1FBQ1gscUJBQXFCO1FBQ3JCLGVBQWU7UUFDZixXQUFXLEVBYVgsMEJBQTBCO1FBQzFCLHNCQUFzQjtRQUN0Qix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IsNkJBQTZCO1FBQzdCLGlCQUFpQixFQXRERSxxQkFBcUIsRUFNeEIsb0JBQW9CLEVBQUUsd0JBQXdCLEVBc0Q5QyxrQkFBa0IsRUFBRSxrQkFBa0IsRUEwQ2xELGVBQWU7NkdBdUJWLGVBQWUsYUFyQmI7UUFDUCx3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtLQUNyQixZQS9CRyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLG1CQUFtQixFQVFuQixlQUFlOzJGQXVCVixlQUFlO2tCQTFDM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsUUFBUTt3QkFDUixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixVQUFVO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsUUFBUTt3QkFDUixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGVBQWU7cUJBQ2xCO29CQUNELFNBQVMsRUFBRTt3QkFDUCx3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3FCQUNyQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGh0dHBJbnRlcmNlcHRvclByb3ZpZGVycyB9IGZyb20gJy4vY29yZS9odHRwL2ludGVyY2VwdG9ycy9pbmRleCc7XG5cbmltcG9ydCB7IFBlcENsaXBib2FyZERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jbGlwYm9hcmQvY2xpcGJvYXJkLmRpcmVjdGl2ZSc7XG5jb25zdCBjbGlwYm9hcmRMaXN0ID0gW1BlcENsaXBib2FyZERpcmVjdGl2ZV07XG5cbmltcG9ydCB7XG4gICAgUGVwUnRsQ2xhc3NEaXJlY3RpdmUsXG4gICAgUGVwUnRsRGlyZWN0aW9uRGlyZWN0aXZlLFxufSBmcm9tICcuL2NvcmUvbGF5b3V0L3J0bC5kaXJlY3RpdmUnO1xuY29uc3QgbGF5b3V0TGlzdCA9IFtQZXBSdGxDbGFzc0RpcmVjdGl2ZSwgUGVwUnRsRGlyZWN0aW9uRGlyZWN0aXZlXTtcblxuaW1wb3J0IHtcbiAgICBQZXBDYXBpdGFsaXplUGlwZSxcbiAgICBQZXBFbmNvZGVQaXBlLFxuICAgIFBlcEVzY2FwZVBpcGUsXG4gICAgUGVwUmVwbGFjZUxpbmVCcmVha3NQaXBlLFxuICAgIFBlcERhdGVGb3JtYXR0ZXJQaXBlLFxuICAgIFBlcERhdGVTdHJpbmdGb3JtYXR0ZXJQaXBlLFxuICAgIFBlcFNhZmVIdG1sUGlwZSxcbiAgICBQZXBTYWZlUGlwZSxcbiAgICBQZXBTcGxpdFVwcGVyY2FzZVBpcGUsXG4gICAgUGVwVG9OdW1iZXJQaXBlLFxufSBmcm9tICcuL2NvcmUvY29tbW9uL3BpcGVzL2NvbW1vbi1waXBlcyc7XG5cbmltcG9ydCB7IERhdGVBZ29QaXBlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9waXBlcy9kYXRlLWFnby5waXBlJztcblxuY29uc3QgcGlwZUxpc3QgPSBbXG4gICAgUGVwQ2FwaXRhbGl6ZVBpcGUsXG4gICAgUGVwRW5jb2RlUGlwZSxcbiAgICBQZXBFc2NhcGVQaXBlLFxuICAgIFBlcFJlcGxhY2VMaW5lQnJlYWtzUGlwZSxcbiAgICBQZXBEYXRlRm9ybWF0dGVyUGlwZSxcbiAgICBQZXBEYXRlU3RyaW5nRm9ybWF0dGVyUGlwZSxcbiAgICBQZXBTYWZlSHRtbFBpcGUsXG4gICAgUGVwU2FmZVBpcGUsXG4gICAgUGVwU3BsaXRVcHBlcmNhc2VQaXBlLFxuICAgIFBlcFRvTnVtYmVyUGlwZSxcbiAgICBEYXRlQWdvUGlwZVxuXTtcblxuaW1wb3J0IHsgUGVwSW5wdXRBdXRvV2lkdGhEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvYXV0by13aWR0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwQnV0dG9uQmx1ckRpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jb21tb24vZGlyZWN0aXZlcy9idXR0b24tYmx1ci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwQnV0dG9uTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9kaXJlY3RpdmVzL2J1dHRvbi1sb2FkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBlcE1lbnVCbHVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9kaXJlY3RpdmVzL21lbnUtYmx1ci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwRGF0YVFhRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9kaXJlY3RpdmVzL2RhdGEtcWEuZGlyZWN0aXZlJztcbi8vIGltcG9ydCB7IFByZXZlbnREb3VibGVDbGlja0RpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jb21tb24vZGlyZWN0aXZlcy9kZWJvdW5jZS1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwUHJldmVudE11bHRpQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvcHJldmVudC1tdWx0aS1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwUHJpbnREaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvcHJpbnQuZGlyZWN0aXZlJztcblxuY29uc3QgdXRpbGl0aWVzTGlzdCA9IFtcbiAgICBQZXBJbnB1dEF1dG9XaWR0aERpcmVjdGl2ZSxcbiAgICBQZXBCdXR0b25CbHVyRGlyZWN0aXZlLFxuICAgIFBlcEJ1dHRvbkxvYWRlckRpcmVjdGl2ZSxcbiAgICBQZXBNZW51Qmx1ckRpcmVjdGl2ZSxcbiAgICBQZXBEYXRhUWFEaXJlY3RpdmUsXG4gICAgLy8gUHJldmVudERvdWJsZUNsaWNrRGlyZWN0aXZlLFxuICAgIFBlcFByZXZlbnRNdWx0aUNsaWNrRGlyZWN0aXZlLFxuICAgIFBlcFByaW50RGlyZWN0aXZlLFxuXTtcblxuaW1wb3J0IHsgUGVwQXR0YWNoRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL3BvcnRhbC9hdHRhY2guZGlyZWN0aXZlJztcbmltcG9ydCB7IFBlcFRhcmdldERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9wb3J0YWwvdGFyZ2V0LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IHBvcnRhbExpc3QgPSBbUGVwQXR0YWNoRGlyZWN0aXZlLCBQZXBUYXJnZXREaXJlY3RpdmVdO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZVN0b3JlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBcbiAgICBQZXBBZGRvblNlcnZpY2UsXG4gICAgUGVwQ29sb3JTZXJ2aWNlLFxuICAgIFBlcENvb2tpZVNlcnZpY2UsXG4gICAgUGVwRGF0YUNvbnZlcnRvclNlcnZpY2UsXG4gICAgUGVwRmlsZVNlcnZpY2UsXG4gICAgUGVwSnd0SGVscGVyU2VydmljZSxcbiAgICBQZXBTZXNzaW9uU2VydmljZSxcbiAgICBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBQZXBXaW5kb3dTY3JvbGxpbmdTZXJ2aWNlLFxuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFBlcEh0dHBTZXJ2aWNlLFxuICAgIFBlcExvYWRlclNlcnZpY2UsXG4gICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICBQZXBQb3J0YWxTZXJ2aWNlLFxuICAgIFBlcFNjcm9sbFRvU2VydmljZSxcbn0gZnJvbSAnLi9jb3JlL2luZGV4JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgcGlwZUxpc3QsXG4gICAgICAgIHV0aWxpdGllc0xpc3QsXG4gICAgICAgIGNsaXBib2FyZExpc3QsXG4gICAgICAgIGxheW91dExpc3QsXG4gICAgICAgIHBvcnRhbExpc3QsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgcGlwZUxpc3QsXG4gICAgICAgIHV0aWxpdGllc0xpc3QsXG4gICAgICAgIGNsaXBib2FyZExpc3QsXG4gICAgICAgIGxheW91dExpc3QsXG4gICAgICAgIHBvcnRhbExpc3QsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBodHRwSW50ZXJjZXB0b3JQcm92aWRlcnMsXG4gICAgICAgIFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgUGVwQ29sb3JTZXJ2aWNlLFxuICAgICAgICBQZXBDb29raWVTZXJ2aWNlLFxuICAgICAgICBQZXBEYXRhQ29udmVydG9yU2VydmljZSxcbiAgICAgICAgUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIFBlcEp3dEhlbHBlclNlcnZpY2UsXG4gICAgICAgIFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBQZXBVdGlsaXRpZXNTZXJ2aWNlLFxuICAgICAgICBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBQZXBXaW5kb3dTY3JvbGxpbmdTZXJ2aWNlLFxuICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgUGVwSHR0cFNlcnZpY2UsXG4gICAgICAgIFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIFBlcFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIFBlcFNjcm9sbFRvU2VydmljZSxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFBlcE5neExpYk1vZHVsZSB7XG4gICAgLy8gc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQZXBOZ3hMaWJNb2R1bGU+IHtcbiAgICAvLyAgICAgcmV0dXJuIHtcbiAgICAvLyAgICAgICAgIG5nTW9kdWxlOiBQZXBOZ3hMaWJNb2R1bGUsXG4gICAgLy8gICAgICAgICBwcm92aWRlcnM6IFtQZXBDdXN0b21pemF0aW9uU2VydmljZV1cbiAgICAvLyAgICAgfTtcbiAgICAvLyB9XG4gICAgLy8gc3RhdGljIGZvclJvb3QoKSB7XG4gICAgLy8gICAgIHJldHVybiB7XG4gICAgLy8gICAgICAgbmdNb2R1bGU6IFBlcE5neExpYk1vZHVsZSxcbiAgICAvLyAgICAgICBwcm92aWRlcnM6IFsgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UgXVxuICAgIC8vICAgICB9XG4gICAgLy8gfVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9uZ3gtbGliLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHN0UsT0FBTyxFQUNILG9CQUFvQixFQUNwQix3QkFBd0IsR0FDM0IsTUFBTSw2QkFBNkIsQ0FBQztBQUdyQyxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixhQUFhLEVBQ2Isd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsZUFBZSxFQUNmLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsZUFBZSxHQUNsQixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQWdCaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsbUdB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aEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsV0FBVztLQUNkLFlBaENHLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsbUJBQW1CLEVBUW5CLGVBQWU7MkZBd0JWLGVBQWU7a0JBM0MzQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFVBQVU7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLFdBQVc7cUJBQ2Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgaHR0cEludGVyY2VwdG9yUHJvdmlkZXJzIH0gZnJvbSAnLi9jb3JlL2h0dHAvaW50ZXJjZXB0b3JzL2luZGV4JztcblxuaW1wb3J0IHsgUGVwQ2xpcGJvYXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NsaXBib2FyZC9jbGlwYm9hcmQuZGlyZWN0aXZlJztcbmNvbnN0IGNsaXBib2FyZExpc3QgPSBbUGVwQ2xpcGJvYXJkRGlyZWN0aXZlXTtcblxuaW1wb3J0IHtcbiAgICBQZXBSdGxDbGFzc0RpcmVjdGl2ZSxcbiAgICBQZXBSdGxEaXJlY3Rpb25EaXJlY3RpdmUsXG59IGZyb20gJy4vY29yZS9sYXlvdXQvcnRsLmRpcmVjdGl2ZSc7XG5jb25zdCBsYXlvdXRMaXN0ID0gW1BlcFJ0bENsYXNzRGlyZWN0aXZlLCBQZXBSdGxEaXJlY3Rpb25EaXJlY3RpdmVdO1xuXG5pbXBvcnQge1xuICAgIFBlcENhcGl0YWxpemVQaXBlLFxuICAgIFBlcEVuY29kZVBpcGUsXG4gICAgUGVwRXNjYXBlUGlwZSxcbiAgICBQZXBSZXBsYWNlTGluZUJyZWFrc1BpcGUsXG4gICAgUGVwRGF0ZUZvcm1hdHRlclBpcGUsXG4gICAgUGVwRGF0ZVN0cmluZ0Zvcm1hdHRlclBpcGUsXG4gICAgUGVwU2FmZUh0bWxQaXBlLFxuICAgIFBlcFNhZmVQaXBlLFxuICAgIFBlcFNwbGl0VXBwZXJjYXNlUGlwZSxcbiAgICBQZXBUb051bWJlclBpcGUsXG59IGZyb20gJy4vY29yZS9jb21tb24vcGlwZXMvY29tbW9uLXBpcGVzJztcblxuaW1wb3J0IHsgRGF0ZUFnb1BpcGUgfSBmcm9tICcuL2NvcmUvY29tbW9uL3BpcGVzL2RhdGUtYWdvLnBpcGUnO1xuXG5jb25zdCBwaXBlTGlzdCA9IFtcbiAgICBQZXBDYXBpdGFsaXplUGlwZSxcbiAgICBQZXBFbmNvZGVQaXBlLFxuICAgIFBlcEVzY2FwZVBpcGUsXG4gICAgUGVwUmVwbGFjZUxpbmVCcmVha3NQaXBlLFxuICAgIFBlcERhdGVGb3JtYXR0ZXJQaXBlLFxuICAgIFBlcERhdGVTdHJpbmdGb3JtYXR0ZXJQaXBlLFxuICAgIFBlcFNhZmVIdG1sUGlwZSxcbiAgICBQZXBTYWZlUGlwZSxcbiAgICBQZXBTcGxpdFVwcGVyY2FzZVBpcGUsXG4gICAgUGVwVG9OdW1iZXJQaXBlLFxuICAgIERhdGVBZ29QaXBlXG5dO1xuXG5pbXBvcnQgeyBQZXBJbnB1dEF1dG9XaWR0aERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jb21tb24vZGlyZWN0aXZlcy9hdXRvLXdpZHRoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBCdXR0b25CbHVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9kaXJlY3RpdmVzL2J1dHRvbi1ibHVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBCdXR0b25Mb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwTWVudUJsdXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvbWVudS1ibHVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBEYXRhUWFEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvY29tbW9uL2RpcmVjdGl2ZXMvZGF0YS1xYS5kaXJlY3RpdmUnO1xuLy8gaW1wb3J0IHsgUHJldmVudERvdWJsZUNsaWNrRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2NvbW1vbi9kaXJlY3RpdmVzL2RlYm91bmNlLWNsaWNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBQcmV2ZW50TXVsdGlDbGlja0RpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jb21tb24vZGlyZWN0aXZlcy9wcmV2ZW50LW11bHRpLWNsaWNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBQcmludERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9jb21tb24vZGlyZWN0aXZlcy9wcmludC5kaXJlY3RpdmUnO1xuXG5jb25zdCB1dGlsaXRpZXNMaXN0ID0gW1xuICAgIFBlcElucHV0QXV0b1dpZHRoRGlyZWN0aXZlLFxuICAgIFBlcEJ1dHRvbkJsdXJEaXJlY3RpdmUsXG4gICAgUGVwQnV0dG9uTG9hZGVyRGlyZWN0aXZlLFxuICAgIFBlcE1lbnVCbHVyRGlyZWN0aXZlLFxuICAgIFBlcERhdGFRYURpcmVjdGl2ZSxcbiAgICAvLyBQcmV2ZW50RG91YmxlQ2xpY2tEaXJlY3RpdmUsXG4gICAgUGVwUHJldmVudE11bHRpQ2xpY2tEaXJlY3RpdmUsXG4gICAgUGVwUHJpbnREaXJlY3RpdmUsXG5dO1xuXG5pbXBvcnQgeyBQZXBBdHRhY2hEaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvcG9ydGFsL2F0dGFjaC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGVwVGFyZ2V0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL3BvcnRhbC90YXJnZXQuZGlyZWN0aXZlJztcblxuY29uc3QgcG9ydGFsTGlzdCA9IFtQZXBBdHRhY2hEaXJlY3RpdmUsIFBlcFRhcmdldERpcmVjdGl2ZV07XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSwgVHJhbnNsYXRlU3RvcmUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFxuICAgIFBlcEFkZG9uU2VydmljZSxcbiAgICBQZXBDb2xvclNlcnZpY2UsXG4gICAgUGVwQ29va2llU2VydmljZSxcbiAgICBQZXBEYXRhQ29udmVydG9yU2VydmljZSxcbiAgICBQZXBGaWxlU2VydmljZSxcbiAgICBQZXBKd3RIZWxwZXJTZXJ2aWNlLFxuICAgIFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgIFBlcFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgIFBlcFdpbmRvd1Njcm9sbGluZ1NlcnZpY2UsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSHR0cFNlcnZpY2UsXG4gICAgUGVwTG9hZGVyU2VydmljZSxcbiAgICBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgIFBlcFBvcnRhbFNlcnZpY2UsXG4gICAgUGVwU2Nyb2xsVG9TZXJ2aWNlLFxufSBmcm9tICcuL2NvcmUvaW5kZXgnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBwaXBlTGlzdCxcbiAgICAgICAgdXRpbGl0aWVzTGlzdCxcbiAgICAgICAgY2xpcGJvYXJkTGlzdCxcbiAgICAgICAgbGF5b3V0TGlzdCxcbiAgICAgICAgcG9ydGFsTGlzdCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBwaXBlTGlzdCxcbiAgICAgICAgdXRpbGl0aWVzTGlzdCxcbiAgICAgICAgY2xpcGJvYXJkTGlzdCxcbiAgICAgICAgbGF5b3V0TGlzdCxcbiAgICAgICAgcG9ydGFsTGlzdCxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGh0dHBJbnRlcmNlcHRvclByb3ZpZGVycyxcbiAgICAgICAgUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICBQZXBDb2xvclNlcnZpY2UsXG4gICAgICAgIFBlcENvb2tpZVNlcnZpY2UsXG4gICAgICAgIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlLFxuICAgICAgICBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgUGVwSnd0SGVscGVyU2VydmljZSxcbiAgICAgICAgUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIFBlcFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgICAgIFBlcFZhbGlkYXRvclNlcnZpY2UsXG4gICAgICAgIFBlcFdpbmRvd1Njcm9sbGluZ1NlcnZpY2UsXG4gICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgUGVwTG9hZGVyU2VydmljZSxcbiAgICAgICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgUGVwUG9ydGFsU2VydmljZSxcbiAgICAgICAgUGVwU2Nyb2xsVG9TZXJ2aWNlLFxuICAgICAgICBGb3JtQnVpbGRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwTmd4TGliTW9kdWxlIHtcbiAgICAvLyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBlcE5neExpYk1vZHVsZT4ge1xuICAgIC8vICAgICByZXR1cm4ge1xuICAgIC8vICAgICAgICAgbmdNb2R1bGU6IFBlcE5neExpYk1vZHVsZSxcbiAgICAvLyAgICAgICAgIHByb3ZpZGVyczogW1BlcEN1c3RvbWl6YXRpb25TZXJ2aWNlXVxuICAgIC8vICAgICB9O1xuICAgIC8vIH1cbiAgICAvLyBzdGF0aWMgZm9yUm9vdCgpIHtcbiAgICAvLyAgICAgcmV0dXJuIHtcbiAgICAvLyAgICAgICBuZ01vZHVsZTogUGVwTmd4TGliTW9kdWxlLFxuICAgIC8vICAgICAgIHByb3ZpZGVyczogWyBQZXBDdXN0b21pemF0aW9uU2VydmljZSBdXG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVwcGVyaS1hZGRvbnMtbmd4LWxpYi1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3BsdWdpbi9wZXBwZXJpLWFkZG9ucy1uZ3gtbGliLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,90 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { loadRemoteModule } from '@angular-architects/module-federation';
3
+ import * as i0 from "@angular/core";
4
+ export class PepPluginProxyComponent {
5
+ constructor() {
6
+ this._options = null;
7
+ // This is the data passed by the API Design documentation.
8
+ this._hostObject = null;
9
+ this.hostEvents = new EventEmitter();
10
+ this.load = new EventEmitter();
11
+ }
12
+ set options(value) {
13
+ this._options = value;
14
+ if (value) {
15
+ this.loadModule();
16
+ }
17
+ }
18
+ get options() {
19
+ return this._options;
20
+ }
21
+ set hostObject(value) {
22
+ this._hostObject = value;
23
+ this.setHostComponentIntoComponentRef();
24
+ }
25
+ get hostObject() {
26
+ return this._hostObject;
27
+ }
28
+ setHostComponentIntoComponentRef() {
29
+ if (this.hostObject && this.compRef?.instance) {
30
+ this.compRef.instance.hostObject = this.hostObject;
31
+ // TODO: Check if this is needed?? if not remove this.
32
+ if (this.compRef?.instance?.ngOnChanges) {
33
+ this.compRef.instance.ngOnChanges(this.hostObject);
34
+ }
35
+ }
36
+ }
37
+ async loadModule() {
38
+ this.viewContainer.clear();
39
+ // if (this.options.addonId) {
40
+ // const publicPathArr = this.options.remoteEntry.split('/');
41
+ // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
42
+ // __webpack_public_path__ = publicPath;
43
+ // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
44
+ // }
45
+ debugger;
46
+ this.options.type = 'module';
47
+ const Component = await loadRemoteModule(this.options)
48
+ .then(m => m[this.options.componentName]);
49
+ this.compRef = this.viewContainer.createComponent(Component);
50
+ this.load.emit();
51
+ if (this.compRef) {
52
+ this.setHostComponentIntoComponentRef();
53
+ this.compRef?.instance['hostEvents']?.subscribe(e => {
54
+ this.hostEvents.emit(e);
55
+ });
56
+ }
57
+ }
58
+ ngOnChanges() {
59
+ }
60
+ ngOnDestroy() {
61
+ this.compRef?.destroy();
62
+ this.viewContainer?.clear();
63
+ }
64
+ }
65
+ PepPluginProxyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepPluginProxyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
+ PepPluginProxyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepPluginProxyComponent, isStandalone: true, selector: "pep-plugin-proxy", inputs: { options: "options", hostObject: "hostObject" }, outputs: { hostEvents: "hostEvents", load: "load" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["placeHolder"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
67
+ <ng-container #placeHolder></ng-container>
68
+ `, isInline: true });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepPluginProxyComponent, decorators: [{
70
+ type: Component,
71
+ args: [{
72
+ standalone: true,
73
+ selector: 'pep-plugin-proxy',
74
+ template: `
75
+ <ng-container #placeHolder></ng-container>
76
+ `
77
+ }]
78
+ }], ctorParameters: function () { return []; }, propDecorators: { viewContainer: [{
79
+ type: ViewChild,
80
+ args: ['placeHolder', { read: ViewContainerRef, static: true }]
81
+ }], options: [{
82
+ type: Input
83
+ }], hostObject: [{
84
+ type: Input
85
+ }], hostEvents: [{
86
+ type: Output
87
+ }], load: [{
88
+ type: Output
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXByb3h5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcGx1Z2luL3BsdWdpbi1wcm94eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFVekUsTUFBTSxPQUFPLHVCQUF1QjtJQWdDaEM7UUE1QlEsYUFBUSxHQUFxQixJQUFJLENBQUM7UUFZMUMsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJeEMsQ0FBQztJQTNCakIsSUFDSSxPQUFPLENBQUMsS0FBdUI7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUNJLFVBQVUsQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQVNPLGdDQUFnQztRQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFFbkQsc0RBQXNEO1lBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUzQiw4QkFBOEI7UUFDOUIsaUVBQWlFO1FBQ2pFLHlGQUF5RjtRQUN6Riw0Q0FBNEM7UUFDNUMsbUZBQW1GO1FBQ25GLElBQUk7UUFFSixRQUFRLENBQUM7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2pELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1lBRXhDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7b0hBOUVRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLG9SQUNFLGdCQUFnQixnRUFMeEM7O0tBRVQ7MkZBRVEsdUJBQXVCO2tCQVBuQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7O0tBRVQ7aUJBQ0o7MEVBR0csYUFBYTtzQkFEWixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUs5RCxPQUFPO3NCQURWLEtBQUs7Z0JBY0YsVUFBVTtzQkFEYixLQUFLO2dCQVNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbG9hZFJlbW90ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24nO1xuaW1wb3J0IHsgUGVwUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2luLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3BlcC1wbHVnaW4tcHJveHknLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgI3BsYWNlSG9sZGVyPjwvbmctY29udGFpbmVyPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgUGVwUGx1Z2luUHJveHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgncGxhY2VIb2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfb3B0aW9uczogUGVwUGx1Z2luT3B0aW9ucyA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBzZXQgb3B0aW9ucyh2YWx1ZTogUGVwUGx1Z2luT3B0aW9ucykge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTW9kdWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKTogUGVwUGx1Z2luT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgdGhlIGRhdGEgcGFzc2VkIGJ5IHRoZSBBUEkgRGVzaWduIGRvY3VtZW50YXRpb24uXG4gICAgcHJpdmF0ZSBfaG9zdE9iamVjdDogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBob3N0T2JqZWN0KHZhbHVlOiBhbnkpIHsgXG4gICAgICAgIHRoaXMuX2hvc3RPYmplY3QgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpO1xuICAgIH1cbiAgICBnZXQgaG9zdE9iamVjdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9zdE9iamVjdDtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgaG9zdEV2ZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSAgbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBsb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9ICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIGNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHByaXZhdGUgc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3RPYmplY3QgJiYgdGhpcy5jb21wUmVmPy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jb21wUmVmLmluc3RhbmNlLmhvc3RPYmplY3QgPSB0aGlzLmhvc3RPYmplY3Q7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgbmVlZGVkPz8gaWYgbm90IHJlbW92ZSB0aGlzLlxuICAgICAgICAgICAgaWYgKHRoaXMuY29tcFJlZj8uaW5zdGFuY2U/Lm5nT25DaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wUmVmLmluc3RhbmNlLm5nT25DaGFuZ2VzKHRoaXMuaG9zdE9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRNb2R1bGUoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIFxuICAgICAgICAvLyBpZiAodGhpcy5vcHRpb25zLmFkZG9uSWQpIHtcbiAgICAgICAgLy8gICAgIGNvbnN0IHB1YmxpY1BhdGhBcnIgPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3BsaXQoJy8nKTtcbiAgICAgICAgLy8gICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwdWJsaWNQYXRoQXJyLnNsaWNlKDAsIHB1YmxpY1BhdGhBcnIubGVuZ3RoIC0gMSkuam9pbignLycpKycvJztcbiAgICAgICAgLy8gICAgIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gcHVibGljUGF0aDtcbiAgICAgICAgLy8gICAgIHRoaXMucGVwQWRkb25TZXJ2aWNlLnNldEFkZG9uU3RhdGljRm9sZGVyKHB1YmxpY1BhdGgsIHRoaXMub3B0aW9ucy5hZGRvbklkKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICB0aGlzLm9wdGlvbnMudHlwZSA9ICdtb2R1bGUnO1xuICAgICAgICBjb25zdCBDb21wb25lbnQgPSBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucylcbiAgICAgICAgICAgIC50aGVuKG0gPT4gbVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV0pO1xuICAgIFxuICAgICAgICB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KENvbXBvbmVudCk7XG4gICAgICAgIHRoaXMubG9hZC5lbWl0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmNvbXBSZWY/Lmluc3RhbmNlWydob3N0RXZlbnRzJ10/LnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RFdmVudHMuZW1pdChlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICB9XG4gICAgXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmNsZWFyKCk7XG4gICAgfVxufVxuXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9wbHVnaW4vcGx1Z2luLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2FkUmVtb3RlTW9kdWxlT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24nO1xyXG5cclxuZXhwb3J0IHR5cGUgUGVwUGx1Z2luT3B0aW9ucyA9IExvYWRSZW1vdGVNb2R1bGVPcHRpb25zICYge1xyXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZztcclxufTtcclxuICAgICJdfQ==
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of ngx-lib/plugin
3
+ */
4
+ export * from './plugin-proxy.component';
5
+ export * from './plugin.model';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcGx1Z2luL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWxpYi9wbHVnaW5cclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLXByb3h5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLm1vZGVsJztcclxuIl19