oasys-lib 1.60.2 → 1.60.4

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.
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output, forwardRef, ElementRef, Inject, ViewChild, ViewChildren, HostListener, } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  import * as i2 from "../../layout/box/box.component";
@@ -8,6 +8,7 @@ import * as i3 from "../../layout/stack/stack.component";
8
8
  import * as i4 from "@angular/forms";
9
9
  import * as i5 from "../../icon/icon.component";
10
10
  import * as i6 from "../../../directives/autofocus/autofocus.directive";
11
+ import * as i7 from "../../../directives/emphasis/emphasis.directive";
11
12
  export class ComboboxComponent {
12
13
  /** Whether or not the overlay panel is open. */
13
14
  get panelOpen() {
@@ -47,7 +48,7 @@ export class ComboboxComponent {
47
48
  this.optional = true;
48
49
  this.autofocus = false;
49
50
  this.disabled = false;
50
- // Will open the list of options on init
51
+ // Will open the list of options on init
51
52
  this.showOptions = false;
52
53
  this.didChange = new EventEmitter();
53
54
  this.didSearch = new EventEmitter();
@@ -72,7 +73,7 @@ export class ComboboxComponent {
72
73
  * @param changes
73
74
  */
74
75
  ngOnChanges(changes) {
75
- // Detects if the autocomplete options list is chnaged after a selection of an option.
76
+ // Detects if the autocomplete options list is chnaged after a selection of an option.
76
77
  // Example: Address search can have options assigned to a group of options. One postcode to have x number of addreses
77
78
  // If Options list is Changed as part of group option we let the options panel open to let user select a single option. This is considered as change input value(similar with type value)
78
79
  if (this.type === 'autocomplete' && changes['options']) {
@@ -80,15 +81,17 @@ export class ComboboxComponent {
80
81
  if (!this.options) {
81
82
  this.closePanel();
82
83
  }
83
- if (optionchanges['currentValue'] !== optionchanges['previousValue'] && this.options?.length !== 0 && !optionchanges['firstChange']) {
84
+ if (optionchanges['currentValue'] !== optionchanges['previousValue'] &&
85
+ this.options?.length !== 0 &&
86
+ !optionchanges['firstChange']) {
84
87
  this.resetOptionsList();
85
88
  this.openPanel();
86
89
  }
87
90
  }
88
91
  }
89
92
  /**
90
- * On Init
91
- */
93
+ * On Init
94
+ */
92
95
  ngOnInit() {
93
96
  this.id = this.label + Math.random();
94
97
  this.resetSelection();
@@ -127,15 +130,15 @@ export class ComboboxComponent {
127
130
  */
128
131
  onKeyDown(event) {
129
132
  switch (event.key) {
130
- case "Enter":
133
+ case 'Enter':
131
134
  this.pressEnter();
132
135
  break;
133
- case "Tab":
136
+ case 'Tab':
134
137
  if (this.panelOpen) {
135
138
  this.closePanel();
136
139
  }
137
140
  break;
138
- case "Escape":
141
+ case 'Escape':
139
142
  if (this.panelOpen) {
140
143
  this.closePanel();
141
144
  }
@@ -177,7 +180,7 @@ export class ComboboxComponent {
177
180
  * @param textValue
178
181
  */
179
182
  writeValue(textValue) {
180
- if ((this.selected && (typeof textValue) !== 'string') || textValue === '') {
183
+ if ((this.selected && typeof textValue !== 'string') || textValue === '') {
181
184
  this.textValue = this._selectedOption[this.displayOptionKey];
182
185
  }
183
186
  else {
@@ -263,8 +266,8 @@ export class ComboboxComponent {
263
266
  else {
264
267
  this.openPanel();
265
268
  this.displayOptions = this.options.filter((option) => {
266
- return this.checkIncludesSubstring(option, this.displayOptionKey)
267
- || this.checkIncludesSubstring(option, this.subtextOptionKey);
269
+ return (this.checkIncludesSubstring(option, this.displayOptionKey) ||
270
+ this.checkIncludesSubstring(option, this.subtextOptionKey));
268
271
  });
269
272
  if (this.displayOptions.length === 0) {
270
273
  this.closePanel();
@@ -279,7 +282,10 @@ export class ComboboxComponent {
279
282
  * @returns
280
283
  */
281
284
  checkIncludesSubstring(option, key) {
282
- return option[key]?.toString().toLowerCase().includes(this.textValue.toLowerCase());
285
+ return option[key]
286
+ ?.toString()
287
+ .toLowerCase()
288
+ .includes(this.textValue.toLowerCase());
283
289
  }
284
290
  /**
285
291
  * Set Input Validators
@@ -307,12 +313,12 @@ export class ComboboxComponent {
307
313
  */
308
314
  pressArrows(event) {
309
315
  switch (event.key) {
310
- case "ArrowDown":
316
+ case 'ArrowDown':
311
317
  this._focusedOptionId = Math.min(this._focusedOptionId + 1, this.displayOptions.length - 1);
312
318
  this._focusedOption = this.displayOptions[this._focusedOptionId];
313
319
  this.autocompleteOptionTextPreview();
314
320
  break;
315
- case "ArrowUp":
321
+ case 'ArrowUp':
316
322
  this._focusedOptionId = Math.max(this._focusedOptionId - 1, 0);
317
323
  this._focusedOption = this.displayOptions[this._focusedOptionId];
318
324
  this.autocompleteOptionTextPreview();
@@ -331,7 +337,9 @@ export class ComboboxComponent {
331
337
  * Press Enter inside Options Panel
332
338
  */
333
339
  pressEnter() {
334
- if (this.panelOpen && this._focusedOptionId < this.options.length && this._focusedOptionId >= 0) {
340
+ if (this.panelOpen &&
341
+ this._focusedOptionId < this.options.length &&
342
+ this._focusedOptionId >= 0) {
335
343
  this.selectOption(this._focusedOption, this._focusedOptionId);
336
344
  }
337
345
  }
@@ -356,7 +364,7 @@ export class ComboboxComponent {
356
364
  useExisting: forwardRef(() => ComboboxComponent),
357
365
  multi: true,
358
366
  },
359
- ], viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textinput"], descendants: true, read: ElementRef }, { propertyName: "combobox", first: true, predicate: ["combobox"], descendants: true, read: ElementRef }, { propertyName: "optionsList", predicate: ["option"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\"> \n <!-- Compbobox Options Input -->\n <div \n *ngIf=\"type==='options'\"\n #combobox\n name=\"combobox\" \n tabindex=\"0\" \n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel($event)\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\" \n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\" \n aria-owns=\"activedescendent-list\" \n aria-autocomplete=\"list\">\n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label class=\"text-body--supporting text-body--regular\" role=\"combobox-label\" [for]=\"id\">{{label}}</label>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\" \n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\">\n <ui-icon *ngIf=\"!panelOpen\" icon_name=\"chevron-down\"></ui-icon>\n <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n \n <!-- Combobox Autocomplete Input -->\n <div \n *ngIf=\"type==='autocomplete'\"\n #combobox\n name=\"combobox\" \n tabindex=\"0\" \n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\" \n aria-owns=\"activedescendent-list\" \n aria-autocomplete=\"list\">\n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label class=\"text-body--supporting text-body--regular\" role=\"combobox-label\" [for]=\"id\">{{label}}</label>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\" \n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder||''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div class=\"icon-container\" \n [aria-label]=\"'clean'\" \n (click)=\"cleanInput()\">\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\" ></ui-icon>\n </div>\n </ui-stack>\n </div>\n \n <!-- Combobox Options Panel -->\n <div *ngIf=\"panelOpen\" \n class=\"ui-combobox-options\" \n [attr.aria-expanded]=\"panelOpen\" \n role=\"listbox\" \n id=\"activedescendent-list\">\n \n <!-- Autocomplete Options Panel Header -->\n <div *ngIf=\"header && type==='autocomplete'\" \n class=\"ui-combobox-header text-body--supporting\"> \n <span>{{header}}</span>\n </div>\n \n <!-- Options list -->\n <div\n #option \n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\" \n [ngClass]=\"{'selected': selectedOption === option, 'focus': focusedOption === option }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-'+i\"\n [attr.aria-label]=\"selectedOption === option ? option[displayOptionKey] + ' is selected' : option[displayOptionKey]\"\n > \n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <!-- Option display -->\n <div [value]=\"valueKey ? option[valueKey]: option.value\" [ngValue]=\"displayKey ? option[displayKey] : option.label\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-icon *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey]) \" [icon_name]=\"iconNameKey ? option[iconNameKey] : option.icon_name\"></ui-icon>\n <ui-stack stack_gap=\"tiny\">\n <span>{{displayKey ? option[displayKey] : option.label}}</span>\n <p class=\"foreground-secondary-text\" *ngIf=\"type==='autocomplete'\"> {{subtextKey ? option[subtextKey] : option.subtext}} </p>\n </ui-stack>\n </ui-stack>\n </div>\n \n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type==='autocomplete'\"\n class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (clicked)=\"onFooterAction()\"> {{footer}} </ui-button>\n </div>\n </div>\n </div> \n <ui-stack stack_gap=\"none\">\n <!-- ERROR Messages -->\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n\n <!-- HINT Message -->\n <ui-box *ngIf=\"hint\" box_background=\"none\" box_space=\"none\" box_space_left=\"near\" box_space_right=\"near\"\n box_space_bottom=\"near\">\n <div \n class=\"input-hint text-body--supporting text-color--supporting\"\n [aria-label]=\"hint\">{{hint}}</div>\n </ui-box>\n </ui-stack>\n</ui-stack>", styles: ["html{font-size:62.5%}html,html body{font-family:var(--oasys-typography-body-body-font-family);font-weight:var(--oasys-typography-body-body-font-weight);font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-font-line-height);color:var(--oasys-color-brand-foreground-primary)}html b,html bold,html strong,html body b,html body bold,html body strong{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}html i,html body i{font-style:normal}h1,h2,h3,.text-heading,.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-family:var(--oasys-typography-heading-hero-desktop-font-family)}h4,h5,h6,.text-heading--functional,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2{font-family:var(--oasys-typography-heading-func-primary-desktop-font-family)}ui-container h1,ui-container h2,ui-container h3,ui-container h4,ui-container h5,ui-container h6,ui-container p,ui-box h1,ui-box h2,ui-box h3,ui-box h4,ui-box h5,ui-box h6,ui-box p,ui-stack h1,ui-stack h2,ui-stack h3,ui-stack h4,ui-stack h5,ui-stack h6,ui-stack p,ui-grid h1,ui-grid h2,ui-grid h3,ui-grid h4,ui-grid h5,ui-grid h6,ui-grid p{margin:0}h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-desktop-font-size);line-height:var(--oasys-typography-heading-hero-desktop-line-height);font-weight:var(--oasys-typography-heading-hero-desktop-font-weight)}@media only screen and (max-width: 767px){h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-mobile-font-size);line-height:var(--oasys-typography-heading-hero-mobile-line-height);font-weight:var(--oasys-typography-heading-hero-mobile-font-weight)}}h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-desktop-font-size);line-height:var(--oasys-typography-heading-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-mobile-font-size);line-height:var(--oasys-typography-heading-primary-mobile-line-height);font-weight:var(--oasys-typography-heading-primary-mobile-font-weight)}}h3,.text-heading--secondary{font-size:var(--oasys-typography-heading-secondary-font-size);line-height:var(--oasys-typography-heading-secondary-line-height);font-weight:var(--oasys-typography-heading-secondary-font-weight)}h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-desktop-font-size);line-height:var(--oasys-typography-heading-func-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-mobile-font-size);line-height:var(--oasys-typography-heading-func-primary-mobile-line-height)}}h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-desktop-font-size);line-height:var(--oasys-typography-heading-func-secondary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-secondary-desktop-font-weight)}@media only screen and (max-width: 767px){h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-mobile-font-size);line-height:var(--oasys-typography-heading-func-secondary-mobile-line-height);font-weight:var(--oasys-typography-heading-func-secondary-mobile-font-weight)}}label{-webkit-user-select:none;user-select:none;cursor:pointer}label,.text-label--primary{font-size:var(--oasys-typography-heading-label-primary-font-size);line-height:var(--oasys-typography-heading-label-primary-line-height);font-weight:var(--oasys-typography-heading-label-primary-font-weight)}.text-label--secondary{font-size:var(--oasys-typography-heading-label-secondary-font-size);line-height:var(--oasys-typography-heading-label-secondary-line-height);font-weight:var(--oasys-typography-heading-label-secondary-font-weight)}.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-size:var(--oasys-typography-body-expressive-font-size);line-height:var(--oasys-typography-body-expressive-line-height);font-weight:var(--oasys-typography-body-expressive-font-weight)}.text-body--hero,.ui-combobox input:-webkit-autofill:first-line,.ui-combobox .select:-webkit-autofill:first-line,.ui-rce h6,.ui-prose h6,article h6{font-size:var(--oasys-typography-body-hero-font-size);line-height:var(--oasys-typography-body-hero-line-height);font-weight:var(--oasys-typography-body-hero-font-weight)}.text-body--default,.ui-rce p{font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-line-height);font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--supporting{font-size:var(--oasys-typography-body-supporting-font-size);line-height:var(--oasys-typography-body-supporting-line-height);font-weight:var(--oasys-typography-body-supporting-body-weight)}.text-body--regular,.ui-rce h6,.ui-prose h6,article h6{font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--line-through{-webkit-text-decoration:var(--oasys-typography-body-line-through-body-text-decoration);text-decoration:var(--oasys-typography-body-line-through-body-text-decoration)}.text-body--emphasis,.ui-combobox input,.ui-combobox .select,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2,a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}.text-color--on-light{color:var(--oasys-color-brand-foreground-primary)}.text-color--on-light.text-color--supporting,.text-color--on-light .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--on-dark{color:var(--oasys-color-brand-foreground-primary-on-dark)}.text-color--on-dark.text-color--supporting,.text-color--on-dark .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary-on-dark)}.text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--error{color:var(--oasys-color-system-foreground-negative)}.text-color--highlight{color:var(--oasys-color-brand-foreground-highlight)}a{color:inherit;text-decoration:none}.text--readable-width,.ui-rce blockquote,.ui-prose blockquote,article blockquote{max-width:70ch}a,.text-link,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:none;cursor:pointer}a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{text-decoration:underline}a--paragraph,.text-link--paragraph,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:underline;font-weight:inherit}.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-small-bottom)}}.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-small-bottom)}}.ui-rce p,.ui-rce ul,.ui-rce ol,.ui-prose p,.ui-prose ul,.ui-prose ol,article p,article ul,article ol{margin-bottom:var(--oasys-prose-vertical-adjustment-paragraph-bottom)}.ui-rce p:empty,.ui-rce ul:empty,.ui-rce ol:empty,.ui-prose p:empty,.ui-prose ul:empty,.ui-prose ol:empty,article p:empty,article ul:empty,article ol:empty{display:none}.ui-rce blockquote,.ui-prose blockquote,article blockquote{padding-top:var(--oasys-prose-vertical-adjustment-blockquote-top);margin-bottom:var(--oasys-prose-vertical-adjustment-blockquote-bottom);text-align:center;margin:0 auto}.ui-rce hr,.ui-prose hr,article hr{display:block;width:100%;border:0;padding:0;margin:0;height:var(--oasys-size-unit-8);background:var(--oasys-color-brand-background-secondary);margin-top:var(--oasys-spacing-expanded);margin-bottom:var(--oasys-spacing-expanded)}.ui-rce ol,.ui-prose ol,article ol{list-style-type:decimal;list-style-position:inside}.ui-rce ul,.ui-prose ul,article ul{list-style:initial;list-style-position:inside}.ui-rce .ui-rce-embed,.ui-prose .ui-rce-embed,article .ui-rce-embed{padding-top:var(--oasys-prose-vertical-adjustment-component-top-bottom);margin-bottom:var(--oasys-prose-vertical-adjustment-component-top-bottom)}.ui-rce .ui-rce-embed ui-button a,.ui-rce .ui-rce-embed ui-button a:hover,.ui-prose .ui-rce-embed ui-button a,.ui-prose .ui-rce-embed ui-button a:hover,article .ui-rce-embed ui-button a,article .ui-rce-embed ui-button a:hover{text-decoration:none}.ui-rce>ui-box .ui-box-content>*:first-child{padding-top:0}.ui-rce>ui-box .ui-box-content>*:last-child{margin-bottom:0}.ui-rce .ui-rce-instance:last-of-type{padding-bottom:var(--oasys-spacing-expanded)}.ui-rce ui-button,.ui-rce img{display:inline-block;margin:0;margin-top:var(--oasys-spacing-near);margin-right:var(--oasys-spacing-near);vertical-align:top}.ui-rce ui-button:last-child,.ui-rce img:last-child{margin-right:0}.ui-rce img{width:100%}.ui-rce ol p,.ui-rce ul p{display:inline;margin:0}form fieldset legend{margin-bottom:var(--oasys-spacing-near)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container{display:none!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-combobox,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors .input-errors-content,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .hint-container,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .hint-container{display:none!important}.ui-checkbox input,.ui-radio input,.ui-text-input input,.ui-combobox input{appearance:none;margin:0;border:none}.ui-checkbox input,.ui-radio input{cursor:pointer}.ui-checkbox,.ui-radio{--_inset: var(--oasys-spacing-near);--_radius: var(--oasys-radius-soften);--_transition_duration: calc(var(--oasys-animation-duration) * 1ms)}.ui-checkbox input,.ui-radio input{position:absolute;inset:0;border-radius:var(--oasys-radius-soften)}.ui-checkbox input.secondary,.ui-radio input.secondary{inset:unset;top:var(--_inset);--_focusSize: var(--oasys-typography-heading-label-secondary-line-height);width:var(--_focusSize);height:var(--_focusSize)}.ui-checkbox input+label,.ui-radio input+label{width:inherit;display:flex;align-items:center;gap:var(--oasys-spacing-tight)}.ui-checkbox input+label .icon-container,.ui-radio input+label .icon-container{align-self:flex-start;padding:var(--oasys-component-checkbox-icon-inset);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected);border-radius:var(--_radius)}.ui-checkbox input+label .input-hint:empty,.ui-radio input+label .input-hint:empty{display:none}.ui-checkbox input+label.primary,.ui-radio input+label.primary{padding:var(--_inset);border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-checkbox input+label.secondary,.ui-radio input+label.secondary{padding:var(--_inset) 0}.ui-checkbox input+label.secondary .icon-container,.ui-radio input+label.secondary .icon-container{background:transparent;border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)}.ui-checkbox input+label,.ui-checkbox input+label .icon-container,.ui-radio input+label,.ui-radio input+label .icon-container{transition:background-color calc(var(--_transition_duration) * 1ms),border-color calc(var(--_transition_duration) * 1ms)}.ui-checkbox input:hover+label.primary,.ui-checkbox input:checked+label.primary,.ui-radio input:hover+label.primary,.ui-radio input:checked+label.primary{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:hover+label.secondary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:hover+label.secondary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:checked+label.primary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:checked+label.primary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-border-selected);border-color:var(--oasys-color-interaction-border-selected);color:var(--oasys-color-brand-foreground-primary-on-dark)}.ui-checkbox input:checked+label.primary,.ui-radio input:checked+label.primary{border-color:var(--oasys-color-interaction-border-selected)!important}.ui-checkbox input.ng-touched.ng-invalid+label,.ui-radio input.ng-touched.ng-invalid+label{color:var(--oasys-color-system-foreground-negative)}.ui-checkbox input.ng-touched.ng-invalid+label .icon-container,.ui-radio input.ng-touched.ng-invalid+label .icon-container{border-color:var(--oasys-color-system-foreground-negative)}.ui-chip .ui-checkbox input+label .icon-container.icon--hidden,.ui-chip .ui-radio input+label .icon-container.icon--hidden{display:none}.ui-chip .ui-checkbox input+label .label--center,.ui-chip .ui-radio input+label .label--center{margin:0 auto}.ui-chip .ui-checkbox input:checked+label.primary,.ui-chip .ui-radio input:checked+label.primary{border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)!important}.oasys-focus-style,.ui-combobox div[name=combobox]:focus,.ui-combobox div[name=combobox]:focus-visible,.ui-combobox div[name=combobox]:focus-within,[tabindex]:focus-visible,[tabindex]:focus,select:focus-visible,select:focus,textarea:focus-visible,textarea:focus,input:focus-visible,input:focus,button:focus-visible,button:focus,a:focus-visible,a:focus{outline:var(--oasys-border-width-focus) solid var(--oasys-color-interaction-border-focus);outline-offset:var(--oasys-border-width-focus-offset)}a:focus:not(:focus-visible){outline:none}button:focus:not(:focus-visible){outline:none}input:focus:not(:focus-visible){outline:none}textarea:focus:not(:focus-visible){outline:none}select:focus:not(:focus-visible){outline:none}[tabindex]:focus:not(:focus-visible){outline:none}:host{display:block;width:100%}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-text-input,:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors .input-errors-content{visibility:visible!important}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .hint-container{display:none!important}.foreground-secondary-text{color:var(--oasys-color-brand-foreground-secondary)}.ui-combobox{background-color:var(--oasys-color-white);--_label-height: var(--oasys-typography-body-supporting-line-height);--_label-input-gap: var(--oasys-spacing-tiny);--_label-top-inset: var(--oasys-spacing-near);--_input-inset-top: calc(var(--_label-height) + var(--_label-input-gap) + var(--_label-top-inset));--_preface-width: var(--oasys-component-text-input-preface-width);position:relative;transition:border calc(var(--oasys-animation-duration-long) * 1ms);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-footer,.ui-combobox-header{padding:var(--oasys-spacing-tight) var(--oasys-spacing-near);text-align:center}.ui-combobox-footer{cursor:pointer;border-top:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-header{color:var(--oasys-color-brand-foreground-secondary);border-bottom:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-options{background-color:var(--oasys-color-white);box-shadow:0 24px 36px #2626261a;border-radius:var(--oasys-radius-soften);box-sizing:border-box;width:100%;height:auto;margin-top:var(--oasys-spacing-near);position:absolute;pointer-events:auto;outline:0;overflow:auto;transform-origin:top center;z-index:1000}.ui-combobox-option{cursor:pointer;border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) transparent;padding:var(--oasys-spacing-near);outline:none;outline-offset:none}.ui-combobox-option:hover,.ui-combobox-option.selected{background-color:var(--oasys-color-interaction-background-selected);border-radius:var(--oasys-radius-soften)}.ui-combobox-option.focus{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-option:focus-visible{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-container .input-errors{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);display:grid;grid-template-rows:0fr;overflow:hidden;opacity:0;transform:translateY(-33%);transition:grid-template-rows var(--_ad),opacity var(--_ad),transform var(--_ad);transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));will-change:grid-template-rows,transform,opacity}.ui-combobox-container .input-errors .input-errors-content{min-height:0;visibility:hidden;transition:visibility var(--_ad)}.ui-combobox-container .input-errors .hint-container{display:block!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .hint-container{display:none!important}.ui-combobox-container:has(input:disabled) input,.ui-combobox-container:has(input:disabled) .select{background-color:none;color:var(--oasys-component-text-input-color-disabled-foreground)}.ui-combobox-container:has(input:disabled) .ui-combobox-input{background-color:var(--oasys-component-text-input-color-disabled-background)}.ui-combobox{border-radius:var(--oasys-radius-soften);width:100%}.ui-combobox input{border:none;width:100%;cursor:pointer}.ui-combobox input:focus{outline:none}.ui-combobox input,.ui-combobox .select{padding:var(--oasys-spacing-near);padding-top:var(--oasys-spacing-tiny)}.ui-combobox .label-container{padding-top:var(--oasys-spacing-near);padding-left:var(--oasys-spacing-near);width:calc(100% - var(--oasys-spacing-near) - var(--oasys-spacing-near))}.ui-combobox .label-container,.ui-combobox .label-container label{pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-combobox .icon-container{padding-right:var(--oasys-spacing-near)}.ui-combobox:has(.input-preface:not(:empty)){--_left-inset: calc(var(--oasys-spacing-near) + var(--_preface-width))}.ui-combobox:has(.input-preface:not(:empty)) .label-container{left:var(--_left-inset);width:calc(100% - var(--_left-inset) - var(--oasys-spacing-near))}.ui-combobox:has(.input-preface:not(:empty)) input,.ui-combobox:has(.input-preface:not(:empty)) .select{padding-left:var(--_left-inset)}.ui-combobox .input-preface{width:var(--_preface-width);height:100%;position:absolute;display:flex;justify-content:center;align-items:center;pointer-events:none;flex-direction:column;text-align:center;border-right:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox .input-preface:empty{visibility:hidden}.ui-combobox div[name=combobox]{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: i3.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "icon_class"] }, { kind: "directive", type: i6.OasysAutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }] }); }
367
+ ], viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textinput"], descendants: true, read: ElementRef }, { propertyName: "combobox", first: true, predicate: ["combobox"], descendants: true, read: ElementRef }, { propertyName: "optionsList", predicate: ["option"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\">\n <!-- Compbobox Options Input -->\n <div\n *ngIf=\"type === 'options'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel($event)\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\" [ngClass]=\"{ expand: panelOpen }\">\n <ui-icon icon_name=\"chevron-down\"></ui-icon>\n <!-- <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon> -->\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Autocomplete Input -->\n <div\n *ngIf=\"type === 'autocomplete'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder || ''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div\n class=\"icon-container\"\n [aria-label]=\"'clean'\"\n (click)=\"cleanInput()\"\n >\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Options Panel -->\n <div\n *ngIf=\"panelOpen\"\n class=\"ui-combobox-options\"\n [ngClass]=\"{ expand: panelOpen }\"\n [attr.aria-expanded]=\"panelOpen\"\n role=\"listbox\"\n id=\"activedescendent-list\"\n >\n <!-- Autocomplete Options Panel Header -->\n <div\n *ngIf=\"header && type === 'autocomplete'\"\n class=\"ui-combobox-header text-body--supporting\"\n >\n <span>{{ header }}</span>\n </div>\n\n <!-- Options list -->\n <div\n #option\n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\"\n [ngClass]=\"{\n selected: selectedOption === option,\n focus: focusedOption === option\n }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-' + i\"\n [attr.aria-label]=\"\n selectedOption === option\n ? option[displayOptionKey] + ' is selected'\n : option[displayOptionKey]\n \"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <!-- Option display -->\n <div\n [value]=\"valueKey ? option[valueKey] : option.value\"\n [ngValue]=\"displayKey ? option[displayKey] : option.label\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-icon\n *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey])\"\n [icon_name]=\"\n iconNameKey ? option[iconNameKey] : option.icon_name\n \"\n ></ui-icon>\n\n <!-- Display options label -->\n <span *ngIf=\"type === 'options'\">{{\n option[displayOptionKey]\n }}</span>\n\n <!-- Display autocomplete option information and emphasis-->\n <ui-stack stack_gap=\"tiny\" *ngIf=\"type === 'autocomplete'\">\n <span\n ui-emphasis\n [searchText]=\"textValue\"\n [displayParagraph]=\"option[displayOptionKey]\"\n >\n {{ displayParagraph }}\n </span>\n <p\n class=\"foreground-secondary-text\"\n *ngIf=\"type === 'autocomplete'\"\n >\n {{ option[subtextOptionKey] }}\n </p>\n </ui-stack>\n </ui-stack>\n </div>\n\n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type === 'autocomplete'\" class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (click)=\"onFooterAction()\">\n {{ footer }}\n </ui-button>\n </div>\n </div>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n <ui-box\n class=\"hint-container\"\n *ngIf=\"hint\"\n box_background=\"none\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n >\n {{ hint }}\n </div>\n </ui-box>\n </ui-stack>\n</ui-stack>\n", styles: ["html{font-size:62.5%}html,html body{font-family:var(--oasys-typography-body-body-font-family);font-weight:var(--oasys-typography-body-body-font-weight);font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-font-line-height);color:var(--oasys-color-brand-foreground-primary)}html b,html bold,html strong,html body b,html body bold,html body strong{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}html i,html body i{font-style:normal}h1,h2,h3,.text-heading,.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-family:var(--oasys-typography-heading-hero-desktop-font-family)}h4,h5,h6,.text-heading--functional,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2{font-family:var(--oasys-typography-heading-func-primary-desktop-font-family)}ui-container h1,ui-container h2,ui-container h3,ui-container h4,ui-container h5,ui-container h6,ui-container p,ui-box h1,ui-box h2,ui-box h3,ui-box h4,ui-box h5,ui-box h6,ui-box p,ui-stack h1,ui-stack h2,ui-stack h3,ui-stack h4,ui-stack h5,ui-stack h6,ui-stack p,ui-grid h1,ui-grid h2,ui-grid h3,ui-grid h4,ui-grid h5,ui-grid h6,ui-grid p{margin:0}h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-desktop-font-size);line-height:var(--oasys-typography-heading-hero-desktop-line-height);font-weight:var(--oasys-typography-heading-hero-desktop-font-weight)}@media only screen and (max-width: 767px){h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-mobile-font-size);line-height:var(--oasys-typography-heading-hero-mobile-line-height);font-weight:var(--oasys-typography-heading-hero-mobile-font-weight)}}h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-desktop-font-size);line-height:var(--oasys-typography-heading-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-mobile-font-size);line-height:var(--oasys-typography-heading-primary-mobile-line-height);font-weight:var(--oasys-typography-heading-primary-mobile-font-weight)}}h3,.text-heading--secondary{font-size:var(--oasys-typography-heading-secondary-font-size);line-height:var(--oasys-typography-heading-secondary-line-height);font-weight:var(--oasys-typography-heading-secondary-font-weight)}h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-desktop-font-size);line-height:var(--oasys-typography-heading-func-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-mobile-font-size);line-height:var(--oasys-typography-heading-func-primary-mobile-line-height)}}h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-desktop-font-size);line-height:var(--oasys-typography-heading-func-secondary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-secondary-desktop-font-weight)}@media only screen and (max-width: 767px){h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-mobile-font-size);line-height:var(--oasys-typography-heading-func-secondary-mobile-line-height);font-weight:var(--oasys-typography-heading-func-secondary-mobile-font-weight)}}label{-webkit-user-select:none;user-select:none;cursor:pointer}label,.text-label--primary{font-size:var(--oasys-typography-heading-label-primary-font-size);line-height:var(--oasys-typography-heading-label-primary-line-height);font-weight:var(--oasys-typography-heading-label-primary-font-weight)}.text-label--secondary{font-size:var(--oasys-typography-heading-label-secondary-font-size);line-height:var(--oasys-typography-heading-label-secondary-line-height);font-weight:var(--oasys-typography-heading-label-secondary-font-weight)}.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-size:var(--oasys-typography-body-expressive-font-size);line-height:var(--oasys-typography-body-expressive-line-height);font-weight:var(--oasys-typography-body-expressive-font-weight)}.text-body--hero,.ui-combobox input:-webkit-autofill:first-line,.ui-combobox .select:-webkit-autofill:first-line,.ui-rce h6,.ui-prose h6,article h6{font-size:var(--oasys-typography-body-hero-font-size);line-height:var(--oasys-typography-body-hero-line-height);font-weight:var(--oasys-typography-body-hero-font-weight)}.text-body--default,.ui-rce p{font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-line-height);font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--supporting{font-size:var(--oasys-typography-body-supporting-font-size);line-height:var(--oasys-typography-body-supporting-line-height);font-weight:var(--oasys-typography-body-supporting-body-weight)}.text-body--regular,.ui-rce h6,.ui-prose h6,article h6{font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--line-through{-webkit-text-decoration:var(--oasys-typography-body-line-through-body-text-decoration);text-decoration:var(--oasys-typography-body-line-through-body-text-decoration)}.text-body--emphasis,.ui-combobox input,.ui-combobox .select,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2,a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}.text-color--on-light{color:var(--oasys-color-brand-foreground-primary)}.text-color--on-light.text-color--supporting,.text-color--on-light .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--on-dark{color:var(--oasys-color-brand-foreground-primary-on-dark)}.text-color--on-dark.text-color--supporting,.text-color--on-dark .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary-on-dark)}.text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--error{color:var(--oasys-color-system-foreground-negative)}.text-color--highlight{color:var(--oasys-color-brand-foreground-highlight)}a{color:inherit;text-decoration:none}.text--readable-width,.ui-rce blockquote,.ui-prose blockquote,article blockquote{max-width:70ch}a,.text-link,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:none;cursor:pointer}a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{text-decoration:underline}a--paragraph,.text-link--paragraph,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:underline;font-weight:inherit}.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-small-bottom)}}.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-small-bottom)}}.ui-rce p,.ui-rce ul,.ui-rce ol,.ui-prose p,.ui-prose ul,.ui-prose ol,article p,article ul,article ol{margin-bottom:var(--oasys-prose-vertical-adjustment-paragraph-bottom)}.ui-rce p:empty,.ui-rce ul:empty,.ui-rce ol:empty,.ui-prose p:empty,.ui-prose ul:empty,.ui-prose ol:empty,article p:empty,article ul:empty,article ol:empty{display:none}.ui-rce blockquote,.ui-prose blockquote,article blockquote{padding-top:var(--oasys-prose-vertical-adjustment-blockquote-top);margin-bottom:var(--oasys-prose-vertical-adjustment-blockquote-bottom);text-align:center;margin:0 auto}.ui-rce hr,.ui-prose hr,article hr{display:block;width:100%;border:0;padding:0;margin:0;height:var(--oasys-size-unit-8);background:var(--oasys-color-brand-background-secondary);margin-top:var(--oasys-spacing-expanded);margin-bottom:var(--oasys-spacing-expanded)}.ui-rce ol,.ui-prose ol,article ol{list-style-type:decimal;list-style-position:inside}.ui-rce ul,.ui-prose ul,article ul{list-style:initial;list-style-position:inside}.ui-rce .ui-rce-embed,.ui-prose .ui-rce-embed,article .ui-rce-embed{padding-top:var(--oasys-prose-vertical-adjustment-component-top-bottom);margin-bottom:var(--oasys-prose-vertical-adjustment-component-top-bottom)}.ui-rce .ui-rce-embed ui-button a,.ui-rce .ui-rce-embed ui-button a:hover,.ui-prose .ui-rce-embed ui-button a,.ui-prose .ui-rce-embed ui-button a:hover,article .ui-rce-embed ui-button a,article .ui-rce-embed ui-button a:hover{text-decoration:none}.ui-rce>ui-box .ui-box-content>*:first-child{padding-top:0}.ui-rce>ui-box .ui-box-content>*:last-child{margin-bottom:0}.ui-rce .ui-rce-instance:last-of-type{padding-bottom:var(--oasys-spacing-expanded)}.ui-rce ui-button,.ui-rce img{display:inline-block;margin:0;margin-top:var(--oasys-spacing-near);margin-right:var(--oasys-spacing-near);vertical-align:top}.ui-rce ui-button:last-child,.ui-rce img:last-child{margin-right:0}.ui-rce img{width:100%}.ui-rce ol p,.ui-rce ul p{display:inline;margin:0}form fieldset legend{margin-bottom:var(--oasys-spacing-near)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container{display:none!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-combobox,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors .input-errors-content,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .hint-container,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .hint-container{display:none!important}.ui-checkbox input,.ui-radio input,.ui-text-input input,.ui-combobox input{appearance:none;margin:0;border:none}.ui-checkbox input,.ui-radio input{cursor:pointer}.ui-checkbox,.ui-radio{--_inset: var(--oasys-spacing-near);--_radius: var(--oasys-radius-soften);--_transition_duration: calc(var(--oasys-animation-duration) * 1ms)}.ui-checkbox input,.ui-radio input{position:absolute;inset:0;border-radius:var(--oasys-radius-soften)}.ui-checkbox input.secondary,.ui-radio input.secondary{inset:unset;top:var(--_inset);--_focusSize: var(--oasys-typography-heading-label-secondary-line-height);width:var(--_focusSize);height:var(--_focusSize)}.ui-checkbox input+label,.ui-radio input+label{width:inherit;display:flex;align-items:center;gap:var(--oasys-spacing-tight)}.ui-checkbox input+label .icon-container,.ui-radio input+label .icon-container{align-self:flex-start;padding:var(--oasys-component-checkbox-icon-inset);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected);border-radius:var(--_radius)}.ui-checkbox input+label .input-hint:empty,.ui-radio input+label .input-hint:empty{display:none}.ui-checkbox input+label.primary,.ui-radio input+label.primary{padding:var(--_inset);border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-checkbox input+label.secondary,.ui-radio input+label.secondary{padding:var(--_inset) 0}.ui-checkbox input+label.secondary .icon-container,.ui-radio input+label.secondary .icon-container{background:transparent;border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)}.ui-checkbox input+label,.ui-checkbox input+label .icon-container,.ui-radio input+label,.ui-radio input+label .icon-container{transition:background-color calc(var(--_transition_duration) * 1ms),border-color calc(var(--_transition_duration) * 1ms)}.ui-checkbox input:hover+label.primary,.ui-checkbox input:checked+label.primary,.ui-radio input:hover+label.primary,.ui-radio input:checked+label.primary{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:hover+label.secondary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:hover+label.secondary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:checked+label.primary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:checked+label.primary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-border-selected);border-color:var(--oasys-color-interaction-border-selected);color:var(--oasys-color-brand-foreground-primary-on-dark)}.ui-checkbox input:checked+label.primary,.ui-radio input:checked+label.primary{border-color:var(--oasys-color-interaction-border-selected)!important}.ui-checkbox input.ng-touched.ng-invalid+label,.ui-radio input.ng-touched.ng-invalid+label{color:var(--oasys-color-system-foreground-negative)}.ui-checkbox input.ng-touched.ng-invalid+label .icon-container,.ui-radio input.ng-touched.ng-invalid+label .icon-container{border-color:var(--oasys-color-system-foreground-negative)}.ui-chip .ui-checkbox input+label .icon-container.icon--hidden,.ui-chip .ui-radio input+label .icon-container.icon--hidden{display:none}.ui-chip .ui-checkbox input+label .label--center,.ui-chip .ui-radio input+label .label--center{margin:0 auto}.ui-chip .ui-checkbox input:checked+label.primary,.ui-chip .ui-radio input:checked+label.primary{border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)!important}.oasys-focus-style,.ui-combobox div[name=combobox]:focus,.ui-combobox div[name=combobox]:focus-visible,.ui-combobox div[name=combobox]:focus-within,[tabindex]:focus-visible,[tabindex]:focus,select:focus-visible,select:focus,textarea:focus-visible,textarea:focus,input:focus-visible,input:focus,button:focus-visible,button:focus,a:focus-visible,a:focus{outline:var(--oasys-border-width-focus) solid var(--oasys-color-interaction-border-focus);outline-offset:var(--oasys-border-width-focus-offset)}a:focus:not(:focus-visible){outline:none}button:focus:not(:focus-visible){outline:none}input:focus:not(:focus-visible){outline:none}textarea:focus:not(:focus-visible){outline:none}select:focus:not(:focus-visible){outline:none}[tabindex]:focus:not(:focus-visible){outline:none}:host{display:block;width:100%}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-text-input,:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors .input-errors-content{visibility:visible!important}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .hint-container{display:none!important}.foreground-secondary-text{color:var(--oasys-color-brand-foreground-secondary)}.ui-combobox{background-color:var(--oasys-color-white);--_label-height: var(--oasys-typography-body-supporting-line-height);--_label-input-gap: var(--oasys-spacing-tiny);--_label-top-inset: var(--oasys-spacing-near);--_input-inset-top: calc(var(--_label-height) + var(--_label-input-gap) + var(--_label-top-inset));--_preface-width: var(--oasys-component-text-input-preface-width);position:relative;transition:border calc(var(--oasys-animation-duration-long) * 1ms);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-footer,.ui-combobox-header{padding:var(--oasys-spacing-tight) var(--oasys-spacing-near);text-align:center}.ui-combobox-footer{cursor:pointer;border-top:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-header{color:var(--oasys-color-brand-foreground-secondary);border-bottom:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-options{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);background-color:var(--oasys-color-white);box-shadow:0 24px 36px #2626261a;border-radius:var(--oasys-radius-soften);box-sizing:border-box;width:100%;height:auto;margin-top:var(--oasys-spacing-near);position:absolute;pointer-events:auto;outline:0;overflow:auto;transform-origin:top center;grid-template-rows:0fr;opacity:0;transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));transition:opacity var(--_ad);will-change:opacity;z-index:1000}.ui-combobox-options.expand{opacity:1}.ui-combobox-option{cursor:pointer;border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) transparent;padding:var(--oasys-spacing-near);outline:none;outline-offset:none}.ui-combobox-option:hover,.ui-combobox-option.selected{background-color:var(--oasys-color-interaction-background-selected);border-radius:var(--oasys-radius-soften)}.ui-combobox-option.focus{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-option:focus-visible{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-container .input-errors{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);display:grid;grid-template-rows:0fr;overflow:hidden;opacity:0;transform:translateY(-33%);transition:grid-template-rows var(--_ad),opacity var(--_ad),transform var(--_ad);transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));will-change:grid-template-rows,transform,opacity}.ui-combobox-container .input-errors .input-errors-content{min-height:0;visibility:hidden;transition:visibility var(--_ad)}.ui-combobox-container .input-errors .hint-container{display:block!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .hint-container{display:none!important}.ui-combobox-container:has(input:disabled) input,.ui-combobox-container:has(input:disabled) .select{background-color:none;color:var(--oasys-component-text-input-color-disabled-foreground)}.ui-combobox-container:has(input:disabled) .ui-combobox-input{background-color:var(--oasys-component-text-input-color-disabled-background)}.ui-combobox{border-radius:var(--oasys-radius-soften);width:100%}.ui-combobox input{border:none;width:100%;cursor:pointer}.ui-combobox input:focus{outline:none}.ui-combobox input,.ui-combobox .select{padding:var(--oasys-spacing-near);padding-top:var(--oasys-spacing-tiny)}.ui-combobox .label-container{padding-top:var(--oasys-spacing-near);padding-left:var(--oasys-spacing-near);width:calc(100% - var(--oasys-spacing-near) - var(--oasys-spacing-near))}.ui-combobox .label-container,.ui-combobox .label-container label{pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-combobox .icon-container{transition:all calc(var(--oasys-animation-duration-long) * 1ms) ease;transform-origin:center}.ui-combobox .icon-container:hover{transform:scale(1.1)}.ui-combobox .icon-container.expand{transform:rotate(-179.999deg)}.ui-combobox:has(.input-preface:not(:empty)){--_left-inset: calc(var(--oasys-spacing-near) + var(--_preface-width))}.ui-combobox:has(.input-preface:not(:empty)) .label-container{left:var(--_left-inset);width:calc(100% - var(--_left-inset) - var(--oasys-spacing-near))}.ui-combobox:has(.input-preface:not(:empty)) input,.ui-combobox:has(.input-preface:not(:empty)) .select{padding-left:var(--_left-inset)}.ui-combobox .input-preface{width:var(--_preface-width);height:100%;position:absolute;display:flex;justify-content:center;align-items:center;pointer-events:none;flex-direction:column;text-align:center;border-right:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox .input-preface:empty{visibility:hidden}.ui-combobox div[name=combobox]{cursor:pointer;padding-right:var(--oasys-spacing-near)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: i3.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "icon_class"] }, { kind: "directive", type: i6.OasysAutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i7.EmphasisDirective, selector: "[ui-emphasis]", inputs: ["searchText", "displayParagraph"] }] }); }
360
368
  }
361
369
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ComboboxComponent, decorators: [{
362
370
  type: Component,
@@ -366,7 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImpo
366
374
  useExisting: forwardRef(() => ComboboxComponent),
367
375
  multi: true,
368
376
  },
369
- ], template: "<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\"> \n <!-- Compbobox Options Input -->\n <div \n *ngIf=\"type==='options'\"\n #combobox\n name=\"combobox\" \n tabindex=\"0\" \n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel($event)\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\" \n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\" \n aria-owns=\"activedescendent-list\" \n aria-autocomplete=\"list\">\n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label class=\"text-body--supporting text-body--regular\" role=\"combobox-label\" [for]=\"id\">{{label}}</label>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\" \n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\">\n <ui-icon *ngIf=\"!panelOpen\" icon_name=\"chevron-down\"></ui-icon>\n <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n \n <!-- Combobox Autocomplete Input -->\n <div \n *ngIf=\"type==='autocomplete'\"\n #combobox\n name=\"combobox\" \n tabindex=\"0\" \n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\" \n aria-owns=\"activedescendent-list\" \n aria-autocomplete=\"list\">\n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label class=\"text-body--supporting text-body--regular\" role=\"combobox-label\" [for]=\"id\">{{label}}</label>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\" \n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder||''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div class=\"icon-container\" \n [aria-label]=\"'clean'\" \n (click)=\"cleanInput()\">\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\" ></ui-icon>\n </div>\n </ui-stack>\n </div>\n \n <!-- Combobox Options Panel -->\n <div *ngIf=\"panelOpen\" \n class=\"ui-combobox-options\" \n [attr.aria-expanded]=\"panelOpen\" \n role=\"listbox\" \n id=\"activedescendent-list\">\n \n <!-- Autocomplete Options Panel Header -->\n <div *ngIf=\"header && type==='autocomplete'\" \n class=\"ui-combobox-header text-body--supporting\"> \n <span>{{header}}</span>\n </div>\n \n <!-- Options list -->\n <div\n #option \n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\" \n [ngClass]=\"{'selected': selectedOption === option, 'focus': focusedOption === option }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-'+i\"\n [attr.aria-label]=\"selectedOption === option ? option[displayOptionKey] + ' is selected' : option[displayOptionKey]\"\n > \n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"tight\">\n <!-- Option display -->\n <div [value]=\"valueKey ? option[valueKey]: option.value\" [ngValue]=\"displayKey ? option[displayKey] : option.label\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tight\">\n <ui-icon *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey]) \" [icon_name]=\"iconNameKey ? option[iconNameKey] : option.icon_name\"></ui-icon>\n <ui-stack stack_gap=\"tiny\">\n <span>{{displayKey ? option[displayKey] : option.label}}</span>\n <p class=\"foreground-secondary-text\" *ngIf=\"type==='autocomplete'\"> {{subtextKey ? option[subtextKey] : option.subtext}} </p>\n </ui-stack>\n </ui-stack>\n </div>\n \n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type==='autocomplete'\"\n class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (clicked)=\"onFooterAction()\"> {{footer}} </ui-button>\n </div>\n </div>\n </div> \n <ui-stack stack_gap=\"none\">\n <!-- ERROR Messages -->\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n\n <!-- HINT Message -->\n <ui-box *ngIf=\"hint\" box_background=\"none\" box_space=\"none\" box_space_left=\"near\" box_space_right=\"near\"\n box_space_bottom=\"near\">\n <div \n class=\"input-hint text-body--supporting text-color--supporting\"\n [aria-label]=\"hint\">{{hint}}</div>\n </ui-box>\n </ui-stack>\n</ui-stack>", styles: ["html{font-size:62.5%}html,html body{font-family:var(--oasys-typography-body-body-font-family);font-weight:var(--oasys-typography-body-body-font-weight);font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-font-line-height);color:var(--oasys-color-brand-foreground-primary)}html b,html bold,html strong,html body b,html body bold,html body strong{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}html i,html body i{font-style:normal}h1,h2,h3,.text-heading,.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-family:var(--oasys-typography-heading-hero-desktop-font-family)}h4,h5,h6,.text-heading--functional,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2{font-family:var(--oasys-typography-heading-func-primary-desktop-font-family)}ui-container h1,ui-container h2,ui-container h3,ui-container h4,ui-container h5,ui-container h6,ui-container p,ui-box h1,ui-box h2,ui-box h3,ui-box h4,ui-box h5,ui-box h6,ui-box p,ui-stack h1,ui-stack h2,ui-stack h3,ui-stack h4,ui-stack h5,ui-stack h6,ui-stack p,ui-grid h1,ui-grid h2,ui-grid h3,ui-grid h4,ui-grid h5,ui-grid h6,ui-grid p{margin:0}h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-desktop-font-size);line-height:var(--oasys-typography-heading-hero-desktop-line-height);font-weight:var(--oasys-typography-heading-hero-desktop-font-weight)}@media only screen and (max-width: 767px){h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-mobile-font-size);line-height:var(--oasys-typography-heading-hero-mobile-line-height);font-weight:var(--oasys-typography-heading-hero-mobile-font-weight)}}h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-desktop-font-size);line-height:var(--oasys-typography-heading-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-mobile-font-size);line-height:var(--oasys-typography-heading-primary-mobile-line-height);font-weight:var(--oasys-typography-heading-primary-mobile-font-weight)}}h3,.text-heading--secondary{font-size:var(--oasys-typography-heading-secondary-font-size);line-height:var(--oasys-typography-heading-secondary-line-height);font-weight:var(--oasys-typography-heading-secondary-font-weight)}h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-desktop-font-size);line-height:var(--oasys-typography-heading-func-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-mobile-font-size);line-height:var(--oasys-typography-heading-func-primary-mobile-line-height)}}h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-desktop-font-size);line-height:var(--oasys-typography-heading-func-secondary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-secondary-desktop-font-weight)}@media only screen and (max-width: 767px){h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-mobile-font-size);line-height:var(--oasys-typography-heading-func-secondary-mobile-line-height);font-weight:var(--oasys-typography-heading-func-secondary-mobile-font-weight)}}label{-webkit-user-select:none;user-select:none;cursor:pointer}label,.text-label--primary{font-size:var(--oasys-typography-heading-label-primary-font-size);line-height:var(--oasys-typography-heading-label-primary-line-height);font-weight:var(--oasys-typography-heading-label-primary-font-weight)}.text-label--secondary{font-size:var(--oasys-typography-heading-label-secondary-font-size);line-height:var(--oasys-typography-heading-label-secondary-line-height);font-weight:var(--oasys-typography-heading-label-secondary-font-weight)}.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-size:var(--oasys-typography-body-expressive-font-size);line-height:var(--oasys-typography-body-expressive-line-height);font-weight:var(--oasys-typography-body-expressive-font-weight)}.text-body--hero,.ui-combobox input:-webkit-autofill:first-line,.ui-combobox .select:-webkit-autofill:first-line,.ui-rce h6,.ui-prose h6,article h6{font-size:var(--oasys-typography-body-hero-font-size);line-height:var(--oasys-typography-body-hero-line-height);font-weight:var(--oasys-typography-body-hero-font-weight)}.text-body--default,.ui-rce p{font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-line-height);font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--supporting{font-size:var(--oasys-typography-body-supporting-font-size);line-height:var(--oasys-typography-body-supporting-line-height);font-weight:var(--oasys-typography-body-supporting-body-weight)}.text-body--regular,.ui-rce h6,.ui-prose h6,article h6{font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--line-through{-webkit-text-decoration:var(--oasys-typography-body-line-through-body-text-decoration);text-decoration:var(--oasys-typography-body-line-through-body-text-decoration)}.text-body--emphasis,.ui-combobox input,.ui-combobox .select,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2,a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}.text-color--on-light{color:var(--oasys-color-brand-foreground-primary)}.text-color--on-light.text-color--supporting,.text-color--on-light .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--on-dark{color:var(--oasys-color-brand-foreground-primary-on-dark)}.text-color--on-dark.text-color--supporting,.text-color--on-dark .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary-on-dark)}.text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--error{color:var(--oasys-color-system-foreground-negative)}.text-color--highlight{color:var(--oasys-color-brand-foreground-highlight)}a{color:inherit;text-decoration:none}.text--readable-width,.ui-rce blockquote,.ui-prose blockquote,article blockquote{max-width:70ch}a,.text-link,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:none;cursor:pointer}a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{text-decoration:underline}a--paragraph,.text-link--paragraph,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:underline;font-weight:inherit}.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-small-bottom)}}.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-small-bottom)}}.ui-rce p,.ui-rce ul,.ui-rce ol,.ui-prose p,.ui-prose ul,.ui-prose ol,article p,article ul,article ol{margin-bottom:var(--oasys-prose-vertical-adjustment-paragraph-bottom)}.ui-rce p:empty,.ui-rce ul:empty,.ui-rce ol:empty,.ui-prose p:empty,.ui-prose ul:empty,.ui-prose ol:empty,article p:empty,article ul:empty,article ol:empty{display:none}.ui-rce blockquote,.ui-prose blockquote,article blockquote{padding-top:var(--oasys-prose-vertical-adjustment-blockquote-top);margin-bottom:var(--oasys-prose-vertical-adjustment-blockquote-bottom);text-align:center;margin:0 auto}.ui-rce hr,.ui-prose hr,article hr{display:block;width:100%;border:0;padding:0;margin:0;height:var(--oasys-size-unit-8);background:var(--oasys-color-brand-background-secondary);margin-top:var(--oasys-spacing-expanded);margin-bottom:var(--oasys-spacing-expanded)}.ui-rce ol,.ui-prose ol,article ol{list-style-type:decimal;list-style-position:inside}.ui-rce ul,.ui-prose ul,article ul{list-style:initial;list-style-position:inside}.ui-rce .ui-rce-embed,.ui-prose .ui-rce-embed,article .ui-rce-embed{padding-top:var(--oasys-prose-vertical-adjustment-component-top-bottom);margin-bottom:var(--oasys-prose-vertical-adjustment-component-top-bottom)}.ui-rce .ui-rce-embed ui-button a,.ui-rce .ui-rce-embed ui-button a:hover,.ui-prose .ui-rce-embed ui-button a,.ui-prose .ui-rce-embed ui-button a:hover,article .ui-rce-embed ui-button a,article .ui-rce-embed ui-button a:hover{text-decoration:none}.ui-rce>ui-box .ui-box-content>*:first-child{padding-top:0}.ui-rce>ui-box .ui-box-content>*:last-child{margin-bottom:0}.ui-rce .ui-rce-instance:last-of-type{padding-bottom:var(--oasys-spacing-expanded)}.ui-rce ui-button,.ui-rce img{display:inline-block;margin:0;margin-top:var(--oasys-spacing-near);margin-right:var(--oasys-spacing-near);vertical-align:top}.ui-rce ui-button:last-child,.ui-rce img:last-child{margin-right:0}.ui-rce img{width:100%}.ui-rce ol p,.ui-rce ul p{display:inline;margin:0}form fieldset legend{margin-bottom:var(--oasys-spacing-near)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container{display:none!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-combobox,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors .input-errors-content,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .hint-container,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .hint-container{display:none!important}.ui-checkbox input,.ui-radio input,.ui-text-input input,.ui-combobox input{appearance:none;margin:0;border:none}.ui-checkbox input,.ui-radio input{cursor:pointer}.ui-checkbox,.ui-radio{--_inset: var(--oasys-spacing-near);--_radius: var(--oasys-radius-soften);--_transition_duration: calc(var(--oasys-animation-duration) * 1ms)}.ui-checkbox input,.ui-radio input{position:absolute;inset:0;border-radius:var(--oasys-radius-soften)}.ui-checkbox input.secondary,.ui-radio input.secondary{inset:unset;top:var(--_inset);--_focusSize: var(--oasys-typography-heading-label-secondary-line-height);width:var(--_focusSize);height:var(--_focusSize)}.ui-checkbox input+label,.ui-radio input+label{width:inherit;display:flex;align-items:center;gap:var(--oasys-spacing-tight)}.ui-checkbox input+label .icon-container,.ui-radio input+label .icon-container{align-self:flex-start;padding:var(--oasys-component-checkbox-icon-inset);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected);border-radius:var(--_radius)}.ui-checkbox input+label .input-hint:empty,.ui-radio input+label .input-hint:empty{display:none}.ui-checkbox input+label.primary,.ui-radio input+label.primary{padding:var(--_inset);border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-checkbox input+label.secondary,.ui-radio input+label.secondary{padding:var(--_inset) 0}.ui-checkbox input+label.secondary .icon-container,.ui-radio input+label.secondary .icon-container{background:transparent;border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)}.ui-checkbox input+label,.ui-checkbox input+label .icon-container,.ui-radio input+label,.ui-radio input+label .icon-container{transition:background-color calc(var(--_transition_duration) * 1ms),border-color calc(var(--_transition_duration) * 1ms)}.ui-checkbox input:hover+label.primary,.ui-checkbox input:checked+label.primary,.ui-radio input:hover+label.primary,.ui-radio input:checked+label.primary{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:hover+label.secondary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:hover+label.secondary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:checked+label.primary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:checked+label.primary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-border-selected);border-color:var(--oasys-color-interaction-border-selected);color:var(--oasys-color-brand-foreground-primary-on-dark)}.ui-checkbox input:checked+label.primary,.ui-radio input:checked+label.primary{border-color:var(--oasys-color-interaction-border-selected)!important}.ui-checkbox input.ng-touched.ng-invalid+label,.ui-radio input.ng-touched.ng-invalid+label{color:var(--oasys-color-system-foreground-negative)}.ui-checkbox input.ng-touched.ng-invalid+label .icon-container,.ui-radio input.ng-touched.ng-invalid+label .icon-container{border-color:var(--oasys-color-system-foreground-negative)}.ui-chip .ui-checkbox input+label .icon-container.icon--hidden,.ui-chip .ui-radio input+label .icon-container.icon--hidden{display:none}.ui-chip .ui-checkbox input+label .label--center,.ui-chip .ui-radio input+label .label--center{margin:0 auto}.ui-chip .ui-checkbox input:checked+label.primary,.ui-chip .ui-radio input:checked+label.primary{border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)!important}.oasys-focus-style,.ui-combobox div[name=combobox]:focus,.ui-combobox div[name=combobox]:focus-visible,.ui-combobox div[name=combobox]:focus-within,[tabindex]:focus-visible,[tabindex]:focus,select:focus-visible,select:focus,textarea:focus-visible,textarea:focus,input:focus-visible,input:focus,button:focus-visible,button:focus,a:focus-visible,a:focus{outline:var(--oasys-border-width-focus) solid var(--oasys-color-interaction-border-focus);outline-offset:var(--oasys-border-width-focus-offset)}a:focus:not(:focus-visible){outline:none}button:focus:not(:focus-visible){outline:none}input:focus:not(:focus-visible){outline:none}textarea:focus:not(:focus-visible){outline:none}select:focus:not(:focus-visible){outline:none}[tabindex]:focus:not(:focus-visible){outline:none}:host{display:block;width:100%}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-text-input,:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors .input-errors-content{visibility:visible!important}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .hint-container{display:none!important}.foreground-secondary-text{color:var(--oasys-color-brand-foreground-secondary)}.ui-combobox{background-color:var(--oasys-color-white);--_label-height: var(--oasys-typography-body-supporting-line-height);--_label-input-gap: var(--oasys-spacing-tiny);--_label-top-inset: var(--oasys-spacing-near);--_input-inset-top: calc(var(--_label-height) + var(--_label-input-gap) + var(--_label-top-inset));--_preface-width: var(--oasys-component-text-input-preface-width);position:relative;transition:border calc(var(--oasys-animation-duration-long) * 1ms);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-footer,.ui-combobox-header{padding:var(--oasys-spacing-tight) var(--oasys-spacing-near);text-align:center}.ui-combobox-footer{cursor:pointer;border-top:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-header{color:var(--oasys-color-brand-foreground-secondary);border-bottom:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-options{background-color:var(--oasys-color-white);box-shadow:0 24px 36px #2626261a;border-radius:var(--oasys-radius-soften);box-sizing:border-box;width:100%;height:auto;margin-top:var(--oasys-spacing-near);position:absolute;pointer-events:auto;outline:0;overflow:auto;transform-origin:top center;z-index:1000}.ui-combobox-option{cursor:pointer;border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) transparent;padding:var(--oasys-spacing-near);outline:none;outline-offset:none}.ui-combobox-option:hover,.ui-combobox-option.selected{background-color:var(--oasys-color-interaction-background-selected);border-radius:var(--oasys-radius-soften)}.ui-combobox-option.focus{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-option:focus-visible{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-container .input-errors{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);display:grid;grid-template-rows:0fr;overflow:hidden;opacity:0;transform:translateY(-33%);transition:grid-template-rows var(--_ad),opacity var(--_ad),transform var(--_ad);transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));will-change:grid-template-rows,transform,opacity}.ui-combobox-container .input-errors .input-errors-content{min-height:0;visibility:hidden;transition:visibility var(--_ad)}.ui-combobox-container .input-errors .hint-container{display:block!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .hint-container{display:none!important}.ui-combobox-container:has(input:disabled) input,.ui-combobox-container:has(input:disabled) .select{background-color:none;color:var(--oasys-component-text-input-color-disabled-foreground)}.ui-combobox-container:has(input:disabled) .ui-combobox-input{background-color:var(--oasys-component-text-input-color-disabled-background)}.ui-combobox{border-radius:var(--oasys-radius-soften);width:100%}.ui-combobox input{border:none;width:100%;cursor:pointer}.ui-combobox input:focus{outline:none}.ui-combobox input,.ui-combobox .select{padding:var(--oasys-spacing-near);padding-top:var(--oasys-spacing-tiny)}.ui-combobox .label-container{padding-top:var(--oasys-spacing-near);padding-left:var(--oasys-spacing-near);width:calc(100% - var(--oasys-spacing-near) - var(--oasys-spacing-near))}.ui-combobox .label-container,.ui-combobox .label-container label{pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-combobox .icon-container{padding-right:var(--oasys-spacing-near)}.ui-combobox:has(.input-preface:not(:empty)){--_left-inset: calc(var(--oasys-spacing-near) + var(--_preface-width))}.ui-combobox:has(.input-preface:not(:empty)) .label-container{left:var(--_left-inset);width:calc(100% - var(--_left-inset) - var(--oasys-spacing-near))}.ui-combobox:has(.input-preface:not(:empty)) input,.ui-combobox:has(.input-preface:not(:empty)) .select{padding-left:var(--_left-inset)}.ui-combobox .input-preface{width:var(--_preface-width);height:100%;position:absolute;display:flex;justify-content:center;align-items:center;pointer-events:none;flex-direction:column;text-align:center;border-right:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox .input-preface:empty{visibility:hidden}.ui-combobox div[name=combobox]{cursor:pointer}\n"] }]
377
+ ], template: "<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\">\n <!-- Compbobox Options Input -->\n <div\n *ngIf=\"type === 'options'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel($event)\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\" [ngClass]=\"{ expand: panelOpen }\">\n <ui-icon icon_name=\"chevron-down\"></ui-icon>\n <!-- <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon> -->\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Autocomplete Input -->\n <div\n *ngIf=\"type === 'autocomplete'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder || ''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div\n class=\"icon-container\"\n [aria-label]=\"'clean'\"\n (click)=\"cleanInput()\"\n >\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Options Panel -->\n <div\n *ngIf=\"panelOpen\"\n class=\"ui-combobox-options\"\n [ngClass]=\"{ expand: panelOpen }\"\n [attr.aria-expanded]=\"panelOpen\"\n role=\"listbox\"\n id=\"activedescendent-list\"\n >\n <!-- Autocomplete Options Panel Header -->\n <div\n *ngIf=\"header && type === 'autocomplete'\"\n class=\"ui-combobox-header text-body--supporting\"\n >\n <span>{{ header }}</span>\n </div>\n\n <!-- Options list -->\n <div\n #option\n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\"\n [ngClass]=\"{\n selected: selectedOption === option,\n focus: focusedOption === option\n }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-' + i\"\n [attr.aria-label]=\"\n selectedOption === option\n ? option[displayOptionKey] + ' is selected'\n : option[displayOptionKey]\n \"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <!-- Option display -->\n <div\n [value]=\"valueKey ? option[valueKey] : option.value\"\n [ngValue]=\"displayKey ? option[displayKey] : option.label\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-icon\n *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey])\"\n [icon_name]=\"\n iconNameKey ? option[iconNameKey] : option.icon_name\n \"\n ></ui-icon>\n\n <!-- Display options label -->\n <span *ngIf=\"type === 'options'\">{{\n option[displayOptionKey]\n }}</span>\n\n <!-- Display autocomplete option information and emphasis-->\n <ui-stack stack_gap=\"tiny\" *ngIf=\"type === 'autocomplete'\">\n <span\n ui-emphasis\n [searchText]=\"textValue\"\n [displayParagraph]=\"option[displayOptionKey]\"\n >\n {{ displayParagraph }}\n </span>\n <p\n class=\"foreground-secondary-text\"\n *ngIf=\"type === 'autocomplete'\"\n >\n {{ option[subtextOptionKey] }}\n </p>\n </ui-stack>\n </ui-stack>\n </div>\n\n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type === 'autocomplete'\" class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (click)=\"onFooterAction()\">\n {{ footer }}\n </ui-button>\n </div>\n </div>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n <ui-box\n class=\"hint-container\"\n *ngIf=\"hint\"\n box_background=\"none\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n >\n {{ hint }}\n </div>\n </ui-box>\n </ui-stack>\n</ui-stack>\n", styles: ["html{font-size:62.5%}html,html body{font-family:var(--oasys-typography-body-body-font-family);font-weight:var(--oasys-typography-body-body-font-weight);font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-font-line-height);color:var(--oasys-color-brand-foreground-primary)}html b,html bold,html strong,html body b,html body bold,html body strong{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}html i,html body i{font-style:normal}h1,h2,h3,.text-heading,.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-family:var(--oasys-typography-heading-hero-desktop-font-family)}h4,h5,h6,.text-heading--functional,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2{font-family:var(--oasys-typography-heading-func-primary-desktop-font-family)}ui-container h1,ui-container h2,ui-container h3,ui-container h4,ui-container h5,ui-container h6,ui-container p,ui-box h1,ui-box h2,ui-box h3,ui-box h4,ui-box h5,ui-box h6,ui-box p,ui-stack h1,ui-stack h2,ui-stack h3,ui-stack h4,ui-stack h5,ui-stack h6,ui-stack p,ui-grid h1,ui-grid h2,ui-grid h3,ui-grid h4,ui-grid h5,ui-grid h6,ui-grid p{margin:0}h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-desktop-font-size);line-height:var(--oasys-typography-heading-hero-desktop-line-height);font-weight:var(--oasys-typography-heading-hero-desktop-font-weight)}@media only screen and (max-width: 767px){h1:not(.seo-h1),.text-heading--hero{font-size:var(--oasys-typography-heading-hero-mobile-font-size);line-height:var(--oasys-typography-heading-hero-mobile-line-height);font-weight:var(--oasys-typography-heading-hero-mobile-font-weight)}}h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-desktop-font-size);line-height:var(--oasys-typography-heading-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h2,.text-heading--primary{font-size:var(--oasys-typography-heading-primary-mobile-font-size);line-height:var(--oasys-typography-heading-primary-mobile-line-height);font-weight:var(--oasys-typography-heading-primary-mobile-font-weight)}}h3,.text-heading--secondary{font-size:var(--oasys-typography-heading-secondary-font-size);line-height:var(--oasys-typography-heading-secondary-line-height);font-weight:var(--oasys-typography-heading-secondary-font-weight)}h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-desktop-font-size);line-height:var(--oasys-typography-heading-func-primary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-primary-desktop-font-weight)}@media only screen and (max-width: 767px){h4,.text-heading--functional--primary,.ui-rce h2,.ui-prose h2,article h2{font-size:var(--oasys-typography-heading-func-primary-mobile-font-size);line-height:var(--oasys-typography-heading-func-primary-mobile-line-height)}}h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-desktop-font-size);line-height:var(--oasys-typography-heading-func-secondary-desktop-line-height);font-weight:var(--oasys-typography-heading-func-secondary-desktop-font-weight)}@media only screen and (max-width: 767px){h5,.text-heading--functional--secondary,.ui-rce h3,.ui-prose h3,article h3{font-size:var(--oasys-typography-heading-func-secondary-mobile-font-size);line-height:var(--oasys-typography-heading-func-secondary-mobile-line-height);font-weight:var(--oasys-typography-heading-func-secondary-mobile-font-weight)}}label{-webkit-user-select:none;user-select:none;cursor:pointer}label,.text-label--primary{font-size:var(--oasys-typography-heading-label-primary-font-size);line-height:var(--oasys-typography-heading-label-primary-line-height);font-weight:var(--oasys-typography-heading-label-primary-font-weight)}.text-label--secondary{font-size:var(--oasys-typography-heading-label-secondary-font-size);line-height:var(--oasys-typography-heading-label-secondary-line-height);font-weight:var(--oasys-typography-heading-label-secondary-font-weight)}.text-body--expressive,.ui-rce blockquote,.ui-prose blockquote,article blockquote{font-size:var(--oasys-typography-body-expressive-font-size);line-height:var(--oasys-typography-body-expressive-line-height);font-weight:var(--oasys-typography-body-expressive-font-weight)}.text-body--hero,.ui-combobox input:-webkit-autofill:first-line,.ui-combobox .select:-webkit-autofill:first-line,.ui-rce h6,.ui-prose h6,article h6{font-size:var(--oasys-typography-body-hero-font-size);line-height:var(--oasys-typography-body-hero-line-height);font-weight:var(--oasys-typography-body-hero-font-weight)}.text-body--default,.ui-rce p{font-size:var(--oasys-typography-body-body-font-size);line-height:var(--oasys-typography-body-body-line-height);font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--supporting{font-size:var(--oasys-typography-body-supporting-font-size);line-height:var(--oasys-typography-body-supporting-line-height);font-weight:var(--oasys-typography-body-supporting-body-weight)}.text-body--regular,.ui-rce h6,.ui-prose h6,article h6{font-weight:var(--oasys-typography-body-body-font-weight)}.text-body--line-through{-webkit-text-decoration:var(--oasys-typography-body-line-through-body-text-decoration);text-decoration:var(--oasys-typography-body-line-through-body-text-decoration)}.text-body--emphasis,.ui-combobox input,.ui-combobox .select,.ui-rce h3,.ui-prose h3,article h3,.ui-rce h2,.ui-prose h2,article h2,a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{font-weight:var(--oasys-typography-body-emphasis-hero-font-weight)}.text-color--on-light{color:var(--oasys-color-brand-foreground-primary)}.text-color--on-light.text-color--supporting,.text-color--on-light .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--on-dark{color:var(--oasys-color-brand-foreground-primary-on-dark)}.text-color--on-dark.text-color--supporting,.text-color--on-dark .text-color--supporting{color:var(--oasys-color-brand-foreground-secondary-on-dark)}.text-color--supporting{color:var(--oasys-color-brand-foreground-secondary)}.text-color--error{color:var(--oasys-color-system-foreground-negative)}.text-color--highlight{color:var(--oasys-color-brand-foreground-highlight)}a{color:inherit;text-decoration:none}.text--readable-width,.ui-rce blockquote,.ui-prose blockquote,article blockquote{max-width:70ch}a,.text-link,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:none;cursor:pointer}a--standalone,.text-link--standalone,.ui-rce .ui-rce-embed a,.ui-rce .ui-rce-embed a:hover,.ui-prose .ui-rce-embed a,.ui-prose .ui-rce-embed a:hover,article .ui-rce-embed a,article .ui-rce-embed a:hover{text-decoration:underline}a--paragraph,.text-link--paragraph,.ui-rce a,.ui-rce a:hover,.ui-prose a,.ui-prose a:hover,article a,article a:hover{text-decoration:underline;font-weight:inherit}.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h2,.ui-prose h2,article h2{padding-top:var(--oasys-prose-vertical-adjustment-heading-primary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-primary-small-bottom)}}.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-large-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-large-bottom)}@media only screen and (max-width: 767px){.ui-rce h3,.ui-prose h3,article h3{padding-top:var(--oasys-prose-vertical-adjustment-heading-secondary-small-top);margin-bottom:var(--oasys-prose-vertical-adjustment-heading-secondary-small-bottom)}}.ui-rce p,.ui-rce ul,.ui-rce ol,.ui-prose p,.ui-prose ul,.ui-prose ol,article p,article ul,article ol{margin-bottom:var(--oasys-prose-vertical-adjustment-paragraph-bottom)}.ui-rce p:empty,.ui-rce ul:empty,.ui-rce ol:empty,.ui-prose p:empty,.ui-prose ul:empty,.ui-prose ol:empty,article p:empty,article ul:empty,article ol:empty{display:none}.ui-rce blockquote,.ui-prose blockquote,article blockquote{padding-top:var(--oasys-prose-vertical-adjustment-blockquote-top);margin-bottom:var(--oasys-prose-vertical-adjustment-blockquote-bottom);text-align:center;margin:0 auto}.ui-rce hr,.ui-prose hr,article hr{display:block;width:100%;border:0;padding:0;margin:0;height:var(--oasys-size-unit-8);background:var(--oasys-color-brand-background-secondary);margin-top:var(--oasys-spacing-expanded);margin-bottom:var(--oasys-spacing-expanded)}.ui-rce ol,.ui-prose ol,article ol{list-style-type:decimal;list-style-position:inside}.ui-rce ul,.ui-prose ul,article ul{list-style:initial;list-style-position:inside}.ui-rce .ui-rce-embed,.ui-prose .ui-rce-embed,article .ui-rce-embed{padding-top:var(--oasys-prose-vertical-adjustment-component-top-bottom);margin-bottom:var(--oasys-prose-vertical-adjustment-component-top-bottom)}.ui-rce .ui-rce-embed ui-button a,.ui-rce .ui-rce-embed ui-button a:hover,.ui-prose .ui-rce-embed ui-button a,.ui-prose .ui-rce-embed ui-button a:hover,article .ui-rce-embed ui-button a,article .ui-rce-embed ui-button a:hover{text-decoration:none}.ui-rce>ui-box .ui-box-content>*:first-child{padding-top:0}.ui-rce>ui-box .ui-box-content>*:last-child{margin-bottom:0}.ui-rce .ui-rce-instance:last-of-type{padding-bottom:var(--oasys-spacing-expanded)}.ui-rce ui-button,.ui-rce img{display:inline-block;margin:0;margin-top:var(--oasys-spacing-near);margin-right:var(--oasys-spacing-near);vertical-align:top}.ui-rce ui-button:last-child,.ui-rce img:last-child{margin-right:0}.ui-rce img{width:100%}.ui-rce ol p,.ui-rce ul p{display:inline;margin:0}form fieldset legend{margin-bottom:var(--oasys-spacing-near)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-text-input,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty .ui-text-input-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container,form.ng-dirty .ui-combobox-container:has(input.ng-invalid.ng-input-did-change:not(:focus)) .hint-container{display:none!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .ui-combobox,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-text-input,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .input-errors .input-errors-content,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .input-errors .input-errors-content{visibility:visible!important}form.ng-dirty.ng-submitted .ui-text-input-container:has(input.ng-invalid) .hint-container,form.ng-dirty.ng-submitted .ui-combobox-container:has(input.ng-invalid) .hint-container{display:none!important}.ui-checkbox input,.ui-radio input,.ui-text-input input,.ui-combobox input{appearance:none;margin:0;border:none}.ui-checkbox input,.ui-radio input{cursor:pointer}.ui-checkbox,.ui-radio{--_inset: var(--oasys-spacing-near);--_radius: var(--oasys-radius-soften);--_transition_duration: calc(var(--oasys-animation-duration) * 1ms)}.ui-checkbox input,.ui-radio input{position:absolute;inset:0;border-radius:var(--oasys-radius-soften)}.ui-checkbox input.secondary,.ui-radio input.secondary{inset:unset;top:var(--_inset);--_focusSize: var(--oasys-typography-heading-label-secondary-line-height);width:var(--_focusSize);height:var(--_focusSize)}.ui-checkbox input+label,.ui-radio input+label{width:inherit;display:flex;align-items:center;gap:var(--oasys-spacing-tight)}.ui-checkbox input+label .icon-container,.ui-radio input+label .icon-container{align-self:flex-start;padding:var(--oasys-component-checkbox-icon-inset);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected);border-radius:var(--_radius)}.ui-checkbox input+label .input-hint:empty,.ui-radio input+label .input-hint:empty{display:none}.ui-checkbox input+label.primary,.ui-radio input+label.primary{padding:var(--_inset);border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-checkbox input+label.secondary,.ui-radio input+label.secondary{padding:var(--_inset) 0}.ui-checkbox input+label.secondary .icon-container,.ui-radio input+label.secondary .icon-container{background:transparent;border-radius:var(--_radius);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)}.ui-checkbox input+label,.ui-checkbox input+label .icon-container,.ui-radio input+label,.ui-radio input+label .icon-container{transition:background-color calc(var(--_transition_duration) * 1ms),border-color calc(var(--_transition_duration) * 1ms)}.ui-checkbox input:hover+label.primary,.ui-checkbox input:checked+label.primary,.ui-radio input:hover+label.primary,.ui-radio input:checked+label.primary{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:hover+label.secondary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:hover+label.secondary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-background-selected)}.ui-checkbox input:checked+label.primary .icon-container,.ui-checkbox input:checked+label.secondary .icon-container,.ui-radio input:checked+label.primary .icon-container,.ui-radio input:checked+label.secondary .icon-container{background:var(--oasys-color-interaction-border-selected);border-color:var(--oasys-color-interaction-border-selected);color:var(--oasys-color-brand-foreground-primary-on-dark)}.ui-checkbox input:checked+label.primary,.ui-radio input:checked+label.primary{border-color:var(--oasys-color-interaction-border-selected)!important}.ui-checkbox input.ng-touched.ng-invalid+label,.ui-radio input.ng-touched.ng-invalid+label{color:var(--oasys-color-system-foreground-negative)}.ui-checkbox input.ng-touched.ng-invalid+label .icon-container,.ui-radio input.ng-touched.ng-invalid+label .icon-container{border-color:var(--oasys-color-system-foreground-negative)}.ui-chip .ui-checkbox input+label .icon-container.icon--hidden,.ui-chip .ui-radio input+label .icon-container.icon--hidden{display:none}.ui-chip .ui-checkbox input+label .label--center,.ui-chip .ui-radio input+label .label--center{margin:0 auto}.ui-chip .ui-checkbox input:checked+label.primary,.ui-chip .ui-radio input:checked+label.primary{border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selected)!important}.oasys-focus-style,.ui-combobox div[name=combobox]:focus,.ui-combobox div[name=combobox]:focus-visible,.ui-combobox div[name=combobox]:focus-within,[tabindex]:focus-visible,[tabindex]:focus,select:focus-visible,select:focus,textarea:focus-visible,textarea:focus,input:focus-visible,input:focus,button:focus-visible,button:focus,a:focus-visible,a:focus{outline:var(--oasys-border-width-focus) solid var(--oasys-color-interaction-border-focus);outline-offset:var(--oasys-border-width-focus-offset)}a:focus:not(:focus-visible){outline:none}button:focus:not(:focus-visible){outline:none}input:focus:not(:focus-visible){outline:none}textarea:focus:not(:focus-visible){outline:none}select:focus:not(:focus-visible){outline:none}[tabindex]:focus:not(:focus-visible){outline:none}:host{display:block;width:100%}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-text-input,:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .input-errors .input-errors-content{visibility:visible!important}:host.ng-touched.ng-dirty.ng-invalid:not(:focus) .ui-combobox-container .hint-container{display:none!important}.foreground-secondary-text{color:var(--oasys-color-brand-foreground-secondary)}.ui-combobox{background-color:var(--oasys-color-white);--_label-height: var(--oasys-typography-body-supporting-line-height);--_label-input-gap: var(--oasys-spacing-tiny);--_label-top-inset: var(--oasys-spacing-near);--_input-inset-top: calc(var(--_label-height) + var(--_label-input-gap) + var(--_label-top-inset));--_preface-width: var(--oasys-component-text-input-preface-width);position:relative;transition:border calc(var(--oasys-animation-duration-long) * 1ms);border:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-footer,.ui-combobox-header{padding:var(--oasys-spacing-tight) var(--oasys-spacing-near);text-align:center}.ui-combobox-footer{cursor:pointer;border-top:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-header{color:var(--oasys-color-brand-foreground-secondary);border-bottom:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox-options{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);background-color:var(--oasys-color-white);box-shadow:0 24px 36px #2626261a;border-radius:var(--oasys-radius-soften);box-sizing:border-box;width:100%;height:auto;margin-top:var(--oasys-spacing-near);position:absolute;pointer-events:auto;outline:0;overflow:auto;transform-origin:top center;grid-template-rows:0fr;opacity:0;transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));transition:opacity var(--_ad);will-change:opacity;z-index:1000}.ui-combobox-options.expand{opacity:1}.ui-combobox-option{cursor:pointer;border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) transparent;padding:var(--oasys-spacing-near);outline:none;outline-offset:none}.ui-combobox-option:hover,.ui-combobox-option.selected{background-color:var(--oasys-color-interaction-background-selected);border-radius:var(--oasys-radius-soften)}.ui-combobox-option.focus{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-option:focus-visible{border-left:var(--oasys-border-width-focus-offset) var(--oasys-component-box-border-style-solid) var(--oasys-color-interaction-border-focus)}.ui-combobox-container .input-errors{--_ad: calc(var(--oasys-animation-duration-long) * 1ms);display:grid;grid-template-rows:0fr;overflow:hidden;opacity:0;transform:translateY(-33%);transition:grid-template-rows var(--_ad),opacity var(--_ad),transform var(--_ad);transition-timing-function:cubic-bezier(var(--oasys-animation-timing-function-soft));will-change:grid-template-rows,transform,opacity}.ui-combobox-container .input-errors .input-errors-content{min-height:0;visibility:hidden;transition:visibility var(--_ad)}.ui-combobox-container .input-errors .hint-container{display:block!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .ui-combobox,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-text-input,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .ui-combobox{border:var(--oasys-border-width-primary) solid var(--oasys-color-system-foreground-negative)}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors{grid-template-rows:1fr;transform:translateY(0);opacity:1}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .input-errors .input-errors-content,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .input-errors .input-errors-content{visibility:visible!important}.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty.ng-input-did-change:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched.ng-dirty:not(:focus)) .hint-container,.ui-combobox-container:has(.ng-invalid.ng-touched:not(:focus)) .hint-container{display:none!important}.ui-combobox-container:has(input:disabled) input,.ui-combobox-container:has(input:disabled) .select{background-color:none;color:var(--oasys-component-text-input-color-disabled-foreground)}.ui-combobox-container:has(input:disabled) .ui-combobox-input{background-color:var(--oasys-component-text-input-color-disabled-background)}.ui-combobox{border-radius:var(--oasys-radius-soften);width:100%}.ui-combobox input{border:none;width:100%;cursor:pointer}.ui-combobox input:focus{outline:none}.ui-combobox input,.ui-combobox .select{padding:var(--oasys-spacing-near);padding-top:var(--oasys-spacing-tiny)}.ui-combobox .label-container{padding-top:var(--oasys-spacing-near);padding-left:var(--oasys-spacing-near);width:calc(100% - var(--oasys-spacing-near) - var(--oasys-spacing-near))}.ui-combobox .label-container,.ui-combobox .label-container label{pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-combobox .icon-container{transition:all calc(var(--oasys-animation-duration-long) * 1ms) ease;transform-origin:center}.ui-combobox .icon-container:hover{transform:scale(1.1)}.ui-combobox .icon-container.expand{transform:rotate(-179.999deg)}.ui-combobox:has(.input-preface:not(:empty)){--_left-inset: calc(var(--oasys-spacing-near) + var(--_preface-width))}.ui-combobox:has(.input-preface:not(:empty)) .label-container{left:var(--_left-inset);width:calc(100% - var(--_left-inset) - var(--oasys-spacing-near))}.ui-combobox:has(.input-preface:not(:empty)) input,.ui-combobox:has(.input-preface:not(:empty)) .select{padding-left:var(--_left-inset)}.ui-combobox .input-preface{width:var(--_preface-width);height:100%;position:absolute;display:flex;justify-content:center;align-items:center;pointer-events:none;flex-direction:column;text-align:center;border-right:var(--oasys-border-width-primary) solid var(--oasys-color-interaction-border-selectable)}.ui-combobox .input-preface:empty{visibility:hidden}.ui-combobox div[name=combobox]{cursor:pointer;padding-right:var(--oasys-spacing-near)}\n"] }]
370
378
  }], ctorParameters: function () { return [{ type: Document, decorators: [{
371
379
  type: Inject,
372
380
  args: [DOCUMENT]
@@ -433,4 +441,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImpo
433
441
  type: HostListener,
434
442
  args: ['document:click', ['$event.target']]
435
443
  }] } });
436
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBRVQsWUFBWSxFQUdaLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBbUJ4QixNQUFNLE9BQU8saUJBQWlCO0lBd0M1QixnREFBZ0Q7SUFDaEQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUdELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FB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S0FBSyxFQUFDO2dCQUNFLFFBQVE7c0JBQWpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVFLFVBQVU7c0JBQW5DLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVFLFdBQVc7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVFLFFBQVE7c0JBQWpDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVFLFVBQVU7c0JBQW5DLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUNFLFdBQVc7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVFLFdBQVc7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO2dCQUVkLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQW9EUCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJNUMsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBR25CLFdBQVc7c0JBQWxDLFlBQVk7dUJBQUMsUUFBUTtnQkFjZixPQUFPO3NCQUxiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tYm9ib3hPcHRpb24sIENvbWJvYm94VHlwZSB9IGZyb20gJy4vY29tYm9ib3gnO1xuXG5cbmltcG9ydCB7IEljb25OYW1lcyB9IGZyb20gJy4uLy4uL2ljb24vaWNvbic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktY29tYm9ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21ib2JveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbWJvYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Q29tcG9uZW50XG4gIGltcGxlbWVudHMgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogQ29tYm9ib3hUeXBlID0gJ29wdGlvbnMnO1xuICBASW5wdXQoKSBvcHRpb25zOiBDb21ib2JveE9wdGlvbltdIHwgdW5rbm93bltdID0gW11cbiAgQElucHV0KCkgb3B0aW9uYWw6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IGZhbHNlfSkgaGludD86IHN0cmluZztcbiAgQElucHV0KHtyZXF1aXJlZDogZmFsc2V9KSBoZWFkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCh7cmVxdWlyZWQ6IGZhbHNlfSkgZm9vdGVyPzogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiBmYWxzZX0pIGF1dG9mb2N1cz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHtyZXF1aXJlZDogZmFsc2V9KSBkaXNhYmxlZD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHtyZXF1aXJlZDogZmFsc2V9KSBzZWxlY3RlZD86IENvbWJvYm94T3B0aW9uIHwgdW5rbm93bjtcbiAgLy8gS2V5IHZhbHVlIGZyb20gb3B0aW9ucyB0byBiZSBkaXNwbGF5ZWQgYXMgb3B0aW9uIGxhYmVsXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IGZhbHNlfSkgZGlzcGxheUtleT86IHN0cmluZztcbiAgLy8gS2V5IHZhbHVlIGZyb20gb3B0aW9ucyB0byBiZSB1c2VkIGFzIGljb24gaW4gb3B0aW9uIGxhYmVsXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IGZhbHNlfSkgaWNvbk5hbWVLZXk/OiBzdHJpbmc7XG4gIC8vIEtleSB2YWx1ZSBmcm9tIG9wdGlvbnMgYmUgYmUgdmFsdWVcbiAgQElucHV0KHtyZXF1aXJlZDogZmFsc2V9KSB2YWx1ZUtleT86IHN0cmluZztcbiAgLy8gQXZhaWxhYmxlIGZvciBBdXRvY29tcGxldGVcbiAgQElucHV0KHtyZXF1aXJlZDogZmFsc2V9KSBzdWJ0ZXh0S2V5Pzogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiBmYWxzZX0pIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAvLyBXaWxsIG9wZW4gdGhlIGxpc3Qgb2Ygb3B0aW9ucyBvbiBpbml0IFxuICBASW5wdXQoe3JlcXVpcmVkOiBmYWxzZX0pIHNob3dPcHRpb25zID0gZmFsc2U7XG4gIFxuICBAT3V0cHV0KCkgZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaWRTZWFyY2g6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRpZEVkaXQ6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xuICBpbnB1dERpZENoYW5nZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBvbmx5IHNob3cgdmFsZGlhdGlvbiBhZnRlciBhIGNoYW5nZSBldmVudCAoaWUuIGJsdXIpXG4gIGRpc3BsYXlPcHRpb25zOiBDb21ib2JveE9wdGlvbltdIHwgdW5rbm93bltdID0gW11cbiAgcHJpdmF0ZSBfcGFuZWxPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uOiBDb21ib2JveE9wdGlvbiB8IHVua25vd247XG4gIHByaXZhdGUgX2ZvY3VzZWRPcHRpb246IENvbWJvYm94T3B0aW9uIHwgdW5rbm93bjtcbiAgcHJpdmF0ZSBfZm9jdXNlZE9wdGlvbklkOiBudW1iZXI7XG5cbiAgaWQ6IHN0cmluZyB8IG51bWJlcjtcblxuICAvKiogV2hldGhlciBvciBub3QgdGhlIG92ZXJsYXkgcGFuZWwgaXMgb3Blbi4gKi9cbiAgZ2V0IHBhbmVsT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxPcGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdGVkIG9wdGlvblxuICAgKi9cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uKCk6IENvbWJvYm94T3B0aW9uIHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9uIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlZCBPcHRpb25cbiAgICovXG4gIGdldCBmb2N1c2VkT3B0aW9uKCk6IENvbWJvYm94T3B0aW9uIHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRPcHRpb24gfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGlkIG9mIHRoZSBmb2N1c2VkIG9wdGlvblxuICAgKi9cbiAgZ2V0IGZvY3VzZWRJZCgpOiBudW1iZXJ7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRPcHRpb25JZDtcbiAgfVxuXG5cbiAgZ2V0IHZhbHVlT3B0aW9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVLZXk/IHRoaXMudmFsdWVLZXkgOiAndmFsdWUnO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlPcHRpb25LZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5S2V5PyB0aGlzLmRpc3BsYXlLZXkgOiAnbGFiZWwnO1xuICB9XG5cbiAgZ2V0IHN1YnRleHRPcHRpb25LZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdWJ0ZXh0S2V5PyB0aGlzLnN1YnRleHRLZXkgOiAnc3VidGV4dCc7XG4gIH1cblxuICBAVmlld0NoaWxkKCd0ZXh0aW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgdGV4dElucHV0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjsgIFxuICBcbiAgQFZpZXdDaGlsZCgnY29tYm9ib3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY29tYm9ib3g6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ29wdGlvbicpIG9wdGlvbnNMaXN0OlF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7IH1cblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG4gIFxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuXG4gIC8qKlxuICAgKiBDbGljayBvdXRzaWRlIGNvbWJvYm94IGNsb3NlIHRoZSBwYW5lbCBcbiAgICovXG4gIHB1YmxpYyBvbkNsaWNrKHRhcmdldEVsZW1lbnQ6IE5vZGUpOiB2b2lkIHtcbiAgICBpZih0aGlzLnBhbmVsT3Blbil7XG4gICAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5jb21ib2JveC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgICAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBDaGFuZ2UgXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIERldGVjdHMgaWYgdGhlIGF1dG9jb21wbGV0ZSBvcHRpb25zIGxpc3QgaXMgY2huYWdlZCBhZnRlciBhIHNlbGVjdGlvbiBvZiBhbiBvcHRpb24uIFxuICAgIC8vIEV4YW1wbGU6IEFkZHJlc3Mgc2VhcmNoIGNhbiBoYXZlIG9wdGlvbnMgYXNzaWduZWQgdG8gYSBncm91cCBvZiBvcHRpb25zLiBPbmUgcG9zdGNvZGUgdG8gaGF2ZSB4IG51bWJlciBvZiBhZGRyZXNlc1xuICAgIC8vIElmIE9wdGlvbnMgbGlzdCBpcyBDaGFuZ2VkIGFzIHBhcnQgb2YgZ3JvdXAgb3B0aW9uIHdlIGxldCB0aGUgb3B0aW9ucyBwYW5lbCBvcGVuIHRvIGxldCB1c2VyIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24uIFRoaXMgaXMgY29uc2lkZXJlZCBhcyBjaGFuZ2UgaW5wdXQgdmFsdWUoc2ltaWxhciB3aXRoIHR5cGUgdmFsdWUpXG4gICAgaWYodGhpcy50eXBlPT09J2F1dG9jb21wbGV0ZScmJiBjaGFuZ2VzWydvcHRpb25zJ10pe1xuICAgICAgY29uc3Qgb3B0aW9uY2hhbmdlcyA9IGNoYW5nZXNbJ29wdGlvbnMnXSA7XG4gICAgICBpZighdGhpcy5vcHRpb25zKXtcbiAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICB9XG4gICAgICBpZihvcHRpb25jaGFuZ2VzWydjdXJyZW50VmFsdWUnXSE9PSBvcHRpb25jaGFuZ2VzWydwcmV2aW91c1ZhbHVlJ10gJiYgdGhpcy5vcHRpb25zPy5sZW5ndGghPT0wICYmICFvcHRpb25jaGFuZ2VzWydmaXJzdENoYW5nZSddKXtcbiAgICAgICAgdGhpcy5yZXNldE9wdGlvbnNMaXN0KCk7XG4gICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICogT24gSW5pdCBcbiAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9IHRoaXMubGFiZWwgKyBNYXRoLnJhbmRvbSgpO1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKTtcbiAgICB0aGlzLnJlc2V0T3B0aW9uc0xpc3QoKTtcbiAgICBcbiAgICBpZih0aGlzLnNlbGVjdGVkKXtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXg9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoIChvcHRpb246IENvbWJvYm94T3B0aW9uIHwgdW5rbm93bik9PiBvcHRpb25bdGhpcy52YWx1ZU9wdGlvbktleV0gPT09IHRoaXMuc2VsZWN0ZWRbdGhpcy52YWx1ZU9wdGlvbktleV0pO1xuICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5vcHRpb25zW3NlbGVjdGVkSW5kZXhdLCBzZWxlY3RlZEluZGV4KTtcbiAgICB9ICAgIFxuICAgIGlmKHRoaXMuc2hvd09wdGlvbnMpe1xuICAgICAgdGhpcy5vcGVuUGFuZWwoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgVmlldyBJbml0IFxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBWYWxpZGF0aW9uTGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgT3B0aW9uIFxuICAgKiBAcGFyYW0gb3B0aW9uIFxuICAgKi9cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IENvbWJvYm94T3B0aW9uIHwgdW5rbm93biwgaW5kZXg/OiBudW1iZXIpe1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uID0gb3B0aW9uO1xuICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA9IGluZGV4O1xuICAgIHRoaXMuX2ZvY3VzZWRPcHRpb24gPSBvcHRpb247XG4gICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLl9zZWxlY3RlZE9wdGlvblt0aGlzLmRpc3BsYXlPcHRpb25LZXldO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnRleHRWYWx1ZSk7XG4gICAgdGhpcy5kaWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkT3B0aW9uKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICB9XG5cbiAgXG4gIC8qKlxuICAgKiBPbiBLZXkgTmF2aWdhdGlvblxuICAgKiBAcGFyYW0gZXZlbnQgXG4gICAqL1xuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgXCJFbnRlclwiOiBcbiAgICAgICAgdGhpcy5wcmVzc0VudGVyKCk7IFxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJUYWJcIjogXG4gICAgICAgIGlmICh0aGlzLnBhbmVsT3Blbikge1xuICAgICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIkVzY2FwZVwiOiBcbiAgICAgICAgaWYgKHRoaXMucGFuZWxPcGVuKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gTG9naWMgZm9yIG9wZW4gcGFuZWxcbiAgICBpZih0aGlzLnBhbmVsT3Blbil7XG4gICAgICB0aGlzLnByZXNzQXJyb3dzKGV2ZW50KTtcbiAgICAgIHRoaXMub3B0aW9uc0xpc3QuZ2V0KHRoaXMuX2ZvY3VzZWRPcHRpb25JZCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIE9wdGlvbnMgUGFuZWxcbiAgICovXG4gIHRvZ2dsZVBhbmVsKCk6IHZvaWR7XG4gICAgdGhpcy5fcGFuZWxPcGVuID0gdGhpcy5wYW5lbE9wZW4gPyBmYWxzZSA6IHRydWU7XG4gICAgdGhpcy5pbml0U2VsZWN0ZWRGb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsYXNlIE9wdGlvbnMgUGFuZWwgXG4gICAqL1xuICBvcGVuUGFuZWwoZXZlbnQ/OiBFdmVudCk6IHZvaWR7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYoIXRoaXMuX3BhbmVsT3Blbil7XG4gICAgICB0aGlzLl9wYW5lbE9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5pbml0U2VsZWN0ZWRGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSBPcHRpb25zIFBhbmVsIFxuICAgKi9cbiAgY2xvc2VQYW5lbCgpOiB2b2lke1xuICAgIGlmKHRoaXMuX3BhbmVsT3Blbil7XG4gICAgICB0aGlzLl9wYW5lbE9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IElucHV0IGRpc3BsYXkgdmFsdWVcbiAgICogQHBhcmFtIHRleHRWYWx1ZSBcbiAgICovXG4gIHdyaXRlVmFsdWUodGV4dFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZigodGhpcy5zZWxlY3RlZCAmJiAodHlwZW9mIHRleHRWYWx1ZSkgIT09ICdzdHJpbmcnICkgfHwgdGV4dFZhbHVlPT09Jycpe1xuICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLl9zZWxlY3RlZE9wdGlvblt0aGlzLmRpc3BsYXlPcHRpb25LZXldO1xuICAgIH0gZWxzZXtcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gdGV4dFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBGb3JtIGlucHV0IGNobmFnZSBcbiAgICogQHBhcmFtIGZuIFxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGZvcm0gaW5wdXQgdG91Y2ggXG4gICAqIEBwYXJhbSBmbiBcbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIE1vZGVsIENoYW5nZVxuICAgKiBAcGFyYW0gdGV4dFZhbHVlIFxuICAgKi9cbiAgb25Nb2RlbENoYW5nZSh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGV4dFZhbHVlID0gdGV4dFZhbHVlO1xuICAgIHRoaXMuaW5wdXREaWRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMub25DaGFuZ2UodGV4dFZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuZGlkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbik7XG4gICAgICB9XG5cbiAgLyoqXG4gICAqIE9uIE1vZGVsIENoYW5nZVxuICAgKiBAcGFyYW0gdGV4dFZhbHVlIFxuICAgKi9cbiAgb25Nb2RlbENoYW5nZUF1dG9jb21wbGV0ZSh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGV4dFZhbHVlID0gdGV4dFZhbHVlO1xuICAgIHRoaXMuaW5wdXREaWRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMub25DaGFuZ2UodGV4dFZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuZGlkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbik7XG4gICAgXG4gICAgdGhpcy5vbkF1dG9jb21wbGV0ZUxpc3RTZWFyY2godGV4dFZhbHVlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsaW5nIGZvciBJbnB1dCB2YWx1ZVxuICAgKi9cbiAgaGFuZGxlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dERpZENoYW5nZSA9IHRydWU7XG5cbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQudG9TdHJpbmcoKSk7XG4gICAgaW5wdXRFbGVtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzKTtcblxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIElucHV0XG4gICAqL1xuICBjbGVhbklucHV0KCk6IHZvaWR7XG4gICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgdGhpcy5yZXNldE9wdGlvbnNMaXN0KCk7XG4gICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgdGhpcy5kaWRTZWFyY2guZW1pdCh0aGlzLnRleHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogT24gZm9vdGVyIGFjdGlvblxuICAgKi9cbiAgb25Gb290ZXJBY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5kaWRFZGl0LmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBGb2N1cyBJbnB1dFxuICAgKi9cbiAgb25Gb2N1c0lucHV0KCk6IHZvaWQge1xuICAgIHRoaXMudGV4dElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggaW4gQXV0b2NvbXBsZXRlXG4gICAqIEBwYXJhbSB0ZXh0VmFsdWUgXG4gICAqL1xuICBwcml2YXRlIG9uQXV0b2NvbXBsZXRlTGlzdFNlYXJjaCh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdGV4dFZhbHVlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUGFuZWwoKTtcbiAgICAgIHRoaXMuZGlzcGxheU9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHRpb246IENvbWJvYm94T3B0aW9uPHVua25vd24+KSA9PiB7XG4gICAgICAgICAgcmV0dXJuICB0aGlzLmNoZWNrSW5jbHVkZXNTdWJzdHJpbmcob3B0aW9uLCB0aGlzLmRpc3BsYXlPcHRpb25LZXkpIFxuICAgICAgICAgIHx8IHRoaXMuY2hlY2tJbmNsdWRlc1N1YnN0cmluZyhvcHRpb24sIHRoaXMuc3VidGV4dE9wdGlvbktleSk7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZGlzcGxheU9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRleHRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgdGhpcy5kaWRTZWFyY2guZW1pdCh0aGlzLnRleHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYSBzdXNiY3JpbmcgaXMgaW5jbHVkZWQgaW4gb3B0aW9uIHZhbHVlXG4gICAqIEBwYXJhbSBvcHRpb24gXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0luY2x1ZGVzU3Vic3RyaW5nKG9wdGlvbjogQ29tYm9ib3hPcHRpb248dW5rbm93bj4sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gICAgcmV0dXJuIG9wdGlvbltrZXldPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy50ZXh0VmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IElucHV0IFZhbGlkYXRvcnNcbiAgICovXG4gIHByaXZhdGUgc2V0dXBWYWxpZGF0aW9uTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkLnRvU3RyaW5nKCkpO1xuICAgIGlucHV0RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdCBmb2N1cyBtb2RlIG9yIHNldCB0aGUgc2VsZWN0ZWQgb3B0aW9uIGFzIGZvY3VzZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdFNlbGVjdGVkRm9jdXMoKTogdm9pZCB7XG4gICAgaWYodGhpcy5fcGFuZWxPcGVuKXtcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZE9wdGlvbikge1xuICAgICAgICB0aGlzLl9mb2N1c2VkT3B0aW9uID0gdGhpcy5fc2VsZWN0ZWRPcHRpb247XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbklkID0gMDtcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbiA9IHRoaXMub3B0aW9uc1t0aGlzLl9mb2N1c2VkT3B0aW9uSWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcnJvd3MgVXAvRG93biBuYXZpZ2F0aW9uIGluc2lkZSBPcHRpb25zIFBhbmVsXG4gICAqL1xuICBwcml2YXRlIHByZXNzQXJyb3dzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjogXG4gICAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA9IE1hdGgubWluKHRoaXMuX2ZvY3VzZWRPcHRpb25JZCArIDEsIHRoaXMuZGlzcGxheU9wdGlvbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb24gPSB0aGlzLmRpc3BsYXlPcHRpb25zW3RoaXMuX2ZvY3VzZWRPcHRpb25JZF07XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uVGV4dFByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQXJyb3dVcFwiOiBcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbklkID0gTWF0aC5tYXgodGhpcy5fZm9jdXNlZE9wdGlvbklkIC0gMSwgMCk7IFxuICAgICAgICB0aGlzLl9mb2N1c2VkT3B0aW9uID0gdGhpcy5kaXNwbGF5T3B0aW9uc1t0aGlzLl9mb2N1c2VkT3B0aW9uSWRdO1xuXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uVGV4dFByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0ZXh0VmFsdWUgdG8gcHJldmlldyB0aGUgb3B0aW9uIGluIGF1dG9jb21wbGV0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVPcHRpb25UZXh0UHJldmlldygpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLl9mb2N1c2VkT3B0aW9uW3RoaXMuZGlzcGxheU9wdGlvbktleV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXNzIEVudGVyIGluc2lkZSBPcHRpb25zIFBhbmVsXG4gICAqL1xuICBwcml2YXRlIHByZXNzRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFuZWxPcGVuICYmIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA8IHRoaXMub3B0aW9ucy5sZW5ndGggJiYgdGhpcy5fZm9jdXNlZE9wdGlvbklkID49IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuX2ZvY3VzZWRPcHRpb24sIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCk7XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogUmVzZXQgc2VsZWN0ZWQgb3B0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9mb2N1c2VkT3B0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9mb2N1c2VkT3B0aW9uSWQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRvIG9yaWdpbmFsIG9yIHVuZmlsdGVyZWQgb3B0aW9uIGxpc3QgXG4gICAqL1xuICBwcml2YXRlIHJlc2V0T3B0aW9uc0xpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5T3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgfVxufVxuIiwiPHVpLXN0YWNrIGNsYXNzPVwidWktY29tYm9ib3gtY29udGFpbmVyXCIgc3RhY2tfZ2FwPVwidGlnaHRcIj5cbiAgPGRpdiBjbGFzcz1cInVpLWNvbWJvYm94IHRleHQtYm9keS0tZGVmYXVsdCB0ZXh0LWJvZHktLXJlZ3VsYXJcIj4gXG4gICAgPCEtLSBDb21wYm9ib3ggT3B0aW9ucyBJbnB1dCAtLT5cbiAgICA8ZGl2IFxuICAgICAgKm5nSWY9XCJ0eXBlPT09J29wdGlvbnMnXCJcbiAgICAgICNjb21ib2JveFxuICAgICAgbmFtZT1cImNvbWJvYm94XCIgXG4gICAgICB0YWJpbmRleD1cIjBcIiBcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChtb3VzZWRvd24pPVwidG9nZ2xlUGFuZWwoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwib3BlblBhbmVsKCRldmVudClcIlxuICAgICAgcm9sZT1cImNvbWJvYm94XCIgXG4gICAgICBpZD1cImFjdGl2ZWRlc2NlbmRlbnQtZWRpdFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCInYWN0aXZlZGVzY2VuZGVudC1vcHQtJyArIGZvY3VzZWRJZFwiXG4gICAgICBhcmlhLXJlYWRvbmx5PVwidHJ1ZVwiIFxuICAgICAgYXJpYS1vd25zPVwiYWN0aXZlZGVzY2VuZGVudC1saXN0XCIgXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIj5cbiAgICAgIDx1aS1zdGFjayBzdGFja19kaXJlY3Rpb249XCJ4XCIgc3RhY2tfZGlzdHJpYnV0ZT1cInNwYWNlLWJldHdlZW5cIiBzdGFja19hbGlnbj1cImNlbnRlclwiIHN0YWNrX2dhcD1cInRpZ2h0XCI+XG4gICAgICAgIDx1aS1ib3ggYm94X3NwYWNlPVwibm9uZVwiPlxuICAgICAgICAgIDwhLS0gU2VsZWN0IExhYmVsIEFyZWEgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLWNvbnRhaW5lclwiIHN0YWNrX2RpcmVjdGlvbj1cInhcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQtYm9keS0tc3VwcG9ydGluZyB0ZXh0LWJvZHktLXJlZ3VsYXJcIiByb2xlPVwiY29tYm9ib3gtbGFiZWxcIiBbZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgI3RleHRpbnB1dFxuICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJpZFwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cInRleHRWYWx1ZVwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uTW9kZWxDaGFuZ2UodGV4dFZhbHVlKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlucHV0RGlkQ2hhbmdlID8gJ25nLWlucHV0LWRpZC1jaGFuZ2UnIDogJ25nLWlucHV0LWRpZC1ub3QtY2hhbmdlJ1wiXG4gICAgICAgICAgICAgIFthdHRyLmF1dG9jb3JyZWN0XT1cIidvbidcIlxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIidvbidcIiAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiFvcHRpb25hbFwiXG4gICAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIidvbidcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRPcHRpb25cIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktLWRlZmF1bHQgdGV4dC1ib2R5LS1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgPC91aS1ib3g+XG4gICAgICAgIDwhLS0gU2VsZWN0IEljb24gQ2hldnJvbiBBcmVhIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cIiFwYW5lbE9wZW5cIiBpY29uX25hbWU9XCJjaGV2cm9uLWRvd25cIj48L3VpLWljb24+XG4gICAgICAgICAgPHVpLWljb24gKm5nSWY9XCJwYW5lbE9wZW5cIiBpY29uX25hbWU9XCJjaGV2cm9uLXVwXCI+PC91aS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdWktc3RhY2s+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPCEtLSBDb21ib2JveCBBdXRvY29tcGxldGUgSW5wdXQgLS0+XG4gICAgPGRpdiBcbiAgICAgICpuZ0lmPVwidHlwZT09PSdhdXRvY29tcGxldGUnXCJcbiAgICAgICNjb21ib2JveFxuICAgICAgbmFtZT1cImNvbWJvYm94XCIgXG4gICAgICB0YWJpbmRleD1cIjBcIiBcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzSW5wdXQoJGV2ZW50KVwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgaWQ9XCJhY3RpdmVkZXNjZW5kZW50LWVkaXRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ2FjdGl2ZWRlc2NlbmRlbnQtb3B0LScgKyBmb2N1c2VkSWRcIlxuICAgICAgYXJpYS1yZWFkb25seT1cInRydWVcIiBcbiAgICAgIGFyaWEtb3ducz1cImFjdGl2ZWRlc2NlbmRlbnQtbGlzdFwiIFxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCI+XG4gICAgICA8dWktc3RhY2sgc3RhY2tfZGlyZWN0aW9uPVwieFwiIHN0YWNrX2Rpc3RyaWJ1dGU9XCJzcGFjZS1iZXR3ZWVuXCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIiBzdGFja19nYXA9XCJ0aWdodFwiPlxuICAgICAgICA8dWktYm94IGJveF9zcGFjZT1cIm5vbmVcIj5cbiAgICAgICAgICA8IS0tIFNlbGVjdCBMYWJlbCBBcmVhIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1jb250YWluZXJcIiBzdGFja19kaXJlY3Rpb249XCJ4XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJvZHktLXN1cHBvcnRpbmcgdGV4dC1ib2R5LS1yZWd1bGFyXCIgcm9sZT1cImNvbWJvYm94LWxhYmVsXCIgW2Zvcl09XCJpZFwiPnt7bGFiZWx9fTwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICN0ZXh0aW5wdXRcbiAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwiaWRcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ0ZXh0VmFsdWVcIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlQXV0b2NvbXBsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJpbnB1dERpZENoYW5nZSA/ICduZy1pbnB1dC1kaWQtY2hhbmdlJyA6ICduZy1pbnB1dC1kaWQtbm90LWNoYW5nZSdcIlxuICAgICAgICAgICAgICBbYXR0ci5hdXRvY29ycmVjdF09XCInb24nXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCInbGlzdCdcIiAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiFvcHRpb25hbFwiXG4gICAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIidvbidcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwidGV4dFZhbHVlXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyfHwnJ1wiXG4gICAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LS1kZWZhdWx0IHRleHQtYm9keS0tcmVndWxhclwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdWktYm94PlxuXG4gICAgICAgIDwhLS0gQ29tYm9ib3ggSWNvbiBDbGVhciBBcmVhIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiBcbiAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidjbGVhbidcIiBcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhbklucHV0KClcIj5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cInRleHRWYWx1ZVwiIGljb25fbmFtZT1cImNsb3NlXCIgPjwvdWktaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3VpLXN0YWNrPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDwhLS0gQ29tYm9ib3ggT3B0aW9ucyBQYW5lbCAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwicGFuZWxPcGVuXCIgXG4gICAgICAgICAgY2xhc3M9XCJ1aS1jb21ib2JveC1vcHRpb25zXCIgXG4gICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJwYW5lbE9wZW5cIiBcbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiIFxuICAgICAgICAgIGlkPVwiYWN0aXZlZGVzY2VuZGVudC1saXN0XCI+XG4gICAgICBcbiAgICAgIDwhLS0gQXV0b2NvbXBsZXRlIE9wdGlvbnMgUGFuZWwgSGVhZGVyICAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXIgJiYgdHlwZT09PSdhdXRvY29tcGxldGUnXCIgXG4gICAgICAgIGNsYXNzPVwidWktY29tYm9ib3gtaGVhZGVyIHRleHQtYm9keS0tc3VwcG9ydGluZ1wiPiBcbiAgICAgICAgPHNwYW4+e3toZWFkZXJ9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8IS0tIE9wdGlvbnMgbGlzdCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgI29wdGlvbiBcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkaXNwbGF5T3B0aW9uczsgaW5kZXggYXMgaVwiXG4gICAgICAgIGNsYXNzPVwidWktY29tYm9ib3gtb3B0aW9uXCIgXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uLCAnZm9jdXMnOiBmb2N1c2VkT3B0aW9uID09PSBvcHRpb24gfVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uLCBpKVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW2lkXT1cIidhY3RpdmVkZXNjZW5kZW50LW9wdC0nK2lcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24gPyBvcHRpb25bZGlzcGxheU9wdGlvbktleV0gKyAnIGlzIHNlbGVjdGVkJyA6IG9wdGlvbltkaXNwbGF5T3B0aW9uS2V5XVwiXG4gICAgICAgID4gXG4gICAgICAgIDx1aS1zdGFjayBzdGFja19kaXJlY3Rpb249XCJ4XCIgc3RhY2tfZGlzdHJpYnV0ZT1cInNwYWNlLWJldHdlZW5cIiBzdGFja19hbGlnbj1cImNlbnRlclwiIHN0YWNrX2dhcD1cInRpZ2h0XCI+XG4gICAgICAgICAgPCEtLSBPcHRpb24gZGlzcGxheSAtLT5cbiAgICAgICAgICA8ZGl2IFt2YWx1ZV09XCJ2YWx1ZUtleSA/IG9wdGlvblt2YWx1ZUtleV06IG9wdGlvbi52YWx1ZVwiIFtuZ1ZhbHVlXT1cImRpc3BsYXlLZXkgPyBvcHRpb25bZGlzcGxheUtleV0gOiBvcHRpb24ubGFiZWxcIj5cbiAgICAgICAgICAgIDx1aS1zdGFjayBzdGFja19kaXJlY3Rpb249XCJ4XCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIiBzdGFja19nYXA9XCJ0aWdodFwiPlxuICAgICAgICAgICAgICAgIDx1aS1pY29uICpuZ0lmPVwib3B0aW9uLmljb25fbmFtZSB8fCAoaWNvbk5hbWVLZXkgJiYgb3B0aW9uW2ljb25OYW1lS2V5XSkgXCIgW2ljb25fbmFtZV09XCJpY29uTmFtZUtleSA/IG9wdGlvbltpY29uTmFtZUtleV0gOiBvcHRpb24uaWNvbl9uYW1lXCI+PC91aS1pY29uPlxuICAgICAgICAgICAgICAgIDx1aS1zdGFjayBzdGFja19nYXA9XCJ0aW55XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57e2Rpc3BsYXlLZXkgPyBvcHRpb25bZGlzcGxheUtleV0gOiBvcHRpb24ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9yZWdyb3VuZC1zZWNvbmRhcnktdGV4dFwiICpuZ0lmPVwidHlwZT09PSdhdXRvY29tcGxldGUnXCI+IHt7c3VidGV4dEtleSA/IG9wdGlvbltzdWJ0ZXh0S2V5XSA6IG9wdGlvbi5zdWJ0ZXh0fX0gPC9wPlxuICAgICAgICAgICAgICAgIDwvdWktc3RhY2s+XG4gICAgICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gU2VsZWN0ZWQgaWNvbiAtLT5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb25cIiBpY29uX25hbWU9XCJ0aWNrXCI+PC91aS1pY29uPlxuICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQXV0b2NvbXBsZXRlIE9wdGlvbnMgUGFuZWwgRm9vdGVyIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImZvb3RlciAmJiB0eXBlPT09J2F1dG9jb21wbGV0ZSdcIlxuICAgICAgICBjbGFzcz1cInVpLWNvbWJvYm94LWZvb3RlclwiPlxuICAgICAgICA8dWktYnV0dG9uIGJ1dHRvbl90eXBlPVwidGVydGlhcnlcIiAoY2xpY2tlZCk9XCJvbkZvb3RlckFjdGlvbigpXCI+IHt7Zm9vdGVyfX0gPC91aS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+IFxuICA8dWktc3RhY2sgc3RhY2tfZ2FwPVwibm9uZVwiPlxuICAgIDwhLS0gRVJST1IgTWVzc2FnZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWVycm9yc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWVycm9ycy1jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInVpLWZvcm0tZXJyb3JzXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEhJTlQgTWVzc2FnZSAtLT5cbiAgICA8dWktYm94ICpuZ0lmPVwiaGludFwiIGJveF9iYWNrZ3JvdW5kPVwibm9uZVwiIGJveF9zcGFjZT1cIm5vbmVcIiBib3hfc3BhY2VfbGVmdD1cIm5lYXJcIiBib3hfc3BhY2VfcmlnaHQ9XCJuZWFyXCJcbiAgICAgIGJveF9zcGFjZV9ib3R0b209XCJuZWFyXCI+XG4gICAgICA8ZGl2IFxuICAgICAgICBjbGFzcz1cImlucHV0LWhpbnQgdGV4dC1ib2R5LS1zdXBwb3J0aW5nIHRleHQtY29sb3ItLXN1cHBvcnRpbmdcIlxuICAgICAgICBbYXJpYS1sYWJlbF09XCJoaW50XCI+e3toaW50fX08L2Rpdj5cbiAgICA8L3VpLWJveD5cbiAgPC91aS1zdGFjaz5cbjwvdWktc3RhY2s+Il19
444
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBRVQsWUFBWSxFQUdaLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQWV6RSxNQUFNLE9BQU8saUJBQWlCO0lBd0M1QixnREFBZ0Q7SUFDaEQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFFBQVE7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFVBQVU7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFFBQVE7c0JBQW5DLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFVBQVU7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFtRFAsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTVDLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUduQixXQUFXO3NCQUFsQyxZQUFZO3VCQUFDLFFBQVE7Z0JBWWYsT0FBTztzQkFMYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBBZnRlclZpZXdJbml0LFxuICBWaWV3Q2hpbGQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21ib2JveE9wdGlvbiwgQ29tYm9ib3hUeXBlIH0gZnJvbSAnLi9jb21ib2JveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tYm9ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb21ib2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogQ29tYm9ib3hUeXBlID0gJ29wdGlvbnMnO1xuICBASW5wdXQoKSBvcHRpb25zOiBDb21ib2JveE9wdGlvbltdIHwgdW5rbm93bltdID0gW107XG4gIEBJbnB1dCgpIG9wdGlvbmFsOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgaGludD86IHN0cmluZztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGhlYWRlcj86IHN0cmluZztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGZvb3Rlcj86IHN0cmluZztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGF1dG9mb2N1cz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgc2VsZWN0ZWQ/OiBDb21ib2JveE9wdGlvbiB8IHVua25vd247XG4gIC8vIEtleSB2YWx1ZSBmcm9tIG9wdGlvbnMgdG8gYmUgZGlzcGxheWVkIGFzIG9wdGlvbiBsYWJlbFxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgZGlzcGxheUtleT86IHN0cmluZztcbiAgLy8gS2V5IHZhbHVlIGZyb20gb3B0aW9ucyB0byBiZSB1c2VkIGFzIGljb24gaW4gb3B0aW9uIGxhYmVsXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBpY29uTmFtZUtleT86IHN0cmluZztcbiAgLy8gS2V5IHZhbHVlIGZyb20gb3B0aW9ucyBiZSBiZSB2YWx1ZVxuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgdmFsdWVLZXk/OiBzdHJpbmc7XG4gIC8vIEF2YWlsYWJsZSBmb3IgQXV0b2NvbXBsZXRlXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSBzdWJ0ZXh0S2V5Pzogc3RyaW5nO1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8vIFdpbGwgb3BlbiB0aGUgbGlzdCBvZiBvcHRpb25zIG9uIGluaXRcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIHNob3dPcHRpb25zID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGRpZENoYW5nZTogRXZlbnRFbWl0dGVyPHVua25vd24+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlkU2VhcmNoOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaWRFZGl0OiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdGV4dFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgaW5wdXREaWRDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTsgLy8gb25seSBzaG93IHZhbGRpYXRpb24gYWZ0ZXIgYSBjaGFuZ2UgZXZlbnQgKGllLiBibHVyKVxuICBkaXNwbGF5T3B0aW9uczogQ29tYm9ib3hPcHRpb25bXSB8IHVua25vd25bXSA9IFtdO1xuICBwcml2YXRlIF9wYW5lbE9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRPcHRpb246IENvbWJvYm94T3B0aW9uIHwgdW5rbm93bjtcbiAgcHJpdmF0ZSBfZm9jdXNlZE9wdGlvbjogQ29tYm9ib3hPcHRpb24gfCB1bmtub3duO1xuICBwcml2YXRlIF9mb2N1c2VkT3B0aW9uSWQ6IG51bWJlcjtcblxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgb3ZlcmxheSBwYW5lbCBpcyBvcGVuLiAqL1xuICBnZXQgcGFuZWxPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYW5lbE9wZW47XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0ZWQgb3B0aW9uXG4gICAqL1xuICBnZXQgc2VsZWN0ZWRPcHRpb24oKTogQ29tYm9ib3hPcHRpb24gfCB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRPcHRpb24gfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1c2VkIE9wdGlvblxuICAgKi9cbiAgZ2V0IGZvY3VzZWRPcHRpb24oKTogQ29tYm9ib3hPcHRpb24gfCB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZE9wdGlvbiB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaWQgb2YgdGhlIGZvY3VzZWQgb3B0aW9uXG4gICAqL1xuICBnZXQgZm9jdXNlZElkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRPcHRpb25JZDtcbiAgfVxuXG4gIGdldCB2YWx1ZU9wdGlvbktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlS2V5ID8gdGhpcy52YWx1ZUtleSA6ICd2YWx1ZSc7XG4gIH1cblxuICBnZXQgZGlzcGxheU9wdGlvbktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlLZXkgPyB0aGlzLmRpc3BsYXlLZXkgOiAnbGFiZWwnO1xuICB9XG5cbiAgZ2V0IHN1YnRleHRPcHRpb25LZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdWJ0ZXh0S2V5ID8gdGhpcy5zdWJ0ZXh0S2V5IDogJ3N1YnRleHQnO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndGV4dGlucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHRleHRJbnB1dDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnY29tYm9ib3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY29tYm9ib3g6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ29wdGlvbicpIG9wdGlvbnNMaXN0OiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7fVxuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuXG4gIC8qKlxuICAgKiBDbGljayBvdXRzaWRlIGNvbWJvYm94IGNsb3NlIHRoZSBwYW5lbFxuICAgKi9cbiAgcHVibGljIG9uQ2xpY2sodGFyZ2V0RWxlbWVudDogTm9kZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhbmVsT3Blbikge1xuICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuY29tYm9ib3gubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xuICAgICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT24gQ2hhbmdlXG4gICAqIEBwYXJhbSBjaGFuZ2VzXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gRGV0ZWN0cyBpZiB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbnMgbGlzdCBpcyBjaG5hZ2VkIGFmdGVyIGEgc2VsZWN0aW9uIG9mIGFuIG9wdGlvbi5cbiAgICAvLyBFeGFtcGxlOiBBZGRyZXNzIHNlYXJjaCBjYW4gaGF2ZSBvcHRpb25zIGFzc2lnbmVkIHRvIGEgZ3JvdXAgb2Ygb3B0aW9ucy4gT25lIHBvc3Rjb2RlIHRvIGhhdmUgeCBudW1iZXIgb2YgYWRkcmVzZXNcbiAgICAvLyBJZiBPcHRpb25zIGxpc3QgaXMgQ2hhbmdlZCBhcyBwYXJ0IG9mIGdyb3VwIG9wdGlvbiB3ZSBsZXQgdGhlIG9wdGlvbnMgcGFuZWwgb3BlbiB0byBsZXQgdXNlciBzZWxlY3QgYSBzaW5nbGUgb3B0aW9uLiBUaGlzIGlzIGNvbnNpZGVyZWQgYXMgY2hhbmdlIGlucHV0IHZhbHVlKHNpbWlsYXIgd2l0aCB0eXBlIHZhbHVlKVxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhdXRvY29tcGxldGUnICYmIGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgY29uc3Qgb3B0aW9uY2hhbmdlcyA9IGNoYW5nZXNbJ29wdGlvbnMnXTtcbiAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25jaGFuZ2VzWydjdXJyZW50VmFsdWUnXSAhPT0gb3B0aW9uY2hhbmdlc1sncHJldmlvdXNWYWx1ZSddICYmXG4gICAgICAgIHRoaXMub3B0aW9ucz8ubGVuZ3RoICE9PSAwICYmXG4gICAgICAgICFvcHRpb25jaGFuZ2VzWydmaXJzdENoYW5nZSddXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yZXNldE9wdGlvbnNMaXN0KCk7XG4gICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9uIEluaXRcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLmxhYmVsICsgTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgdGhpcy5yZXNldE9wdGlvbnNMaXN0KCk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIChvcHRpb246IENvbWJvYm94T3B0aW9uIHwgdW5rbm93bikgPT5cbiAgICAgICAgICBvcHRpb25bdGhpcy52YWx1ZU9wdGlvbktleV0gPT09IHRoaXMuc2VsZWN0ZWRbdGhpcy52YWx1ZU9wdGlvbktleV0sXG4gICAgICApO1xuICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5vcHRpb25zW3NlbGVjdGVkSW5kZXhdLCBzZWxlY3RlZEluZGV4KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd09wdGlvbnMpIHtcbiAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFmdGVyIFZpZXcgSW5pdFxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBWYWxpZGF0aW9uTGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgT3B0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25cbiAgICovXG4gIHB1YmxpYyBzZWxlY3RPcHRpb24ob3B0aW9uOiBDb21ib2JveE9wdGlvbiB8IHVua25vd24sIGluZGV4PzogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG4gICAgdGhpcy5fZm9jdXNlZE9wdGlvbklkID0gaW5kZXg7XG4gICAgdGhpcy5fZm9jdXNlZE9wdGlvbiA9IG9wdGlvbjtcbiAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMuX3NlbGVjdGVkT3B0aW9uW3RoaXMuZGlzcGxheU9wdGlvbktleV07XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGV4dFZhbHVlKTtcbiAgICB0aGlzLmRpZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb24pO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gIH1cblxuICAvKipcbiAgICogT24gS2V5IE5hdmlnYXRpb25cbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5wcmVzc0VudGVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgaWYgKHRoaXMucGFuZWxPcGVuKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICBpZiAodGhpcy5wYW5lbE9wZW4pIHtcbiAgICAgICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBMb2dpYyBmb3Igb3BlbiBwYW5lbFxuICAgIGlmICh0aGlzLnBhbmVsT3Blbikge1xuICAgICAgdGhpcy5wcmVzc0Fycm93cyhldmVudCk7XG4gICAgICB0aGlzLm9wdGlvbnNMaXN0LmdldCh0aGlzLl9mb2N1c2VkT3B0aW9uSWQpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBPcHRpb25zIFBhbmVsXG4gICAqL1xuICB0b2dnbGVQYW5lbCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wYW5lbE9wZW4gPSB0aGlzLnBhbmVsT3BlbiA/IGZhbHNlIDogdHJ1ZTtcbiAgICB0aGlzLmluaXRTZWxlY3RlZEZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xhc2UgT3B0aW9ucyBQYW5lbFxuICAgKi9cbiAgb3BlblBhbmVsKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIXRoaXMuX3BhbmVsT3Blbikge1xuICAgICAgdGhpcy5fcGFuZWxPcGVuID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdFNlbGVjdGVkRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgT3B0aW9ucyBQYW5lbFxuICAgKi9cbiAgY2xvc2VQYW5lbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcGFuZWxPcGVuKSB7XG4gICAgICB0aGlzLl9wYW5lbE9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IElucHV0IGRpc3BsYXkgdmFsdWVcbiAgICogQHBhcmFtIHRleHRWYWx1ZVxuICAgKi9cbiAgd3JpdGVWYWx1ZSh0ZXh0VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICgodGhpcy5zZWxlY3RlZCAmJiB0eXBlb2YgdGV4dFZhbHVlICE9PSAnc3RyaW5nJykgfHwgdGV4dFZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLl9zZWxlY3RlZE9wdGlvblt0aGlzLmRpc3BsYXlPcHRpb25LZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHRWYWx1ZSA9IHRleHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgRm9ybSBpbnB1dCBjaG5hZ2VcbiAgICogQHBhcmFtIGZuXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZm9ybSBpbnB1dCB0b3VjaFxuICAgKiBAcGFyYW0gZm5cbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIE1vZGVsIENoYW5nZVxuICAgKiBAcGFyYW0gdGV4dFZhbHVlXG4gICAqL1xuICBvbk1vZGVsQ2hhbmdlKHRleHRWYWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy50ZXh0VmFsdWUgPSB0ZXh0VmFsdWU7XG4gICAgdGhpcy5pbnB1dERpZENoYW5nZSA9IHRydWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0ZXh0VmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5kaWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkT3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBNb2RlbCBDaGFuZ2VcbiAgICogQHBhcmFtIHRleHRWYWx1ZVxuICAgKi9cbiAgb25Nb2RlbENoYW5nZUF1dG9jb21wbGV0ZSh0ZXh0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGV4dFZhbHVlID0gdGV4dFZhbHVlO1xuICAgIHRoaXMuaW5wdXREaWRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMub25DaGFuZ2UodGV4dFZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuZGlkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbik7XG5cbiAgICB0aGlzLm9uQXV0b2NvbXBsZXRlTGlzdFNlYXJjaCh0ZXh0VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsaW5nIGZvciBJbnB1dCB2YWx1ZVxuICAgKi9cbiAgaGFuZGxlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dERpZENoYW5nZSA9IHRydWU7XG5cbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQudG9TdHJpbmcoKSk7XG4gICAgaW5wdXRFbGVtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiBJbnB1dFxuICAgKi9cbiAgY2xlYW5JbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKTtcbiAgICB0aGlzLnJlc2V0T3B0aW9uc0xpc3QoKTtcbiAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICB0aGlzLmRpZFNlYXJjaC5lbWl0KHRoaXMudGV4dFZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBmb290ZXIgYWN0aW9uXG4gICAqL1xuICBvbkZvb3RlckFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRpZEVkaXQuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIEZvY3VzIElucHV0XG4gICAqL1xuICBvbkZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy50ZXh0SW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBpbiBBdXRvY29tcGxldGVcbiAgICogQHBhcmFtIHRleHRWYWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBvbkF1dG9jb21wbGV0ZUxpc3RTZWFyY2godGV4dFZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRleHRWYWx1ZSkge1xuICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgICB0aGlzLmRpc3BsYXlPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgICAgKG9wdGlvbjogQ29tYm9ib3hPcHRpb248dW5rbm93bj4pID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jaGVja0luY2x1ZGVzU3Vic3RyaW5nKG9wdGlvbiwgdGhpcy5kaXNwbGF5T3B0aW9uS2V5KSB8fFxuICAgICAgICAgICAgdGhpcy5jaGVja0luY2x1ZGVzU3Vic3RyaW5nKG9wdGlvbiwgdGhpcy5zdWJ0ZXh0T3B0aW9uS2V5KVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuZGlzcGxheU9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRleHRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgdGhpcy5kaWRTZWFyY2guZW1pdCh0aGlzLnRleHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgYSBzdXNiY3JpbmcgaXMgaW5jbHVkZWQgaW4gb3B0aW9uIHZhbHVlXG4gICAqIEBwYXJhbSBvcHRpb25cbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgY2hlY2tJbmNsdWRlc1N1YnN0cmluZyhcbiAgICBvcHRpb246IENvbWJvYm94T3B0aW9uPHVua25vd24+LFxuICAgIGtleTogc3RyaW5nLFxuICApOiB1bmtub3duIHtcbiAgICByZXR1cm4gb3B0aW9uW2tleV1cbiAgICAgID8udG9TdHJpbmcoKVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5pbmNsdWRlcyh0aGlzLnRleHRWYWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgSW5wdXQgVmFsaWRhdG9yc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cFZhbGlkYXRpb25MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQudG9TdHJpbmcoKSk7XG4gICAgaW5wdXRFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IGZvY3VzIG1vZGUgb3Igc2V0IHRoZSBzZWxlY3RlZCBvcHRpb24gYXMgZm9jdXNlZFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U2VsZWN0ZWRGb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcGFuZWxPcGVuKSB7XG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbiA9IHRoaXMuX3NlbGVjdGVkT3B0aW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbklkID0gMDtcbiAgICAgICAgdGhpcy5fZm9jdXNlZE9wdGlvbiA9IHRoaXMub3B0aW9uc1t0aGlzLl9mb2N1c2VkT3B0aW9uSWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcnJvd3MgVXAvRG93biBuYXZpZ2F0aW9uIGluc2lkZSBPcHRpb25zIFBhbmVsXG4gICAqL1xuICBwcml2YXRlIHByZXNzQXJyb3dzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA9IE1hdGgubWluKFxuICAgICAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCArIDEsXG4gICAgICAgICAgdGhpcy5kaXNwbGF5T3B0aW9ucy5sZW5ndGggLSAxLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9mb2N1c2VkT3B0aW9uID0gdGhpcy5kaXNwbGF5T3B0aW9uc1t0aGlzLl9mb2N1c2VkT3B0aW9uSWRdO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvblRleHRQcmV2aWV3KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA9IE1hdGgubWF4KHRoaXMuX2ZvY3VzZWRPcHRpb25JZCAtIDEsIDApO1xuICAgICAgICB0aGlzLl9mb2N1c2VkT3B0aW9uID0gdGhpcy5kaXNwbGF5T3B0aW9uc1t0aGlzLl9mb2N1c2VkT3B0aW9uSWRdO1xuXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlT3B0aW9uVGV4dFByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0ZXh0VmFsdWUgdG8gcHJldmlldyB0aGUgb3B0aW9uIGluIGF1dG9jb21wbGV0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhdXRvY29tcGxldGVPcHRpb25UZXh0UHJldmlldygpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLl9mb2N1c2VkT3B0aW9uW3RoaXMuZGlzcGxheU9wdGlvbktleV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXNzIEVudGVyIGluc2lkZSBPcHRpb25zIFBhbmVsXG4gICAqL1xuICBwcml2YXRlIHByZXNzRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5wYW5lbE9wZW4gJiZcbiAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA8IHRoaXMub3B0aW9ucy5sZW5ndGggJiZcbiAgICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA+PSAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLl9mb2N1c2VkT3B0aW9uLCB0aGlzLl9mb2N1c2VkT3B0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBzZWxlY3RlZCBvcHRpb25cbiAgICovXG4gIHByaXZhdGUgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgIHRoaXMuX2ZvY3VzZWRPcHRpb24gPSBudWxsO1xuICAgIHRoaXMuX2ZvY3VzZWRPcHRpb25JZCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gb3JpZ2luYWwgb3IgdW5maWx0ZXJlZCBvcHRpb24gbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSByZXNldE9wdGlvbnNMaXN0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheU9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gIH1cbn1cbiIsIjx1aS1zdGFjayBjbGFzcz1cInVpLWNvbWJvYm94LWNvbnRhaW5lclwiIHN0YWNrX2dhcD1cInRpZ2h0XCI+XG4gIDxkaXYgY2xhc3M9XCJ1aS1jb21ib2JveCB0ZXh0LWJvZHktLWRlZmF1bHQgdGV4dC1ib2R5LS1yZWd1bGFyXCI+XG4gICAgPCEtLSBDb21wYm9ib3ggT3B0aW9ucyBJbnB1dCAtLT5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInR5cGUgPT09ICdvcHRpb25zJ1wiXG4gICAgICAjY29tYm9ib3hcbiAgICAgIG5hbWU9XCJjb21ib2JveFwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKG1vdXNlZG93bik9XCJ0b2dnbGVQYW5lbCgkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvcGVuUGFuZWwoJGV2ZW50KVwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgaWQ9XCJhY3RpdmVkZXNjZW5kZW50LWVkaXRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiJ2FjdGl2ZWRlc2NlbmRlbnQtb3B0LScgKyBmb2N1c2VkSWRcIlxuICAgICAgYXJpYS1yZWFkb25seT1cInRydWVcIlxuICAgICAgYXJpYS1vd25zPVwiYWN0aXZlZGVzY2VuZGVudC1saXN0XCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgPlxuICAgICAgPHVpLXN0YWNrXG4gICAgICAgIHN0YWNrX2RpcmVjdGlvbj1cInhcIlxuICAgICAgICBzdGFja19kaXN0cmlidXRlPVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgIHN0YWNrX2FsaWduPVwiY2VudGVyXCJcbiAgICAgICAgc3RhY2tfZ2FwPVwidGlnaHRcIlxuICAgICAgPlxuICAgICAgICA8dWktYm94IGJveF9zcGFjZT1cIm5vbmVcIj5cbiAgICAgICAgICA8IS0tIFNlbGVjdCBMYWJlbCBBcmVhIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1jb250YWluZXJcIiBzdGFja19kaXJlY3Rpb249XCJ4XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktLXN1cHBvcnRpbmcgdGV4dC1ib2R5LS1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgcm9sZT1cImNvbWJvYm94LWxhYmVsXCJcbiAgICAgICAgICAgICAgW2Zvcl09XCJpZFwiXG4gICAgICAgICAgICAgID57eyBsYWJlbCB9fTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICN0ZXh0aW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICBbbmFtZV09XCJpZFwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ0ZXh0VmFsdWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9uTW9kZWxDaGFuZ2UodGV4dFZhbHVlKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgaW5wdXREaWRDaGFuZ2UgPyAnbmctaW5wdXQtZGlkLWNoYW5nZScgOiAnbmctaW5wdXQtZGlkLW5vdC1jaGFuZ2UnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXV0b2NvcnJlY3RdPVwiJ29uJ1wiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiJ29uJ1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiIW9wdGlvbmFsXCJcbiAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIidvbidcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZE9wdGlvblwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0tZGVmYXVsdCB0ZXh0LWJvZHktLXJlZ3VsYXJcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdWktYm94PlxuICAgICAgICA8IS0tIFNlbGVjdCBJY29uIENoZXZyb24gQXJlYSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyBleHBhbmQ6IHBhbmVsT3BlbiB9XCI+XG4gICAgICAgICAgPHVpLWljb24gaWNvbl9uYW1lPVwiY2hldnJvbi1kb3duXCI+PC91aS1pY29uPlxuICAgICAgICAgIDwhLS0gPHVpLWljb24gKm5nSWY9XCJwYW5lbE9wZW5cIiBpY29uX25hbWU9XCJjaGV2cm9uLXVwXCI+PC91aS1pY29uPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3VpLXN0YWNrPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDb21ib2JveCBBdXRvY29tcGxldGUgSW5wdXQgLS0+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJ0eXBlID09PSAnYXV0b2NvbXBsZXRlJ1wiXG4gICAgICAjY29tYm9ib3hcbiAgICAgIG5hbWU9XCJjb21ib2JveFwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXNJbnB1dCgkZXZlbnQpXCJcbiAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICBpZD1cImFjdGl2ZWRlc2NlbmRlbnQtZWRpdFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCInYWN0aXZlZGVzY2VuZGVudC1vcHQtJyArIGZvY3VzZWRJZFwiXG4gICAgICBhcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXG4gICAgICBhcmlhLW93bnM9XCJhY3RpdmVkZXNjZW5kZW50LWxpc3RcIlxuICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICA+XG4gICAgICA8dWktc3RhY2tcbiAgICAgICAgc3RhY2tfZGlyZWN0aW9uPVwieFwiXG4gICAgICAgIHN0YWNrX2Rpc3RyaWJ1dGU9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgc3RhY2tfYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICBzdGFja19nYXA9XCJ0aWdodFwiXG4gICAgICA+XG4gICAgICAgIDx1aS1ib3ggYm94X3NwYWNlPVwibm9uZVwiPlxuICAgICAgICAgIDwhLS0gU2VsZWN0IExhYmVsIEFyZWEgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLWNvbnRhaW5lclwiIHN0YWNrX2RpcmVjdGlvbj1cInhcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0tc3VwcG9ydGluZyB0ZXh0LWJvZHktLXJlZ3VsYXJcIlxuICAgICAgICAgICAgICByb2xlPVwiY29tYm9ib3gtbGFiZWxcIlxuICAgICAgICAgICAgICBbZm9yXT1cImlkXCJcbiAgICAgICAgICAgICAgPnt7IGxhYmVsIH19PC9sYWJlbFxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI3RleHRpbnB1dFxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImlkXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInRleHRWYWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlQXV0b2NvbXBsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgIGlucHV0RGlkQ2hhbmdlID8gJ25nLWlucHV0LWRpZC1jaGFuZ2UnIDogJ25nLWlucHV0LWRpZC1ub3QtY2hhbmdlJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFthdHRyLmF1dG9jb3JyZWN0XT1cIidvbidcIlxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIidsaXN0J1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiIW9wdGlvbmFsXCJcbiAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIidvbidcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0ZXh0VmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0tZGVmYXVsdCB0ZXh0LWJvZHktLXJlZ3VsYXJcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdWktYm94PlxuXG4gICAgICAgIDwhLS0gQ29tYm9ib3ggSWNvbiBDbGVhciBBcmVhIC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgW2FyaWEtbGFiZWxdPVwiJ2NsZWFuJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFuSW5wdXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cInRleHRWYWx1ZVwiIGljb25fbmFtZT1cImNsb3NlXCI+PC91aS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdWktc3RhY2s+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENvbWJvYm94IE9wdGlvbnMgUGFuZWwgLS0+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJwYW5lbE9wZW5cIlxuICAgICAgY2xhc3M9XCJ1aS1jb21ib2JveC1vcHRpb25zXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZXhwYW5kOiBwYW5lbE9wZW4gfVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInBhbmVsT3BlblwiXG4gICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICBpZD1cImFjdGl2ZWRlc2NlbmRlbnQtbGlzdFwiXG4gICAgPlxuICAgICAgPCEtLSBBdXRvY29tcGxldGUgT3B0aW9ucyBQYW5lbCBIZWFkZXIgIC0tPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImhlYWRlciAmJiB0eXBlID09PSAnYXV0b2NvbXBsZXRlJ1wiXG4gICAgICAgIGNsYXNzPVwidWktY29tYm9ib3gtaGVhZGVyIHRleHQtYm9keS0tc3VwcG9ydGluZ1wiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPnt7IGhlYWRlciB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIE9wdGlvbnMgbGlzdCAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgI29wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRpc3BsYXlPcHRpb25zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgY2xhc3M9XCJ1aS1jb21ib2JveC1vcHRpb25cIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24sXG4gICAgICAgICAgZm9jdXM6IGZvY3VzZWRPcHRpb24gPT09IG9wdGlvblxuICAgICAgICB9XCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24sIGkpXCJcbiAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICBbaWRdPVwiJ2FjdGl2ZWRlc2NlbmRlbnQtb3B0LScgKyBpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uXG4gICAgICAgICAgICA/IG9wdGlvbltkaXNwbGF5T3B0aW9uS2V5XSArICcgaXMgc2VsZWN0ZWQnXG4gICAgICAgICAgICA6IG9wdGlvbltkaXNwbGF5T3B0aW9uS2V5XVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8dWktc3RhY2tcbiAgICAgICAgICBzdGFja19kaXJlY3Rpb249XCJ4XCJcbiAgICAgICAgICBzdGFja19kaXN0cmlidXRlPVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgc3RhY2tfYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgIHN0YWNrX2dhcD1cInRpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDwhLS0gT3B0aW9uIGRpc3BsYXkgLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlS2V5ID8gb3B0aW9uW3ZhbHVlS2V5XSA6IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJkaXNwbGF5S2V5ID8gb3B0aW9uW2Rpc3BsYXlLZXldIDogb3B0aW9uLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dWktc3RhY2tcbiAgICAgICAgICAgICAgc3RhY2tfZGlyZWN0aW9uPVwieFwiXG4gICAgICAgICAgICAgIHN0YWNrX2FsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgc3RhY2tfZ2FwPVwidGlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmljb25fbmFtZSB8fCAoaWNvbk5hbWVLZXkgJiYgb3B0aW9uW2ljb25OYW1lS2V5XSlcIlxuICAgICAgICAgICAgICAgIFtpY29uX25hbWVdPVwiXG4gICAgICAgICAgICAgICAgICBpY29uTmFtZUtleSA/IG9wdGlvbltpY29uTmFtZUtleV0gOiBvcHRpb24uaWNvbl9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPjwvdWktaWNvbj5cblxuICAgICAgICAgICAgICA8IS0tIERpc3BsYXkgb3B0aW9ucyBsYWJlbCAtLT5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0eXBlID09PSAnb3B0aW9ucydcIj57e1xuICAgICAgICAgICAgICAgIG9wdGlvbltkaXNwbGF5T3B0aW9uS2V5XVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICA8IS0tIERpc3BsYXkgYXV0b2NvbXBsZXRlIG9wdGlvbiBpbmZvcm1hdGlvbiBhbmQgZW1waGFzaXMtLT5cbiAgICAgICAgICAgICAgPHVpLXN0YWNrIHN0YWNrX2dhcD1cInRpbnlcIiAqbmdJZj1cInR5cGUgPT09ICdhdXRvY29tcGxldGUnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIHVpLWVtcGhhc2lzXG4gICAgICAgICAgICAgICAgICBbc2VhcmNoVGV4dF09XCJ0ZXh0VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlQYXJhZ3JhcGhdPVwib3B0aW9uW2Rpc3BsYXlPcHRpb25LZXldXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5UGFyYWdyYXBoIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcmVncm91bmQtc2Vjb25kYXJ5LXRleHRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnYXV0b2NvbXBsZXRlJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgb3B0aW9uW3N1YnRleHRPcHRpb25LZXldIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgICAgICAgPC91aS1zdGFjaz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gU2VsZWN0ZWQgaWNvbiAtLT5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb25cIiBpY29uX25hbWU9XCJ0aWNrXCI+PC91aS1pY29uPlxuICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQXV0b2NvbXBsZXRlIE9wdGlvbnMgUGFuZWwgRm9vdGVyIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImZvb3RlciAmJiB0eXBlID09PSAnYXV0b2NvbXBsZXRlJ1wiIGNsYXNzPVwidWktY29tYm9ib3gtZm9vdGVyXCI+XG4gICAgICAgIDx1aS1idXR0b24gYnV0dG9uX3R5cGU9XCJ0ZXJ0aWFyeVwiIChjbGljayk9XCJvbkZvb3RlckFjdGlvbigpXCI+XG4gICAgICAgICAge3sgZm9vdGVyIH19XG4gICAgICAgIDwvdWktYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8dWktc3RhY2sgc3RhY2tfZ2FwPVwibm9uZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1lcnJvcnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1lcnJvcnMtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ1aS1mb3JtLWVycm9yc1wiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx1aS1ib3hcbiAgICAgIGNsYXNzPVwiaGludC1jb250YWluZXJcIlxuICAgICAgKm5nSWY9XCJoaW50XCJcbiAgICAgIGJveF9iYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICBib3hfc3BhY2U9XCJub25lXCJcbiAgICAgIGJveF9zcGFjZV9sZWZ0PVwibmVhclwiXG4gICAgICBib3hfc3BhY2VfcmlnaHQ9XCJuZWFyXCJcbiAgICAgIGJveF9zcGFjZV9ib3R0b209XCJuZWFyXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidWktdGV4dC1pbnB1dC1oaW50IHRleHQtYm9keS0tc3VwcG9ydGluZyB0ZXh0LWNvbG9yLS1zdXBwb3J0aW5nXCJcbiAgICAgID5cbiAgICAgICAge3sgaGludCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC91aS1ib3g+XG4gIDwvdWktc3RhY2s+XG48L3VpLXN0YWNrPlxuIl19