@sebgroup/green-angular 5.9.0 → 5.11.0

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 (49) hide show
  1. package/esm2022/lib/shared/core-control/core-checkbox.directive.mjs +39 -0
  2. package/esm2022/lib/shared/core-control/core-control.directive.mjs +3 -2
  3. package/esm2022/lib/shared/core-control/core-control.module.mjs +5 -4
  4. package/esm2022/lib/shared/core-control/index.mjs +2 -1
  5. package/esm2022/src/lib/shared/core-control/core-checkbox.directive.mjs +39 -0
  6. package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +3 -2
  7. package/esm2022/src/lib/shared/core-control/core-control.module.mjs +5 -4
  8. package/esm2022/src/lib/shared/core-control/index.mjs +2 -1
  9. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +5 -2
  10. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +3 -4
  11. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +5 -2
  12. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +3 -3
  13. package/esm2022/src/v-angular/input/input.component.mjs +3 -3
  14. package/esm2022/src/v-angular/textarea/textarea.component.mjs +3 -3
  15. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +5 -2
  16. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +3 -4
  17. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +5 -2
  18. package/esm2022/v-angular/dropdown/dropdown.component.mjs +3 -3
  19. package/esm2022/v-angular/input/input.component.mjs +3 -3
  20. package/esm2022/v-angular/textarea/textarea.component.mjs +3 -3
  21. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +41 -5
  22. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +4 -1
  24. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +6 -3
  26. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +2 -2
  28. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +2 -2
  30. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +2 -2
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-v-angular.mjs +16 -10
  34. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular.mjs +41 -5
  36. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  37. package/lib/shared/core-control/core-checkbox.directive.d.ts +10 -0
  38. package/lib/shared/core-control/core-control.directive.d.ts +7 -7
  39. package/lib/shared/core-control/core-control.module.d.ts +4 -3
  40. package/lib/shared/core-control/index.d.ts +1 -0
  41. package/package.json +2 -2
  42. package/src/lib/shared/core-control/core-checkbox.directive.d.ts +10 -0
  43. package/src/lib/shared/core-control/core-control.directive.d.ts +7 -7
  44. package/src/lib/shared/core-control/core-control.module.d.ts +4 -3
  45. package/src/lib/shared/core-control/index.d.ts +1 -0
  46. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +5 -1
  47. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +5 -1
  48. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +5 -1
  49. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +5 -1
@@ -195,11 +195,11 @@ export class NggvDropdownComponent extends NggvBaseControlValueAccessorComponent
195
195
  return !('options' in option);
196
196
  }
197
197
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i6.NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges"], outputs: ["selectedValueChanged", "closed"] }] }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i6.NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges"], outputs: ["selectedValueChanged", "closed"] }] }); }
199
199
  }
200
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, decorators: [{
201
201
  type: Component,
202
- args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"] }]
202
+ args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"] }]
203
203
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
204
204
  type: Self
205
205
  }, {
@@ -243,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
243
243
  type: HostListener,
244
244
  args: ['keyup', ['$event']]
245
245
  }] } });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFFOUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDekgsT0FBTyxFQUNMLGFBQWEsR0FJZCxNQUFNLDRDQUE0QyxDQUFBOzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUtYLFNBQVEscUNBQXFDO0lBc0I3Qyx1RkFBdUY7SUFDdkYsSUFBYSxPQUFPLENBQUMsS0FBc0I7UUFDekMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNyQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQUMsQ0FB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LEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFrQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkEwRVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG4gIE9wdGlvbkdyb3VwLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5cbi8qKlxuICogQSBkcm9wZG93biBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGFuIG9wdGlvbiBmcm9tIGEgbGlzdC5cbiAqIERyb3Bkb3ducyBlbmFibGVzIHVzZXJzIHRvIG1ha2UgYSBxdWljayBzZWxlY3Rpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGZvciBhIHNwZWNpZmljIGVudHJ5LlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1kcm9wZG93blxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duQ29tcG9uZW50PFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgZXh0ZW5kcyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBvcHRpb25zIGFuZCBncm91cHMuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncm91cExhYmVsVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBncm91cExhYmVsVHBsOlxuICAgIHwgVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PlxuICAgIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdkcm9wZG93bidcblxuICAvKiogVGV4dCBzaG93biBiZWZvcmUgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICAvKiogU3BlY2lmaWMgdmFsdWUgZm9yIGFyaWEtbGFiZWwuIElmIG5vdCBwcm92aWRlZCwgbGFiZWwvbGFiZWxUcGwgd2lsbCBiZSB1c2VkLiAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmdcbiAgLyoqIExpc3Qgb2Yge0BsaW5rIE9wdGlvbn0gYW5kIHtAbGluayBPcHRpb25Hcm91cH0gbGlzdGVkIHdoZW4gZHJvcGRvd24gaXMgZXhwYW5kZWQuICovXG4gIEBJbnB1dCgpIHNldCBvcHRpb25zKHZhbHVlOiBPcHRpb25CYXNlPFQ+W10pIHtcbiAgICAvLyB1cGRhdGUgb3B0aW9uc1xuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZVxuICAgIC8vIGFscmVhZHkgaGFzIGEgbnVsbC91bmRlZmluZWQga2V5XG4gICAgY29uc3QgbnVsbGlzaE9wdGlvbiA9IHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgLmZsYXR0ZW5PcHRpb25zKHZhbHVlLCBmYWxzZSlcbiAgICAgIC5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT0gbnVsbClcbiAgICAvLyBpZiB0aGUgZHJvcGRvd24gaXMgb3B0aW9uYWwsIGFkZCBhIG51bGwgdmFsdWUgdG8gZGVzZWxlY3Qgb3B0aW9uXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkICYmICFudWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQodGhpcy5fb3B0aW9ucylcbiAgICB9XG5cbiAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZSBhbmQgZW1pdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSBvcHRpb25cbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxICYmIHRoaXMucmVxdWlyZWQgJiYgdGhpcy5zZWxlY3RPblNpbmdsZU9wdGlvbikge1xuICAgICAgY29uc3Qgb25seU9wdGlvbiA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpWzBdXG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsKG9ubHlPcHRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBkb24ndCB1cGRhdGUgbG9jYWwgc3RhdGUgaWYgd2Ugc2hvdWxkbid0IGNvbnRyb2wgbnVsbGlzaCB2YWx1ZSBhbmQgd2UgY2FudCBmaW5kIHRoZSBzZWxlY3RlZCB2YWx1ZSBhbW9uZ3N0IHRoZSBvcHRpb25zXG4gICAgY29uc3QgbWF0Y2hpbmdPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IHRoaXMubmdDb250cm9sPy52YWx1ZSlcbiAgICBpZiAoIXRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiAmJiAhbWF0Y2hpbmdPcHRpb24pIHJldHVyblxuXG4gICAgLy8gVXBkYXRlIGxvY2FsIHN0YXRlXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMubmdDb250cm9sPy52YWx1ZSlcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IE9wdGlvbkJhc2U8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnNcbiAgfVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgLyoqXG4gICAqIEFsbG93IHRoaXMgY29tcG9uZW50IHRvIGFkZC8gcmVtb3ZlIG51bGxpc2ggb3B0aW9ucyBiYXNlZCBvbiB3ZXRoZXIgdGhlIGNvbnRyb2wgaXMgcmVxdWlyZWQgb3Igbm90XG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0NvbnRyb2xOdWxsaXNoT3B0aW9uID0gdHJ1ZVxuXG4gIC8qKiBUZXh0IHRvIGhpZ2hsaWdodCBpbiBvcHRpb24gKi9cbiAgQElucHV0KCkgdGV4dFRvSGlnaGxpZ2h0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIElmIG9ubHkgb25lIG9wdGlvbiBleGlzdHMgaW4gb3B0aW9uc1tdLCBkZWZhdWx0IGlzIHRvIHNlbGVjdCBpdC5cbiAgICogVGhpcyBpbnB1dCBjYW4gYmUgdXNlZCB0byBhbHRlciB0aGF0IGJlaGF2aW91ciBzbyBpdCBkb2Vzbid0IGF1dG9tYXRpY2FsbHlcbiAgICogc2VsZWN0IGEgdmFsdWUgaWYgaXQncyB0aGUgb25seSBvbmUuXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RPblNpbmdsZU9wdGlvbiA9IHRydWVcblxuICAvKipcbiAgICogRW1pdHMgY2hhbmdlcyBvZiB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duXG4gICAqL1xuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICAvKiogQGludGVybmFsIG51bGxpc2ggb3B0aW9uLiAqL1xuICBnZXQgZGVmYXVsdE51bGxpc2hPcHRpb24oKTogT3B0aW9uQmFzZTxhbnk+IHtcbiAgICByZXR1cm4geyBrZXk6IG51bGwsIGxhYmVsOiB0aGlzLnBsYWNlaG9sZGVyID8/ICdcXHUwMEEwJyB9XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnQgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duIG9wdGlvbnMuICovXG4gIHB1YmxpYyBleHBhbmRlZCA9IGZhbHNlXG4gIC8qKiBUaGUgY3VycmVudCBvcHRpb24gc2VsZWN0ZWQgYmFzZWQgb24gbnVtZXJpYyBpbmRleC4gKi9cbiAgcHVibGljIGFjdGl2ZUluZGV4ID0gLTFcbiAgLyoqIFN1YnNjcmliZSBpZiBkcm9wZG93biBleHBhbmRlZCB0byBsaXN0ZW4gdG8gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBkcm9wZG93bi4gKi9cbiAgcHJpdmF0ZSBvbkNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBwdWJsaWMga2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQgPSB7fSBhcyBLZXlib2FyZEV2ZW50XG4gIHByaXZhdGUgX29wdGlvbnM6IE9wdGlvbkJhc2U8VD5bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBkcm9wZG93blV0aWxzOiBEcm9wZG93blV0aWxzPEssIFYsIFQ+LFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucmVxdWlyZWQ/LmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gY2hhbmdlcy5yZXF1aXJlZC5jdXJyZW50VmFsdWVcbiAgICAgIC8vIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgY29uc3QgaGFzTnVsbGlzaE9wdGlvbiA9XG4gICAgICAgIHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlbMF0/LmtleSA9PSBudWxsXG4gICAgICAvLyBpZiByZXF1aXJlZCwgcmVtb3ZlIG51bGxpc2ggb3B0aW9uXG4gICAgICBpZiAoaXNSZXF1aXJlZCAmJiBoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5zbGljZSgxKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIC8vIGlmIG5vdCByZXF1aXJlZCwgYWRkIG51bGxpc2ggb3B0aW9uXG4gICAgICBpZiAoIWlzUmVxdWlyZWQgJiYgIWhhc051bGxpc2hPcHRpb24gJiYgdGhpcy5hbGxvd0NvbnRyb2xOdWxsaXNoT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBvdmVycmlkZSB0byBjb3JyZWN0bHkgc2V0IHN0YXRlIGZyb20gZm9ybSB2YWx1ZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKHRoaXMuX29wdGlvbnMsIGZhbHNlKVxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gdmFsdWUpXG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEVWRU5UU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvblNlbGVjdENoYW5nZShvcHRpb246IFQpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKG9wdGlvbilcbiAgICB0aGlzLnNldEV4cGFuZGVkKGZhbHNlKVxuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIEBpbnRlcm5hbFxuICAvLyAgKiBFbnRlciB0b2dnbGVzIHRoZSBkcm9wZG93biwgaG9tZSwgZW5kLCBhbmQsIGFycm93cyBjaGFuZ2UgdGhlIGluZGV4LlxuICAvLyAgKiBAcGFyYW0gZXZlbnQgZmlyZWQgY29udGFpbmluZyB3aGljaCBrZXkgd2FzIHJlbGVhc2VkLlxuICAvLyAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5rZXlFdmVudCA9IGV2ZW50XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkcm9wZG93biBvbiBjbGljayBvdXRzaWRlLlxuICAgKi9cbiAgc3Vic2NyaWJlVG9PdXRzaWRlQ2xpY2tFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkICYmXG4gICAgICAgICAgIXRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKClcbiAgICAgICAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBIRUxQRVJTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogU2V0IHRoZSBkcm9wZG93biB2YWx1ZSB0byBnaXZlbiBvcHRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgZHJvcGRvd24gb3B0aW9uIHRvIHNlbGVjdC5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlTW9kZWwodmFsdWU6IFQpIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlLmtleSlcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICB0b2dnbGVEcm9wZG93bigpIHtcbiAgICB0aGlzLnNldEV4cGFuZGVkKCF0aGlzLmV4cGFuZGVkKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duIG9wdGlvbnMuIElmIHRydWUgdGhlIG9wdGlvbnMgYXJlIHNob3duIGJlbG93IHRoZSBmaWVsZC5cbiAgICogQWN0aXZhdGUgb24gY2xpY2sgZXZlbnQgdG8gYmUgYWJsZSB0byBjbG9zZSBkcm9wZG93biBvbiBjbGljayBvdXRzaWRlLlxuICAgKiBAcGFyYW0gc3RhdGUgdGhlIGV4cGFuZGVkIHN0YXRlIHdoaWNoIHRvIHNldC5cbiAgICovXG4gIHNldEV4cGFuZGVkKHN0YXRlID0gdHJ1ZSkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSBzdGF0ZVxuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKVxuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB0aGlzLnN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKVxuICAgIGlmICghdGhpcy5leHBhbmRlZCkgdGhpcy5vblRvdWNoZWQoKVxuICB9XG5cbiAgLyogVFlQRSBDQVNUUyAqL1xuXG4gIC8qKlxuICAgKiBUeXBlY2FzdCBhbnl0aGluZyB0byBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdE9wdGlvbihvcHRpb246IGFueSk6IFQge1xuICAgIHJldHVybiBvcHRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlY2FzdCBhbnl0aGluZyB0byBhbiB7QGxpbmsgT3B0aW9uR3JvdXB9LlxuICAgKiBAcGFyYW0gZ3JvdXAgdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RHcm91cChncm91cDogYW55KTogT3B0aW9uR3JvdXA8VD4ge1xuICAgIHJldHVybiBncm91cFxuICB9XG5cbiAgLyogVFlQRSBDSEVDS1MgKi9cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IGlzIGFuIHtAbGluayBPcHRpb259LlxuICAgKiBAcGFyYW0gb3B0aW9uIHRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqL1xuICBpc09wdGlvbihvcHRpb246IE9wdGlvbkJhc2U8VD4pOiBvcHRpb24gaXMgT3B0aW9uR3JvdXA8VD4ge1xuICAgIHJldHVybiAhKCdvcHRpb25zJyBpbiBvcHRpb24pXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgPGxhYmVsXG4gICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsIGhpZGUtaWYtZW1wdHlcIlxuICAgIFthdHRyLmZvcl09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgKm5nSWY9XCJsYWJlbENvbnRlbnRUcGwgfHwgbGFiZWxcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJvcHRpb25hbCA9PT0gdHJ1ZSB8fCAocmVxdWlyZWQgIT09IHRydWUgJiYgb3B0aW9uYWwgIT09IGZhbHNlKVwiXG4gICAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgICh7eyB0KCdsYWJlbC5vcHRpb25hbCcpIH19KVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2xhYmVsPlxuXG4gIDwhLS0gREVTQ1JJUFRJT04gLS0+XG4gIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gIDwhLS0gTE9DS0VEIElOUFVUIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsICcgKyBpZCArICctaW5wdXQnXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFzdGF0ZVwiIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gICAgPGRpdiBjbGFzcz1cImdkcy1pbnB1dC13cmFwcGVyXCI+XG4gICAgICA8ZGl2ICNpbnB1dCBbaWRdPVwiaWQgKyAnLWlucHV0J1wiIGNsYXNzPVwiZHJvcGRvd25cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtpZF09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtZHJvcGRvd25fX2xhYmVsIHRvZ2dsZVwiXG4gICAgICAgICAgW2NsYXNzLm5nZ3YtZmllbGQtLWVycm9yXT1cImludmFsaWRcIlxuICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgYXJpYS1vd25zPVwibGlzdGJveFwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsaXN0Ym94XCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy10b2dnbGUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICBhcmlhTGFiZWwgPyBudWxsIDogaWQgKyAnLWxhYmVsICcgKyBpZCArICctdG9nZ2xlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmdndi1kcm9wZG93bi1saXN0XG4gICAgICAgICAgI2Ryb3BEb3duTGlzdFxuICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgIFtzY3JvbGxPZmZzZXRdPVwic2Nyb2xsT2Zmc2V0XCJcbiAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgW29wdGlvbkNvbnRlbnRUcGxdPVwib3B0aW9uQ29udGVudFRwbFwiXG4gICAgICAgICAgW2dyb3VwTGFiZWxUcGxdPVwiZ3JvdXBMYWJlbFRwbFwiXG4gICAgICAgICAgW3RleHRUb0hpZ2hsaWdodF09XCJ0ZXh0VG9IaWdobGlnaHRcIlxuICAgICAgICAgIChjbG9zZWQpPVwic2V0RXhwYW5kZWQoZmFsc2UpXCJcbiAgICAgICAgICAoc2VsZWN0ZWRWYWx1ZUNoYW5nZWQpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZ2d2LWRyb3Bkb3duLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gRVJST1JTIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImdkcy1mb3JtLWl0ZW1fX2Zvb3RlciBlcnJvci13cmFwcGVyXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1lcnJvclwiXG4gICAgICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgICAgICpuZ0lmPVwiaW52YWxpZCAmJiAoZXJyb3IgfHwgbmdDb250cm9sPy5pbnZhbGlkKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgICAgIDxnZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvblxuICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgICAgICBbc29saWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICpuZ2dDb3JlRWxlbWVudFxuICAgICAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1lcnJvcmxhYmVsJ1wiXG4gICAgICAgICAgICA+e3sgZXJyb3IgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlcnJvcnNSZWY+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1lcnJvcmxhYmVsJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIENISUxEUkVOIC0tPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RlZENvbnRlbnRUcGwgbGV0LXN0YXRlPlxuICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9lcWVxZXEgLS0+XG4gICAge3sgc3RhdGU/LmtleSAhPSBudWxsICYmIHN0YXRlPy5sYWJlbCA/IHQoc3RhdGUubGFiZWwpIDogcGxhY2Vob2xkZXIgfX1cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFFOUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDekgsT0FBTyxFQUNMLGFBQWEsR0FJZCxNQUFNLDRDQUE0QyxDQUFBOzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUtYLFNBQVEscUNBQXFDO0lBc0I3Qyx1RkFBdUY7SUFDdkYsSUFBYSxPQUFPLENBQUMsS0FBc0I7UUFDekMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNyQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUE7UUFDdkMsbUVBQW1FO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25FLENBQUM7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQzVCLE9BQU07UUFDUixDQUFDO1FBRUQseUhBQXlIO1FBQ3pILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQ3RDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO2FBQzVCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTTtRQUU5RCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQTJCRCxnQ0FBZ0M7SUFDaEMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUE7SUFDM0QsQ0FBQztJQVlELFlBQzZCLFNBQW9CLEVBR3JDLGNBQThCLEVBQzlCLEdBQXNCLEVBQ3RCLGFBQXFDO1FBRS9DLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBUFYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUdyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBeEZqRCxvRkFBb0Y7UUFDM0MsVUFBSyxHQUM1QyxVQUFVLENBQUE7UUF3Q1osdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBRTFCOzs7V0FHRztRQUNNLDhCQUF5QixHQUFHLElBQUksQ0FBQTtRQUt6Qzs7Ozs7V0FLRztRQUNNLHlCQUFvQixHQUFHLElBQUksQ0FBQTtRQUVwQzs7V0FFRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQU90RCwwREFBMEQ7UUFDbkQsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUN2QiwwREFBMEQ7UUFDbkQsZ0JBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUloQixhQUFRLEdBQWtCLEVBQW1CLENBQUE7UUFDNUMsYUFBUSxHQUFvQixFQUFFLENBQUE7SUFXdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFBO1lBQ2hELHdCQUF3QjtZQUN4QixNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUE7WUFDekUscUNBQXFDO1lBQ3JDLElBQUksVUFBVSxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN0QyxPQUFNO1lBQ1IsQ0FBQztZQUNELHNDQUFzQztZQUN0QyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUNqRSxPQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDdkUsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsU0FBUztJQUNULCtFQUErRTtJQUUvRSxnQkFBZ0I7SUFDaEIsY0FBYyxDQUFDLE1BQVM7UUFDdEIsSUFBSSxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxNQUFNO0lBQ04sZUFBZTtJQUNmLDBFQUEwRTtJQUMxRSwyREFBMkQ7SUFDM0QsTUFBTTtJQUVOLE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCw0QkFBNEI7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hFLElBQUksRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUNyQixJQUNFLElBQUksQ0FBQyxRQUFRO29CQUNiLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDcEQsQ0FBQztvQkFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7b0JBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQTtnQkFDekMsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsK0VBQStFO0lBQy9FLFVBQVU7SUFDViwrRUFBK0U7SUFFL0U7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLEtBQVE7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUE7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0I7SUFFaEI7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLE1BQVc7UUFDcEIsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQVU7UUFDbEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsaUJBQWlCO0lBRWpCOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxNQUFxQjtRQUM1QixPQUFPLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLENBQUE7SUFDL0IsQ0FBQzsrR0E1T1UscUJBQXFCLHVFQXdHdEIsZUFBZTttR0F4R2QscUJBQXFCLGdqQkFTSyxXQUFXLHdHQUdiLFdBQVcseUdBR1AsV0FBVyx5RUN4RHBELHltSkFpSkE7OzRGRHhHYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZUFBZTs7MEJBMEd0QixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlO3FHQS9GMkIsa0JBQWtCO3NCQUFyRSxZQUFZO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR0EsZ0JBQWdCO3NCQUFqRSxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR00sYUFBYTtzQkFBbEUsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUtYLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUk3QixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFrQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkEwRVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG4gIE9wdGlvbkdyb3VwLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5cbi8qKlxuICogQSBkcm9wZG93biBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGFuIG9wdGlvbiBmcm9tIGEgbGlzdC5cbiAqIERyb3Bkb3ducyBlbmFibGVzIHVzZXJzIHRvIG1ha2UgYSBxdWljayBzZWxlY3Rpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGZvciBhIHNwZWNpZmljIGVudHJ5LlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1kcm9wZG93blxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duQ29tcG9uZW50PFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgZXh0ZW5kcyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBvcHRpb25zIGFuZCBncm91cHMuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncm91cExhYmVsVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBncm91cExhYmVsVHBsOlxuICAgIHwgVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PlxuICAgIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdkcm9wZG93bidcblxuICAvKiogVGV4dCBzaG93biBiZWZvcmUgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICAvKiogU3BlY2lmaWMgdmFsdWUgZm9yIGFyaWEtbGFiZWwuIElmIG5vdCBwcm92aWRlZCwgbGFiZWwvbGFiZWxUcGwgd2lsbCBiZSB1c2VkLiAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmdcbiAgLyoqIExpc3Qgb2Yge0BsaW5rIE9wdGlvbn0gYW5kIHtAbGluayBPcHRpb25Hcm91cH0gbGlzdGVkIHdoZW4gZHJvcGRvd24gaXMgZXhwYW5kZWQuICovXG4gIEBJbnB1dCgpIHNldCBvcHRpb25zKHZhbHVlOiBPcHRpb25CYXNlPFQ+W10pIHtcbiAgICAvLyB1cGRhdGUgb3B0aW9uc1xuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZVxuICAgIC8vIGFscmVhZHkgaGFzIGEgbnVsbC91bmRlZmluZWQga2V5XG4gICAgY29uc3QgbnVsbGlzaE9wdGlvbiA9IHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgLmZsYXR0ZW5PcHRpb25zKHZhbHVlLCBmYWxzZSlcbiAgICAgIC5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT0gbnVsbClcbiAgICAvLyBpZiB0aGUgZHJvcGRvd24gaXMgb3B0aW9uYWwsIGFkZCBhIG51bGwgdmFsdWUgdG8gZGVzZWxlY3Qgb3B0aW9uXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkICYmICFudWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQodGhpcy5fb3B0aW9ucylcbiAgICB9XG5cbiAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZSBhbmQgZW1pdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSBvcHRpb25cbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxICYmIHRoaXMucmVxdWlyZWQgJiYgdGhpcy5zZWxlY3RPblNpbmdsZU9wdGlvbikge1xuICAgICAgY29uc3Qgb25seU9wdGlvbiA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpWzBdXG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsKG9ubHlPcHRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBkb24ndCB1cGRhdGUgbG9jYWwgc3RhdGUgaWYgd2Ugc2hvdWxkbid0IGNvbnRyb2wgbnVsbGlzaCB2YWx1ZSBhbmQgd2UgY2FudCBmaW5kIHRoZSBzZWxlY3RlZCB2YWx1ZSBhbW9uZ3N0IHRoZSBvcHRpb25zXG4gICAgY29uc3QgbWF0Y2hpbmdPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IHRoaXMubmdDb250cm9sPy52YWx1ZSlcbiAgICBpZiAoIXRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiAmJiAhbWF0Y2hpbmdPcHRpb24pIHJldHVyblxuXG4gICAgLy8gVXBkYXRlIGxvY2FsIHN0YXRlXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMubmdDb250cm9sPy52YWx1ZSlcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IE9wdGlvbkJhc2U8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnNcbiAgfVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgLyoqXG4gICAqIEFsbG93IHRoaXMgY29tcG9uZW50IHRvIGFkZC8gcmVtb3ZlIG51bGxpc2ggb3B0aW9ucyBiYXNlZCBvbiB3ZXRoZXIgdGhlIGNvbnRyb2wgaXMgcmVxdWlyZWQgb3Igbm90XG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd0NvbnRyb2xOdWxsaXNoT3B0aW9uID0gdHJ1ZVxuXG4gIC8qKiBUZXh0IHRvIGhpZ2hsaWdodCBpbiBvcHRpb24gKi9cbiAgQElucHV0KCkgdGV4dFRvSGlnaGxpZ2h0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIElmIG9ubHkgb25lIG9wdGlvbiBleGlzdHMgaW4gb3B0aW9uc1tdLCBkZWZhdWx0IGlzIHRvIHNlbGVjdCBpdC5cbiAgICogVGhpcyBpbnB1dCBjYW4gYmUgdXNlZCB0byBhbHRlciB0aGF0IGJlaGF2aW91ciBzbyBpdCBkb2Vzbid0IGF1dG9tYXRpY2FsbHlcbiAgICogc2VsZWN0IGEgdmFsdWUgaWYgaXQncyB0aGUgb25seSBvbmUuXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RPblNpbmdsZU9wdGlvbiA9IHRydWVcblxuICAvKipcbiAgICogRW1pdHMgY2hhbmdlcyBvZiB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duXG4gICAqL1xuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICAvKiogQGludGVybmFsIG51bGxpc2ggb3B0aW9uLiAqL1xuICBnZXQgZGVmYXVsdE51bGxpc2hPcHRpb24oKTogT3B0aW9uQmFzZTxhbnk+IHtcbiAgICByZXR1cm4geyBrZXk6IG51bGwsIGxhYmVsOiB0aGlzLnBsYWNlaG9sZGVyID8/ICdcXHUwMEEwJyB9XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnQgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duIG9wdGlvbnMuICovXG4gIHB1YmxpYyBleHBhbmRlZCA9IGZhbHNlXG4gIC8qKiBUaGUgY3VycmVudCBvcHRpb24gc2VsZWN0ZWQgYmFzZWQgb24gbnVtZXJpYyBpbmRleC4gKi9cbiAgcHVibGljIGFjdGl2ZUluZGV4ID0gLTFcbiAgLyoqIFN1YnNjcmliZSBpZiBkcm9wZG93biBleHBhbmRlZCB0byBsaXN0ZW4gdG8gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBkcm9wZG93bi4gKi9cbiAgcHJpdmF0ZSBvbkNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBwdWJsaWMga2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQgPSB7fSBhcyBLZXlib2FyZEV2ZW50XG4gIHByaXZhdGUgX29wdGlvbnM6IE9wdGlvbkJhc2U8VD5bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBkcm9wZG93blV0aWxzOiBEcm9wZG93blV0aWxzPEssIFYsIFQ+LFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucmVxdWlyZWQ/LmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gY2hhbmdlcy5yZXF1aXJlZC5jdXJyZW50VmFsdWVcbiAgICAgIC8vIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgY29uc3QgaGFzTnVsbGlzaE9wdGlvbiA9XG4gICAgICAgIHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlbMF0/LmtleSA9PSBudWxsXG4gICAgICAvLyBpZiByZXF1aXJlZCwgcmVtb3ZlIG51bGxpc2ggb3B0aW9uXG4gICAgICBpZiAoaXNSZXF1aXJlZCAmJiBoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5zbGljZSgxKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIC8vIGlmIG5vdCByZXF1aXJlZCwgYWRkIG51bGxpc2ggb3B0aW9uXG4gICAgICBpZiAoIWlzUmVxdWlyZWQgJiYgIWhhc051bGxpc2hPcHRpb24gJiYgdGhpcy5hbGxvd0NvbnRyb2xOdWxsaXNoT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBvdmVycmlkZSB0byBjb3JyZWN0bHkgc2V0IHN0YXRlIGZyb20gZm9ybSB2YWx1ZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKHRoaXMuX29wdGlvbnMsIGZhbHNlKVxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gdmFsdWUpXG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEVWRU5UU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvblNlbGVjdENoYW5nZShvcHRpb246IFQpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKG9wdGlvbilcbiAgICB0aGlzLnNldEV4cGFuZGVkKGZhbHNlKVxuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIEBpbnRlcm5hbFxuICAvLyAgKiBFbnRlciB0b2dnbGVzIHRoZSBkcm9wZG93biwgaG9tZSwgZW5kLCBhbmQsIGFycm93cyBjaGFuZ2UgdGhlIGluZGV4LlxuICAvLyAgKiBAcGFyYW0gZXZlbnQgZmlyZWQgY29udGFpbmluZyB3aGljaCBrZXkgd2FzIHJlbGVhc2VkLlxuICAvLyAgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5rZXlFdmVudCA9IGV2ZW50XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkcm9wZG93biBvbiBjbGljayBvdXRzaWRlLlxuICAgKi9cbiAgc3Vic2NyaWJlVG9PdXRzaWRlQ2xpY2tFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdjbGljaycpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmV4cGFuZGVkICYmXG4gICAgICAgICAgIXRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKClcbiAgICAgICAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBIRUxQRVJTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogU2V0IHRoZSBkcm9wZG93biB2YWx1ZSB0byBnaXZlbiBvcHRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgZHJvcGRvd24gb3B0aW9uIHRvIHNlbGVjdC5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlTW9kZWwodmFsdWU6IFQpIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlLmtleSlcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICB0b2dnbGVEcm9wZG93bigpIHtcbiAgICB0aGlzLnNldEV4cGFuZGVkKCF0aGlzLmV4cGFuZGVkKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duIG9wdGlvbnMuIElmIHRydWUgdGhlIG9wdGlvbnMgYXJlIHNob3duIGJlbG93IHRoZSBmaWVsZC5cbiAgICogQWN0aXZhdGUgb24gY2xpY2sgZXZlbnQgdG8gYmUgYWJsZSB0byBjbG9zZSBkcm9wZG93biBvbiBjbGljayBvdXRzaWRlLlxuICAgKiBAcGFyYW0gc3RhdGUgdGhlIGV4cGFuZGVkIHN0YXRlIHdoaWNoIHRvIHNldC5cbiAgICovXG4gIHNldEV4cGFuZGVkKHN0YXRlID0gdHJ1ZSkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSBzdGF0ZVxuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKVxuICAgIGlmICh0aGlzLmV4cGFuZGVkKSB0aGlzLnN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKVxuICAgIGlmICghdGhpcy5leHBhbmRlZCkgdGhpcy5vblRvdWNoZWQoKVxuICB9XG5cbiAgLyogVFlQRSBDQVNUUyAqL1xuXG4gIC8qKlxuICAgKiBUeXBlY2FzdCBhbnl0aGluZyB0byBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdE9wdGlvbihvcHRpb246IGFueSk6IFQge1xuICAgIHJldHVybiBvcHRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlY2FzdCBhbnl0aGluZyB0byBhbiB7QGxpbmsgT3B0aW9uR3JvdXB9LlxuICAgKiBAcGFyYW0gZ3JvdXAgdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RHcm91cChncm91cDogYW55KTogT3B0aW9uR3JvdXA8VD4ge1xuICAgIHJldHVybiBncm91cFxuICB9XG5cbiAgLyogVFlQRSBDSEVDS1MgKi9cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IGlzIGFuIHtAbGluayBPcHRpb259LlxuICAgKiBAcGFyYW0gb3B0aW9uIHRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqL1xuICBpc09wdGlvbihvcHRpb246IE9wdGlvbkJhc2U8VD4pOiBvcHRpb24gaXMgT3B0aW9uR3JvdXA8VD4ge1xuICAgIHJldHVybiAhKCdvcHRpb25zJyBpbiBvcHRpb24pXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgPGxhYmVsXG4gICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsIGhpZGUtaWYtZW1wdHlcIlxuICAgIFthdHRyLmZvcl09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgKm5nSWY9XCJsYWJlbENvbnRlbnRUcGwgfHwgbGFiZWxcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJvcHRpb25hbCA9PT0gdHJ1ZSB8fCAocmVxdWlyZWQgIT09IHRydWUgJiYgb3B0aW9uYWwgIT09IGZhbHNlKVwiXG4gICAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgICh7eyB0KCdsYWJlbC5vcHRpb25hbCcpIH19KVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2xhYmVsPlxuXG4gIDwhLS0gREVTQ1JJUFRJT04gLS0+XG4gIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gIDwhLS0gTE9DS0VEIElOUFVUIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBsb2NrZWRUcGwgfHwgZGVmYXVsdExvY2tlZFRwbDtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN0YXRlIH1cbiAgICAgIFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9ja2VkVHBsPlxuICAgICAgPGRpdlxuICAgICAgICBbaWRdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIudmFsdWVdPVwic3RhdGVcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsICcgKyBpZCArICctaW5wdXQnXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhc3RhdGVcIiBjbGFzcz1cInVuc2V0LXN0YXRlXCI+LTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN0YXRlIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJTlBVVCAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2NrZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ2RzLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgI2lucHV0IFtpZF09XCJpZCArICctaW5wdXQnXCIgY2xhc3M9XCJkcm9wZG93blwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgW2lkXT1cImlkICsgJy10b2dnbGUnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwibmdndi1maWVsZC1kcm9wZG93bl9fbGFiZWwgdG9nZ2xlXCJcbiAgICAgICAgICBbY2xhc3Mubmdndi1maWVsZC0tZXJyb3JdPVwiaW52YWxpZFwiXG4gICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgICBhcmlhLW93bnM9XCJsaXN0Ym94XCJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgICAgYXJpYS1jb250cm9scz1cImxpc3Rib3hcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLXRvZ2dsZSdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgIGFyaWFMYWJlbCA/IG51bGwgOiBpZCArICctbGFiZWwgJyArIGlkICsgJy10b2dnbGUnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFRwbCB8fCBkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZ2d2LWRyb3Bkb3duLWxpc3RcbiAgICAgICAgICAjZHJvcERvd25MaXN0XG4gICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgICAgW3Njcm9sbE9mZnNldF09XCJzY3JvbGxPZmZzZXRcIlxuICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgICBbb3B0aW9uQ29udGVudFRwbF09XCJvcHRpb25Db250ZW50VHBsXCJcbiAgICAgICAgICBbZ3JvdXBMYWJlbFRwbF09XCJncm91cExhYmVsVHBsXCJcbiAgICAgICAgICBbdGV4dFRvSGlnaGxpZ2h0XT1cInRleHRUb0hpZ2hsaWdodFwiXG4gICAgICAgICAgKGNsb3NlZCk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICAgIChzZWxlY3RlZFZhbHVlQ2hhbmdlZCk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nZ3YtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBFUlJPUlMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZvcm0taW5mbyBmb3JtLWluZm8tLWVycm9yXCJcbiAgICAgICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICAgIFtzb2xpZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgICAgICA+PC9nZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICAgID57eyBlcnJvciB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdlcnJvci5maWVsZCcgKyBlcnJvcj8uY29kZSwgZXJyb3I/LnBhcmFtcykgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQ0hJTERSRU4gLS0+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbCBsZXQtc3RhdGU+XG4gICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cbiAgICB7eyBzdGF0ZT8ua2V5ICE9IG51bGwgJiYgc3RhdGU/LmxhYmVsID8gdChzdGF0ZS5sYWJlbCkgOiBwbGFjZWhvbGRlciB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -183,11 +183,11 @@ export class NggvInputComponent extends NggvBaseControlValueAccessorComponent {
183
183
  this.inputChange$.next(this.state);
184
184
  }
185
185
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvInputComponent, selector: "nggv-input", inputs: { size: "size", thook: "thook", type: "type", placeholder: "placeholder", autocomplete: "autocomplete", readonly: "readonly", email: "email", min: "min", max: "max", step: "step", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", showCharacterCountdown: "showCharacterCountdown", pattern: "pattern", debounceTime: "debounceTime", inputMask: "inputMask" }, outputs: { nggvInput: "nggvInput" }, host: { properties: { "class": "this.size", "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div\n class=\"form-info description hide-if-empty\"\n *ngIf=\"description && descriptionIsVisible\"\n>\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n title=\"\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n title=\"\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686;display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host *{box-sizing:border-box}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info.form-info--countdown{font-weight:400}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%;line-height:18px;font-size:1rem;font-family:inherit}:host .gds-input-wrapper{position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s;border:1px solid #868686;border-radius:4px;outline:none;box-sizing:border-box;min-height:2.75rem;line-height:1.5;font-size:1rem;font-family:inherit;display:flex;flex-direction:row}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host .gds-input-wrapper.nggv-field--error{border-bottom:.125rem solid #9f000a!important;height:100%}:host .gds-input-wrapper *,:host .gds-input-wrapper *:before,:host .gds-input-wrapper *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group-prefix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-right-radius:0!important;border-bottom-right-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-prefix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-prefix{min-width:initial}}:host .gds-input-wrapper .input-group-prefix:empty{display:none}:host .gds-input-wrapper .input-group-suffix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-left-radius:0!important;border-bottom-left-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-suffix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-suffix{min-width:initial}}:host .gds-input-wrapper .input-group-suffix:empty{display:none}:host .gds-input-wrapper .input-group{width:100%}:host .gds-input-wrapper .input-group input{outline:none;min-height:2.5rem;height:2.625rem;line-height:1.5;font-size:1rem;font-family:inherit;border:none;min-height:2.375rem;width:100%}:host .gds-input-wrapper .input-group input *,:host .gds-input-wrapper .input-group input *:before,:host .gds-input-wrapper .input-group input *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group input:hover{border-color:#41b0ee}:host .gds-input-wrapper .input-group input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-input-wrapper .input-group input:active{border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]{background-color:#f8f8f8;border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]::placeholder{color:#cecece}:host .gds-input-wrapper .input-group input:not(:focus){border-right:none;padding-right:0}:host .gds-input-wrapper .input-group input:focus{padding-right:0}:host .gds-input-wrapper:has(.input-group-prefix:not(:empty)) .input-group input{border-bottom-left-radius:0;border-top-left-radius:0}:host .gds-input-wrapper:has(.input-group-suffix:not(:empty)) .input-group input{border-bottom-right-radius:0;border-top-right-radius:0}:host.small label{font-size:.875rem}:host.small label+.form-info{margin-bottom:.25rem}:host.small label+.gds-input-wrapper{margin-top:.25rem}:host.small .gds-input-wrapper{min-height:2rem}:host.small .gds-input-wrapper .input-group input{padding:.38rem .5rem;line-height:1rem;height:2rem;min-height:2rem;font-size:.875rem}:host.small .gds-input-wrapper .input-group-suffix,:host.small .gds-input-wrapper .input-group-prefix{height:2rem;min-height:2rem;min-width:initial}:host.small .gds-form-item__footer:not(:empty){margin-top:.25rem}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .gds-field-label--optional{font-weight:400}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggvInputMaskDirective, selector: "[nggvInputMask]", inputs: ["nggvInputMask"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i6.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.InputMaskFormatPipe, name: "nggvInputMaskFormat" }] }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvInputComponent, selector: "nggv-input", inputs: { size: "size", thook: "thook", type: "type", placeholder: "placeholder", autocomplete: "autocomplete", readonly: "readonly", email: "email", min: "min", max: "max", step: "step", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", showCharacterCountdown: "showCharacterCountdown", pattern: "pattern", debounceTime: "debounceTime", inputMask: "inputMask" }, outputs: { nggvInput: "nggvInput" }, host: { properties: { "class": "this.size", "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div\n class=\"form-info description hide-if-empty\"\n *ngIf=\"description && descriptionIsVisible\"\n>\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n title=\"\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n title=\"\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686;display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host *{box-sizing:border-box}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info.form-info--countdown{font-weight:400}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%;line-height:18px;font-size:1rem;font-family:inherit}:host .gds-input-wrapper{position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s;border:1px solid #868686;border-radius:4px;outline:none;box-sizing:border-box;min-height:2.75rem;line-height:1.5;font-size:1rem;font-family:inherit;display:flex;flex-direction:row}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host .gds-input-wrapper.nggv-field--error{border-bottom:.125rem solid #9f000a!important;height:100%}:host .gds-input-wrapper *,:host .gds-input-wrapper *:before,:host .gds-input-wrapper *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group-prefix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-right-radius:0!important;border-bottom-right-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-prefix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-prefix{min-width:initial}}:host .gds-input-wrapper .input-group-prefix:empty{display:none}:host .gds-input-wrapper .input-group-suffix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-left-radius:0!important;border-bottom-left-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-suffix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-suffix{min-width:initial}}:host .gds-input-wrapper .input-group-suffix:empty{display:none}:host .gds-input-wrapper .input-group{width:100%}:host .gds-input-wrapper .input-group input{outline:none;min-height:2.5rem;height:2.625rem;line-height:1.5;font-size:1rem;font-family:inherit;border:none;min-height:2.375rem;width:100%}:host .gds-input-wrapper .input-group input *,:host .gds-input-wrapper .input-group input *:before,:host .gds-input-wrapper .input-group input *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group input:hover{border-color:#41b0ee}:host .gds-input-wrapper .input-group input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-input-wrapper .input-group input:active{border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]{background-color:#f8f8f8;border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]::placeholder{color:#cecece}:host .gds-input-wrapper .input-group input:not(:focus){border-right:none;padding-right:0}:host .gds-input-wrapper .input-group input:focus{padding-right:0}:host .gds-input-wrapper:has(.input-group-prefix:not(:empty)) .input-group input{border-bottom-left-radius:0;border-top-left-radius:0}:host .gds-input-wrapper:has(.input-group-suffix:not(:empty)) .input-group input{border-bottom-right-radius:0;border-top-right-radius:0}:host.small label{font-size:.875rem}:host.small label+.form-info{margin-bottom:.25rem}:host.small label+.gds-input-wrapper{margin-top:.25rem}:host.small .gds-input-wrapper{min-height:2rem}:host.small .gds-input-wrapper .input-group input{padding:.38rem .5rem;line-height:1rem;height:2rem;min-height:2rem;font-size:.875rem}:host.small .gds-input-wrapper .input-group-suffix,:host.small .gds-input-wrapper .input-group-prefix{height:2rem;min-height:2rem;min-width:initial}:host.small .gds-form-item__footer:not(:empty){margin-top:.25rem}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .gds-field-label--optional{font-weight:400}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggvInputMaskDirective, selector: "[nggvInputMask]", inputs: ["nggvInputMask"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i6.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.InputMaskFormatPipe, name: "nggvInputMaskFormat" }] }); }
187
187
  }
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvInputComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'nggv-input', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div\n class=\"form-info description hide-if-empty\"\n *ngIf=\"description && descriptionIsVisible\"\n>\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n title=\"\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n title=\"\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686;display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host *{box-sizing:border-box}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info.form-info--countdown{font-weight:400}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%;line-height:18px;font-size:1rem;font-family:inherit}:host .gds-input-wrapper{position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s;border:1px solid #868686;border-radius:4px;outline:none;box-sizing:border-box;min-height:2.75rem;line-height:1.5;font-size:1rem;font-family:inherit;display:flex;flex-direction:row}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host .gds-input-wrapper.nggv-field--error{border-bottom:.125rem solid #9f000a!important;height:100%}:host .gds-input-wrapper *,:host .gds-input-wrapper *:before,:host .gds-input-wrapper *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group-prefix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-right-radius:0!important;border-bottom-right-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-prefix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-prefix{min-width:initial}}:host .gds-input-wrapper .input-group-prefix:empty{display:none}:host .gds-input-wrapper .input-group-suffix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-left-radius:0!important;border-bottom-left-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-suffix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-suffix{min-width:initial}}:host .gds-input-wrapper .input-group-suffix:empty{display:none}:host .gds-input-wrapper .input-group{width:100%}:host .gds-input-wrapper .input-group input{outline:none;min-height:2.5rem;height:2.625rem;line-height:1.5;font-size:1rem;font-family:inherit;border:none;min-height:2.375rem;width:100%}:host .gds-input-wrapper .input-group input *,:host .gds-input-wrapper .input-group input *:before,:host .gds-input-wrapper .input-group input *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group input:hover{border-color:#41b0ee}:host .gds-input-wrapper .input-group input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-input-wrapper .input-group input:active{border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]{background-color:#f8f8f8;border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]::placeholder{color:#cecece}:host .gds-input-wrapper .input-group input:not(:focus){border-right:none;padding-right:0}:host .gds-input-wrapper .input-group input:focus{padding-right:0}:host .gds-input-wrapper:has(.input-group-prefix:not(:empty)) .input-group input{border-bottom-left-radius:0;border-top-left-radius:0}:host .gds-input-wrapper:has(.input-group-suffix:not(:empty)) .input-group input{border-bottom-right-radius:0;border-top-right-radius:0}:host.small label{font-size:.875rem}:host.small label+.form-info{margin-bottom:.25rem}:host.small label+.gds-input-wrapper{margin-top:.25rem}:host.small .gds-input-wrapper{min-height:2rem}:host.small .gds-input-wrapper .input-group input{padding:.38rem .5rem;line-height:1rem;height:2rem;min-height:2rem;font-size:.875rem}:host.small .gds-input-wrapper .input-group-suffix,:host.small .gds-input-wrapper .input-group-prefix{height:2rem;min-height:2rem;min-width:initial}:host.small .gds-form-item__footer:not(:empty){margin-top:.25rem}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .gds-field-label--optional{font-weight:400}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}\n"] }]
190
+ args: [{ selector: 'nggv-input', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div\n class=\"form-info description hide-if-empty\"\n *ngIf=\"description && descriptionIsVisible\"\n>\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n title=\"\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n title=\"\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686;display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host *{box-sizing:border-box}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info.form-info--countdown{font-weight:400}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%;line-height:18px;font-size:1rem;font-family:inherit}:host .gds-input-wrapper{position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s;border:1px solid #868686;border-radius:4px;outline:none;box-sizing:border-box;min-height:2.75rem;line-height:1.5;font-size:1rem;font-family:inherit;display:flex;flex-direction:row}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host .gds-input-wrapper.nggv-field--error{border-bottom:.125rem solid #9f000a!important;height:100%}:host .gds-input-wrapper *,:host .gds-input-wrapper *:before,:host .gds-input-wrapper *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group-prefix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-right-radius:0!important;border-bottom-right-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-prefix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-prefix{min-width:initial}}:host .gds-input-wrapper .input-group-prefix:empty{display:none}:host .gds-input-wrapper .input-group-suffix{min-height:2.5rem;border:none;border-radius:3px;height:2.625rem;min-width:2.625rem;border-top-left-radius:0!important;border-bottom-left-radius:0!important;display:flex;align-items:center;justify-content:center}:host .gds-input-wrapper .input-group-suffix[disabled]{background-color:#f8f8f8!important;color:#adadad}@media (max-width: 35.98em){:host .gds-input-wrapper .input-group-suffix{min-width:initial}}:host .gds-input-wrapper .input-group-suffix:empty{display:none}:host .gds-input-wrapper .input-group{width:100%}:host .gds-input-wrapper .input-group input{outline:none;min-height:2.5rem;height:2.625rem;line-height:1.5;font-size:1rem;font-family:inherit;border:none;min-height:2.375rem;width:100%}:host .gds-input-wrapper .input-group input *,:host .gds-input-wrapper .input-group input *:before,:host .gds-input-wrapper .input-group input *:after{box-sizing:border-box}:host .gds-input-wrapper .input-group input:hover{border-color:#41b0ee}:host .gds-input-wrapper .input-group input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .gds-input-wrapper .input-group input:active{border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]{background-color:#f8f8f8;border-color:#cecece}:host .gds-input-wrapper .input-group input[disabled]::placeholder{color:#cecece}:host .gds-input-wrapper .input-group input:not(:focus){border-right:none;padding-right:0}:host .gds-input-wrapper .input-group input:focus{padding-right:0}:host .gds-input-wrapper:has(.input-group-prefix:not(:empty)) .input-group input{border-bottom-left-radius:0;border-top-left-radius:0}:host .gds-input-wrapper:has(.input-group-suffix:not(:empty)) .input-group input{border-bottom-right-radius:0;border-top-right-radius:0}:host.small label{font-size:.875rem}:host.small label+.form-info{margin-bottom:.25rem}:host.small label+.gds-input-wrapper{margin-top:.25rem}:host.small .gds-input-wrapper{min-height:2rem}:host.small .gds-input-wrapper .input-group input{padding:.38rem .5rem;line-height:1rem;height:2rem;min-height:2rem;font-size:.875rem}:host.small .gds-input-wrapper .input-group-suffix,:host.small .gds-input-wrapper .input-group-prefix{height:2rem;min-height:2rem;min-width:initial}:host.small .gds-form-item__footer:not(:empty){margin-top:.25rem}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .gds-field-label--optional{font-weight:400}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}\n"] }]
191
191
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
192
192
  type: Self
193
193
  }, {
@@ -245,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
245
245
  }], nggvInput: [{
246
246
  type: Output
247
247
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJeEQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7Ozs7Ozs7O0FBRXpIOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxrQkFDWCxTQUFRLHFDQUFxQztJQWdEN0M7O09BRUc7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO0lBQzFCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO0lBQzFCLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUNELHNE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QyxXQUFXO3VCQUFDLE9BQU87O3NCQUFHLEtBQUs7Z0JBSWEsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBSzdCLElBQUk7c0JBQVosS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsR0FBRztzQkFBWCxLQUFLO2dCQUlHLEdBQUc7c0JBQVgsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFPTyxTQUFTO3NCQUFyQixLQUFLO2dCQU9PLFNBQVM7c0JBQXJCLEtBQUs7Z0JBV08sU0FBUztzQkFBckIsS0FBSztnQkFVTyxzQkFBc0I7c0JBQWxDLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFpQkksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB0eXBlIHsgSW5wdXRtYXNrT3B0aW9ucyB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQtbWFzaydcblxuaW1wb3J0IHsgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yJ1xuXG4vKipcbiAqIElucHV0IGZpZWxkcyBhbGxvdyB1c2VycyB0byBhZGQgYW5kIGVkaXQgdGV4dC5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtaW5wdXRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIE5nZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogQWRkaW5nIC5nZHMtZm9ybS1pdGVtIGFzIGEgY2xhc3MgdG8gaG9zdCBlbGVtZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnZ2RzLWZvcm0taXRlbSdcbiAgLyoqXG4gICAqIEFkZGluZyAuZ2RzLWZvcm0taXRlbS0tc21hbGwgY2xhc3MgYmFzZWQgb24gc2l6ZSBpbnB1dCBmb3Igc3R5bGluZ1xuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbGFyZ2UnID0gJ2xhcmdlJ1xuICAvKipcbiAgICogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdpbnB1dCdcbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5wdXQgZmllbGQuIFNob3VsZCBhdm9pZCB0eXBlcyB0aGF0IG1vZGlmeSBmaWVsZCB0b28gbXVjaCBzdWNoIGFzIHJhbmdlLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0J1xuICAvKipcbiAgICogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJvblwiLCBoaW50IGZvciBmb3JtIGF1dG9maWxsIGZlYXR1cmUuXG4gICAqL1xuICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnb24nXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHZhbHVlIHdpbGwgbm90IGJlIGVkaXRhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZVxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUsIGVuYWJsZXMgdGhlIEFuZ3VsYXIgdGVtcGxhdGUtZHJpdmVuIGVtYWlsIHZhbGlkYXRvci5cbiAgICovXG4gIEBJbnB1dCgpIGVtYWlsID0gZmFsc2VcbiAgLyoqXG4gICAqIE1pbmltdW0gdmFsdWUgcmVxdWlyZWQgZm9yIG51bWVyaWMgaW5wdXQgdHlwZXMuXG4gICAqL1xuICBASW5wdXQoKSBtaW4gPSAwXG4gIC8qKlxuICAgKiBNYXhpbXVtIHZhbHVlIHJlcXVpcmVkIGZvciBudW1lcmljIGlucHV0IHR5cGVzLlxuICAgKi9cbiAgQElucHV0KCkgbWF4ID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgLyoqXG4gICAqIEluY3JlbWVudGFsIHZhbHVlcyB0aGF0IGFyZSB2YWxpZCBmb3IgbnVtZXJpYyBpbnB1dCB0eXBlcy5cbiAgICovXG4gIEBJbnB1dCgpIHN0ZXAgPSAxXG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1pbkxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21pbmxlbmd0aCA9IGxlbmd0aFxuICB9XG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBtaW5sZW5ndGggdHJpZ2dlcnMgYW5ndWxhci10ZW1wbGF0ZS12YWxpZGF0aW9uLiBVc2UgQElucHV0KCkgbWluTGVuZ3RoIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWlubGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWlubGVuZ3RoID0gbGVuZ3RoXG4gIH1cbiAgZ2V0IG1pbmxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5sZW5ndGhcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnN0YXRlKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zdGF0ZSlcbiAgfVxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogV2V0aGVyIHRvIHNob3cgbGFiZWwgdGhhdCB0ZWxscyBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZSBzdGlsbCBsZWZ0IHRvIGJlIGVudGVyZWQuIFdpbGwgb25seSBiZSBzZXQgaWYgbWF4TGVuZ3RoIGlzIGFsc28gc2V0ICovXG4gIHByaXZhdGUgX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBzaG93Q2hhcmFjdGVyQ291bnRkb3duKG9wdGlvbjogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSBvcHRpb25cbiAgfVxuICBnZXQgc2hvd0NoYXJhY3RlckNvdW50ZG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0NoYXJhY3RlckNvdW50RG93biAmJiB0aGlzLmhhc01heExlbmd0aFxuICB9XG5cbiAgLyoqIFBhdHRlcm4gdGhlIHZhbHVlIG11c3QgbWF0Y2ggdG8gYmUgdmFsaWQuICovXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnJ1xuICAvKiogQW1vdW50IG9mIHRpbWUgdG8gd2FpdCB1bnRpbCBlbWl0dGluZyAobmdndklOcHV0KSBldmVudCAqL1xuICBASW5wdXQoKSBkZWJvdW5jZVRpbWUgPSA1MDBcblxuICAvKiogU2V0dGluZ3MgZm9yIGlucHV0IG1hc2sgaWYgcmVxdWVzdGVkICovXG4gIHByaXZhdGUgX2lucHV0TWFzayE6IElucHV0bWFza09wdGlvbnM8YW55PlxuICBASW5wdXQoKSBzZXQgaW5wdXRNYXNrKG5ld0lucHV0TWFzazogSW5wdXRtYXNrT3B0aW9uczxhbnk+KSB7XG4gICAgLy8gSGlkZSBpbnB1dCBmaWVsZFxuICAgIHRoaXMuaGlkZUlucHV0JC5uZXh0KHRydWUpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5faW5wdXRNYXNrID0gbmV3SW5wdXRNYXNrXG5cbiAgICAvLyBTaG93IGlucHV0IGZpZWxkIHRvIHJlbG9hZCBpbnB1dC1tYXNrIHNldHRpbmdzIHVwb24gdXBkYXRlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhpZGVJbnB1dCQubmV4dChmYWxzZSlcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIH0sIDIwMClcbiAgfVxuICBnZXQgaW5wdXRNYXNrKCk6IElucHV0bWFza09wdGlvbnM8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0TWFza1xuICB9XG5cbiAgLyoqIEVtaXRzIGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBpbm5lciBpbnB1dCBmaWVsZCBjaGFuZ2VzLCBpbmRlcGVuZGFudGx5IG9mIHVwZGF0ZXMgb24gdGhlIGZvcm1jb250cm9sbGVyICovXG4gIEBPdXRwdXQoKSBuZ2d2SW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGdldCBjb250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2wpID8/IHRoaXMuX2Zvcm1Db250cm9sXG4gIH1cbiAgLyoqIFJldHVybnMgaWYgbWF4bGVuZ3RoIGlzIHVzZWQgKi9cbiAgZ2V0IGhhc01heExlbmd0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm1heGxlbmd0aCAmJiB0aGlzLm1heGxlbmd0aCAhPT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgfVxuXG4gIC8qKiBUb2dnbGVyIGZvciBzaG93aW5nIG9yIGhpZGluZyB0aGUgaW5wdXQgZmllbGQgKi9cbiAgaGlkZUlucHV0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcblxuICBwcm90ZWN0ZWQgaW5wdXRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8YW55PigpXG4gIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpXG4gICAgdGhpcy5pbnB1dENoYW5nZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnB1dFZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMubmdndklucHV0LmVtaXQoaW5wdXRWYWx1ZSlcbiAgICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KHRydWUpXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gbWF4TGVuZ3RoIHdpbGwgb25seSB3b3JrIHdpdGggc3RyaW5nIHZhbHVlc1xuICAgIGlmIChcbiAgICAgIHZhbHVlPy5sZW5ndGggJiZcbiAgICAgIHZhbHVlLmxlbmd0aCA+IHRoaXMubWF4bGVuZ3RoICYmXG4gICAgICB0aGlzLmNvbnRyb2wudG91Y2hlZFxuICAgICkge1xuICAgICAgLy8gY3V0IHZhbHVlIHRvIG1hdGNoIG1heCBsZW5ndGhcbiAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmN1dFRleHRBZnRlck1heExlbmd0aCh2YWx1ZSlcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IHRoaXMuc3RhdGUubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgICAgIH1cbiAgICAgIC8vIGVtaXQgdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXBkYXRlIHN0YXRlXG4gICAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBjdXRUZXh0QWZ0ZXJNYXhMZW5ndGgodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhsZW5ndGgpXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVyblxuICAgIHRoaXMuc3RhdGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgIHRoaXMuaW5wdXRDaGFuZ2UkLm5leHQodGhpcy5zdGF0ZSlcbiAgfVxufVxuIiwiPCEtLSBMQUJFTCAtLT5cbjxsYWJlbFxuICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsIGhpZGUtaWYtZW1wdHlcIlxuICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2Jhc2ljTGFiZWxDb250ZW50VHBsPlxuICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgPlxuICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG5cbjwhLS0gREVTQ1JJUFRJT04gLS0+XG48ZGl2XG4gIGNsYXNzPVwiZm9ybS1pbmZvIGRlc2NyaXB0aW9uIGhpZGUtaWYtZW1wdHlcIlxuICAqbmdJZj1cImRlc2NyaXB0aW9uICYmIGRlc2NyaXB0aW9uSXNWaXNpYmxlXCJcbj5cbiAge3sgZGVzY3JpcHRpb24gfX1cbjwvZGl2PlxuXG48IS0tIExPQ0tFRCBJTlBVVCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NrZWRcIj5cbiAgPGRpdlxuICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICBjbGFzcz1cIm5nZ3YtZmllbGQtLWxvY2tlZFwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbYXR0ci52YWx1ZV09XCJzdGF0ZVwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgPlxuICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCIgY2xhc3M9XCJ1bnNldC1zdGF0ZVwiPi08L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0TWFza1wiPlxuICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFpbnB1dE1hc2tcIj5cbiAgICAgICAge3sgc3RhdGUgfCBuZ2d2SW5wdXRNYXNrRm9ybWF0OiBpbnB1dE1hc2sgfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2IGNsYXNzPVwiZ2RzLWlucHV0LXdyYXBwZXJcIiBbY2xhc3Mubmdndi1maWVsZC0tZXJyb3JdPVwiaW52YWxpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1wcmVmaXggaGlkZS1pZi1lbXB0eVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9J3ByZWZpeCddXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJTlBVVCBGSUVMRCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiAqbmdJZj1cIiFpbnB1dE1hc2tcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgICBjbGFzcz1cImdkcy1maWVsZFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIuZW1haWxdPVwiZW1haWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1tZXNzYWdlJ1wiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3ZhbHVlXT1cInN0YXRlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJTlBVVCBGSUVMRCBXSVRIIE1BU0sgLS0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cFwiXG4gICAgICAqbmdJZj1cIiEhaW5wdXRNYXNrICYmIChoaWRlSW5wdXQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBbaWRdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1tZXNzYWdlJ1wiXG4gICAgICAgIFtuZ2d2SW5wdXRNYXNrXT1cImlucHV0TWFza1wiXG4gICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1zdWZmaXggaGlkZS1pZi1lbXB0eVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9J3N1ZmZpeCddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEVSUk9SUyAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIlxuICAgICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIHNvbGlkPVwidHJ1ZVwiXG4gICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgID48L2dkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPnt7IGVycm9yIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImZpcnN0RXJyb3IgYXMgZXJyb3JcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRNYXNrICYmIGhhc01heExlbmd0aCAmJiBzaG93Q2hhcmFjdGVyQ291bnRkb3duXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdndkNoYXJhY3RlckNvdW50ZG93bj1cIlxuICAgICAgICAgIG1heGxlbmd0aDtcbiAgICAgICAgICBjdXJyZW50TGVuZ3RoOiAoaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlID8/ICcnKS5sZW5ndGg7XG4gICAgICAgICAgY2hhcmFjdGVyc0xlZnQgYXMgY2hhcmFjdGVyc0xlZnRcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1jb3VudGRvd25cIlxuICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0XCJcbiAgICAgID5cbiAgICAgICAge3sgY2hhcmFjdGVyc0xlZnQgfX0ge3sgdCgnbGFiZWwubWF4bGVuZ3RoJykgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJeEQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7Ozs7Ozs7O0FBRXpIOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxrQkFDWCxTQUFRLHFDQUFxQztJQWdEN0M7O09BRUc7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO0lBQzFCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO0lBQzFCLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUNELHNE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QyxXQUFXO3VCQUFDLE9BQU87O3NCQUFHLEtBQUs7Z0JBSWEsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBSzdCLElBQUk7c0JBQVosS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsR0FBRztzQkFBWCxLQUFLO2dCQUlHLEdBQUc7c0JBQVgsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFPTyxTQUFTO3NCQUFyQixLQUFLO2dCQU9PLFNBQVM7c0JBQXJCLEtBQUs7Z0JBV08sU0FBUztzQkFBckIsS0FBSztnQkFVTyxzQkFBc0I7c0JBQWxDLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFpQkksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB0eXBlIHsgSW5wdXRtYXNrT3B0aW9ucyB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQtbWFzaydcblxuaW1wb3J0IHsgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yJ1xuXG4vKipcbiAqIElucHV0IGZpZWxkcyBhbGxvdyB1c2VycyB0byBhZGQgYW5kIGVkaXQgdGV4dC5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtaW5wdXRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIE5nZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogQWRkaW5nIC5nZHMtZm9ybS1pdGVtIGFzIGEgY2xhc3MgdG8gaG9zdCBlbGVtZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnZ2RzLWZvcm0taXRlbSdcbiAgLyoqXG4gICAqIEFkZGluZyAuZ2RzLWZvcm0taXRlbS0tc21hbGwgY2xhc3MgYmFzZWQgb24gc2l6ZSBpbnB1dCBmb3Igc3R5bGluZ1xuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbGFyZ2UnID0gJ2xhcmdlJ1xuICAvKipcbiAgICogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdpbnB1dCdcbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5wdXQgZmllbGQuIFNob3VsZCBhdm9pZCB0eXBlcyB0aGF0IG1vZGlmeSBmaWVsZCB0b28gbXVjaCBzdWNoIGFzIHJhbmdlLlxuICAgKi9cbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0J1xuICAvKipcbiAgICogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJvblwiLCBoaW50IGZvciBmb3JtIGF1dG9maWxsIGZlYXR1cmUuXG4gICAqL1xuICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnb24nXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHZhbHVlIHdpbGwgbm90IGJlIGVkaXRhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZVxuICAvKipcbiAgICogSWYgc2V0IHRvIHRydWUsIGVuYWJsZXMgdGhlIEFuZ3VsYXIgdGVtcGxhdGUtZHJpdmVuIGVtYWlsIHZhbGlkYXRvci5cbiAgICovXG4gIEBJbnB1dCgpIGVtYWlsID0gZmFsc2VcbiAgLyoqXG4gICAqIE1pbmltdW0gdmFsdWUgcmVxdWlyZWQgZm9yIG51bWVyaWMgaW5wdXQgdHlwZXMuXG4gICAqL1xuICBASW5wdXQoKSBtaW4gPSAwXG4gIC8qKlxuICAgKiBNYXhpbXVtIHZhbHVlIHJlcXVpcmVkIGZvciBudW1lcmljIGlucHV0IHR5cGVzLlxuICAgKi9cbiAgQElucHV0KCkgbWF4ID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgLyoqXG4gICAqIEluY3JlbWVudGFsIHZhbHVlcyB0aGF0IGFyZSB2YWxpZCBmb3IgbnVtZXJpYyBpbnB1dCB0eXBlcy5cbiAgICovXG4gIEBJbnB1dCgpIHN0ZXAgPSAxXG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1pbkxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21pbmxlbmd0aCA9IGxlbmd0aFxuICB9XG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBtaW5sZW5ndGggdHJpZ2dlcnMgYW5ndWxhci10ZW1wbGF0ZS12YWxpZGF0aW9uLiBVc2UgQElucHV0KCkgbWluTGVuZ3RoIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWlubGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWlubGVuZ3RoID0gbGVuZ3RoXG4gIH1cbiAgZ2V0IG1pbmxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5sZW5ndGhcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnN0YXRlKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zdGF0ZSlcbiAgfVxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogV2V0aGVyIHRvIHNob3cgbGFiZWwgdGhhdCB0ZWxscyBob3cgbWFueSBjaGFyYWN0ZXJzIGFyZSBzdGlsbCBsZWZ0IHRvIGJlIGVudGVyZWQuIFdpbGwgb25seSBiZSBzZXQgaWYgbWF4TGVuZ3RoIGlzIGFsc28gc2V0ICovXG4gIHByaXZhdGUgX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSB0cnVlXG4gIEBJbnB1dCgpIHNldCBzaG93Q2hhcmFjdGVyQ291bnRkb3duKG9wdGlvbjogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJDb3VudERvd24gPSBvcHRpb25cbiAgfVxuICBnZXQgc2hvd0NoYXJhY3RlckNvdW50ZG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0NoYXJhY3RlckNvdW50RG93biAmJiB0aGlzLmhhc01heExlbmd0aFxuICB9XG5cbiAgLyoqIFBhdHRlcm4gdGhlIHZhbHVlIG11c3QgbWF0Y2ggdG8gYmUgdmFsaWQuICovXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnJ1xuICAvKiogQW1vdW50IG9mIHRpbWUgdG8gd2FpdCB1bnRpbCBlbWl0dGluZyAobmdndklOcHV0KSBldmVudCAqL1xuICBASW5wdXQoKSBkZWJvdW5jZVRpbWUgPSA1MDBcblxuICAvKiogU2V0dGluZ3MgZm9yIGlucHV0IG1hc2sgaWYgcmVxdWVzdGVkICovXG4gIHByaXZhdGUgX2lucHV0TWFzayE6IElucHV0bWFza09wdGlvbnM8YW55PlxuICBASW5wdXQoKSBzZXQgaW5wdXRNYXNrKG5ld0lucHV0TWFzazogSW5wdXRtYXNrT3B0aW9uczxhbnk+KSB7XG4gICAgLy8gSGlkZSBpbnB1dCBmaWVsZFxuICAgIHRoaXMuaGlkZUlucHV0JC5uZXh0KHRydWUpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5faW5wdXRNYXNrID0gbmV3SW5wdXRNYXNrXG5cbiAgICAvLyBTaG93IGlucHV0IGZpZWxkIHRvIHJlbG9hZCBpbnB1dC1tYXNrIHNldHRpbmdzIHVwb24gdXBkYXRlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhpZGVJbnB1dCQubmV4dChmYWxzZSlcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgIH0sIDIwMClcbiAgfVxuICBnZXQgaW5wdXRNYXNrKCk6IElucHV0bWFza09wdGlvbnM8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0TWFza1xuICB9XG5cbiAgLyoqIEVtaXRzIGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBpbm5lciBpbnB1dCBmaWVsZCBjaGFuZ2VzLCBpbmRlcGVuZGFudGx5IG9mIHVwZGF0ZXMgb24gdGhlIGZvcm1jb250cm9sbGVyICovXG4gIEBPdXRwdXQoKSBuZ2d2SW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIHByaXZhdGUgX2Zvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGdldCBjb250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2wpID8/IHRoaXMuX2Zvcm1Db250cm9sXG4gIH1cbiAgLyoqIFJldHVybnMgaWYgbWF4bGVuZ3RoIGlzIHVzZWQgKi9cbiAgZ2V0IGhhc01heExlbmd0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm1heGxlbmd0aCAmJiB0aGlzLm1heGxlbmd0aCAhPT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgfVxuXG4gIC8qKiBUb2dnbGVyIGZvciBzaG93aW5nIG9yIGhpZGluZyB0aGUgaW5wdXQgZmllbGQgKi9cbiAgaGlkZUlucHV0JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcblxuICBwcm90ZWN0ZWQgaW5wdXRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8YW55PigpXG4gIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpXG4gICAgdGhpcy5pbnB1dENoYW5nZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSkpXG4gICAgICAuc3Vic2NyaWJlKChpbnB1dFZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMubmdndklucHV0LmVtaXQoaW5wdXRWYWx1ZSlcbiAgICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KHRydWUpXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gbWF4TGVuZ3RoIHdpbGwgb25seSB3b3JrIHdpdGggc3RyaW5nIHZhbHVlc1xuICAgIGlmIChcbiAgICAgIHZhbHVlPy5sZW5ndGggJiZcbiAgICAgIHZhbHVlLmxlbmd0aCA+IHRoaXMubWF4bGVuZ3RoICYmXG4gICAgICB0aGlzLmNvbnRyb2wudG91Y2hlZFxuICAgICkge1xuICAgICAgLy8gY3V0IHZhbHVlIHRvIG1hdGNoIG1heCBsZW5ndGhcbiAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmN1dFRleHRBZnRlck1heExlbmd0aCh2YWx1ZSlcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IHRoaXMuc3RhdGUubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zdGF0ZSlcbiAgICAgIH1cbiAgICAgIC8vIGVtaXQgdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXBkYXRlIHN0YXRlXG4gICAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB9XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBjdXRUZXh0QWZ0ZXJNYXhMZW5ndGgodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5tYXhsZW5ndGgpXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVyblxuICAgIHRoaXMuc3RhdGUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgIHRoaXMuaW5wdXRDaGFuZ2UkLm5leHQodGhpcy5zdGF0ZSlcbiAgfVxufVxuIiwiPCEtLSBMQUJFTCAtLT5cbjxsYWJlbFxuICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsIGhpZGUtaWYtZW1wdHlcIlxuICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2Jhc2ljTGFiZWxDb250ZW50VHBsPlxuICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgPlxuICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGFiZWw+XG5cbjwhLS0gREVTQ1JJUFRJT04gLS0+XG48ZGl2XG4gIGNsYXNzPVwiZm9ybS1pbmZvIGRlc2NyaXB0aW9uIGhpZGUtaWYtZW1wdHlcIlxuICAqbmdJZj1cImRlc2NyaXB0aW9uICYmIGRlc2NyaXB0aW9uSXNWaXNpYmxlXCJcbj5cbiAge3sgZGVzY3JpcHRpb24gfX1cbjwvZGl2PlxuXG48IS0tIExPQ0tFRCBJTlBVVCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NrZWRcIj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIGxvY2tlZFRwbCB8fCBkZWZhdWx0TG9ja2VkVHBsO1xuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN0YXRlIH1cbiAgICBcIlxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9ja2VkVHBsPlxuICAgIDxkaXZcbiAgICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICBbYXR0ci52YWx1ZV09XCJzdGF0ZVwiXG4gICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCIgY2xhc3M9XCJ1bnNldC1zdGF0ZVwiPi08L3NwYW4+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dE1hc2tcIj5cbiAgICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhaW5wdXRNYXNrXCI+XG4gICAgICAgICAge3sgc3RhdGUgfCBuZ2d2SW5wdXRNYXNrRm9ybWF0OiBpbnB1dE1hc2sgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2IGNsYXNzPVwiZ2RzLWlucHV0LXdyYXBwZXJcIiBbY2xhc3Mubmdndi1maWVsZC0tZXJyb3JdPVwiaW52YWxpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1wcmVmaXggaGlkZS1pZi1lbXB0eVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9J3ByZWZpeCddXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJTlBVVCBGSUVMRCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiAqbmdJZj1cIiFpbnB1dE1hc2tcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgICBjbGFzcz1cImdkcy1maWVsZFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIuZW1haWxdPVwiZW1haWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1tZXNzYWdlJ1wiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcbiAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3ZhbHVlXT1cInN0YXRlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJTlBVVCBGSUVMRCBXSVRIIE1BU0sgLS0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cFwiXG4gICAgICAqbmdJZj1cIiEhaW5wdXRNYXNrICYmIChoaWRlSW5wdXQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBbaWRdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1tZXNzYWdlJ1wiXG4gICAgICAgIFtuZ2d2SW5wdXRNYXNrXT1cImlucHV0TWFza1wiXG4gICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1zdWZmaXggaGlkZS1pZi1lbXB0eVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9J3N1ZmZpeCddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEVSUk9SUyAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIlxuICAgICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIlxuICA+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWljb25cIj5cbiAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIHNvbGlkPVwidHJ1ZVwiXG4gICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgID48L2dkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPnt7IGVycm9yIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImZpcnN0RXJyb3IgYXMgZXJyb3JcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRNYXNrICYmIGhhc01heExlbmd0aCAmJiBzaG93Q2hhcmFjdGVyQ291bnRkb3duXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdndkNoYXJhY3RlckNvdW50ZG93bj1cIlxuICAgICAgICAgIG1heGxlbmd0aDtcbiAgICAgICAgICBjdXJyZW50TGVuZ3RoOiAoaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlID8/ICcnKS5sZW5ndGg7XG4gICAgICAgICAgY2hhcmFjdGVyc0xlZnQgYXMgY2hhcmFjdGVyc0xlZnRcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1jb3VudGRvd25cIlxuICAgICAgICBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0XCJcbiAgICAgID5cbiAgICAgICAge3sgY2hhcmFjdGVyc0xlZnQgfX0ge3sgdCgnbGFiZWwubWF4bGVuZ3RoJykgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==