@koobiq/components 18.23.0 → 18.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/badge/badge-tokens.scss +2 -2
  2. package/code-block/code-block-highlight.d.ts +1 -1
  3. package/code-block/code-block.d.ts +2 -2
  4. package/core/formatters/date/formatter.d.ts +4 -3
  5. package/esm2022/badge/badge.component.mjs +2 -2
  6. package/esm2022/button/button.component.mjs +3 -2
  7. package/esm2022/code-block/code-block-highlight.mjs +7 -6
  8. package/esm2022/code-block/code-block.mjs +7 -7
  9. package/esm2022/core/formatters/date/formatter.mjs +5 -10
  10. package/esm2022/core/version.mjs +2 -2
  11. package/esm2022/filter-bar/pipe-add.mjs +5 -4
  12. package/esm2022/filter-bar/pipes/base-pipe.mjs +9 -4
  13. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +3 -3
  14. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -3
  15. package/esm2022/filter-bar/pipes/pipe-text.mjs +6 -1
  16. package/esm2022/markdown/markdown.component.mjs +2 -2
  17. package/esm2022/toggle/toggle.component.mjs +3 -3
  18. package/fesm2022/koobiq-components-badge.mjs +2 -2
  19. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  20. package/fesm2022/koobiq-components-button.mjs +2 -1
  21. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  22. package/fesm2022/koobiq-components-code-block.mjs +12 -11
  23. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-core.mjs +4 -9
  25. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  26. package/fesm2022/koobiq-components-filter-bar.mjs +21 -11
  27. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  28. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  29. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  30. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  31. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  32. package/filter-bar/pipes/base-pipe.d.ts +3 -1
  33. package/filter-bar/pipes/pipe-text.d.ts +2 -0
  34. package/markdown/markdown.scss +1 -1
  35. package/package.json +4 -4
  36. package/schematics/ng-add/index.js +2 -2
@@ -50,7 +50,7 @@
50
50
  --kbq-badge-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);
51
51
  --kbq-badge-filled-fade-on-contrast-color: var(--kbq-foreground-contrast);
52
52
  --kbq-badge-filled-fade-on-contrast-caption: var(--kbq-foreground-contrast);
53
- --kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);
53
+ --kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast);
54
54
  --kbq-badge-filled-fade-on-success-background: var(--kbq-background-success-fade);
55
55
  --kbq-badge-filled-fade-on-success-color: var(--kbq-foreground-success);
56
56
  --kbq-badge-filled-fade-on-success-caption: var(--kbq-foreground-success);
@@ -72,7 +72,7 @@
72
72
  --kbq-badge-outline-fade-on-contrast-color: var(--kbq-foreground-contrast);
73
73
  --kbq-badge-outline-fade-on-contrast-border: var(--kbq-line-contrast-fade);
74
74
  --kbq-badge-outline-fade-on-contrast-caption: var(--kbq-foreground-contrast);
75
- --kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);
75
+ --kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast);
76
76
  --kbq-badge-outline-fade-on-success-background: transparent;
77
77
  --kbq-badge-outline-fade-on-success-color: var(--kbq-foreground-success);
78
78
  --kbq-badge-outline-fade-on-success-border: var(--kbq-line-success-fade);
@@ -18,7 +18,7 @@ export declare class KbqCodeBlockHighlight {
18
18
  private readonly domSanitizer;
19
19
  private readonly fallbackFileLanguage;
20
20
  /** The code file. */
21
- set file({ language, content }: KbqCodeBlockFile);
21
+ set file(file: KbqCodeBlockFile);
22
22
  /** The starting line number. */
23
23
  startFrom: number;
24
24
  /** Whether to display line numbers for single line code block. */
@@ -54,8 +54,8 @@ export declare class KbqCodeBlock implements AfterViewInit {
54
54
  *
55
55
  * Files to display.
56
56
  */
57
- set files(files: KbqCodeBlockFile[]);
58
57
  get files(): KbqCodeBlockFile[];
58
+ set files(files: KbqCodeBlockFile[]);
59
59
  private _files;
60
60
  /** Defines which file (index) is active. */
61
61
  activeFileIndex: number;
@@ -67,8 +67,8 @@ export declare class KbqCodeBlock implements AfterViewInit {
67
67
  * Always `true` if there is only one file without filename.
68
68
  * Makes actionbar floating if tabs are hidden.
69
69
  */
70
- set hideTabs(value: boolean);
71
70
  get hideTabs(): boolean;
71
+ set hideTabs(value: boolean);
72
72
  private _hideTabs;
73
73
  /** Component locale configuration. */
74
74
  protected get localeConfiguration(): KbqCodeBlockLocaleConfiguration;
@@ -1,10 +1,11 @@
1
1
  import { DateAdapter } from '@koobiq/date-adapter';
2
2
  import { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';
3
+ import { KbqLocaleService } from '../../locales';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class DateFormatter<D> extends BaseDateFormatter<D> {
5
6
  readonly adapter: DateAdapter<D>;
6
- protected localeService?: any;
7
- constructor(adapter: DateAdapter<D>, locale: string, localeService?: any);
8
- static ɵfac: i0.ɵɵFactoryDeclaration<DateFormatter<any>, [null, null, { optional: true; }]>;
7
+ protected localeService: KbqLocaleService | null;
8
+ constructor(adapter: DateAdapter<D>, locale: string);
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateFormatter<any>, never>;
9
10
  static ɵprov: i0.ɵɵInjectableDeclaration<DateFormatter<any>>;
10
11
  }
@@ -99,7 +99,7 @@ export class KbqBadge {
99
99
  this._badgeColor = value || KbqBadgeColors.FadeContrast;
100
100
  }
101
101
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqBadge, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: KbqBadge, selector: "kbq-badge", inputs: { compact: "compact", outline: "outline", badgeColor: "badgeColor" }, host: { properties: { "class.kbq-badge_compact": "compact", "class.kbq-badge-filled": "!outline", "class.kbq-badge-outline": "outline", "class": "badgeColor" }, classAttribute: "kbq-badge" }, queries: [{ propertyName: "iconItem", first: true, predicate: KbqIconItem, descendants: true }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-badge{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;height:var(--kbq-badge-size-normal-height);text-align:center;white-space:nowrap;border-style:solid;box-sizing:border-box;padding-right:var(--kbq-badge-size-normal-horizontal-padding);padding-left:var(--kbq-badge-size-normal-horizontal-padding);border-width:var(--kbq-badge-size-normal-border-width);border-radius:var(--kbq-badge-size-normal-border-radius)}.kbq-badge .kbq-badge-caption{padding-left:var(--kbq-badge-size-normal-content-padding)}.kbq-badge .kbq-icon_left{margin-right:var(--kbq-badge-size-normal-icon-left-margin-right)}.kbq-badge .kbq-icon_right{margin-left:var(--kbq-badge-size-normal-icon-right-margin-left)}.kbq-badge.kbq-badge_compact{height:var(--kbq-badge-size-compact-height);padding-right:var(--kbq-badge-size-compact-horizontal-padding);padding-left:var(--kbq-badge-size-compact-horizontal-padding);border-width:var(--kbq-badge-size-compact-border-width);border-radius:var(--kbq-badge-size-compact-border-radius)}.kbq-badge.kbq-badge_compact .kbq-badge-caption{padding-left:var(--kbq-badge-size-compact-content-padding)}.kbq-badge.kbq-badge_compact .kbq-icon_left{margin-right:var(--kbq-badge-size-compact-icon-left-margin-right)}.kbq-badge.kbq-badge_compact .kbq-icon_right{margin-left:var(--kbq-badge-size-compact-icon-right-margin-left)}.kbq-badge-filled.kbq-badge_fade-contrast{color:var(--kbq-badge-filled-fade-on-contrast-color);background:var(--kbq-badge-filled-fade-on-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-contrast-caption)}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-filled-fade-on-contrast-icon)}.kbq-badge-filled.kbq-badge_fade-theme{color:var(--kbq-badge-filled-fade-on-theme-color);background:var(--kbq-badge-filled-fade-on-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-theme-caption)}.kbq-badge-filled.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-filled-fade-on-theme-icon)}.kbq-badge-filled.kbq-badge_fade-success{color:var(--kbq-badge-filled-fade-on-success-color);background:var(--kbq-badge-filled-fade-on-success-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-success-caption)}.kbq-badge-filled.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-filled-fade-on-success-icon)}.kbq-badge-filled.kbq-badge_fade-warning{color:var(--kbq-badge-filled-fade-on-warning-color);background:var(--kbq-badge-filled-fade-on-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-warning-caption)}.kbq-badge-filled.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-filled-fade-on-warning-icon)}.kbq-badge-filled.kbq-badge_fade-error{color:var(--kbq-badge-filled-fade-on-error-color);background:var(--kbq-badge-filled-fade-on-error-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-error-caption)}.kbq-badge-filled.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-filled-fade-on-error-icon)}.kbq-badge-filled.kbq-badge_contrast{color:var(--kbq-badge-filled-fade-off-contrast-color);background:var(--kbq-badge-filled-fade-off-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-contrast-caption)}.kbq-badge-filled.kbq-badge_contrast .kbq-icon{color:var(--kbq-badge-filled-fade-off-contrast-icon)}.kbq-badge-filled.kbq-badge_theme{color:var(--kbq-badge-filled-fade-off-theme-color);background:var(--kbq-badge-filled-fade-off-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-theme-caption)}.kbq-badge-filled.kbq-badge_theme .kbq-icon{color:var(--kbq-badge-filled-fade-off-theme-icon)}.kbq-badge-filled.kbq-badge_success{color:var(--kbq-badge-filled-fade-off-success-color);background:var(--kbq-badge-filled-fade-off-success-background);border:transparent}.kbq-badge-filled.kbq-badge_success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-success-caption)}.kbq-badge-filled.kbq-badge_success .kbq-icon{color:var(--kbq-badge-filled-fade-off-success-icon)}.kbq-badge-filled.kbq-badge_warning{color:var(--kbq-badge-filled-fade-off-warning-color);background:var(--kbq-badge-filled-fade-off-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-warning-caption)}.kbq-badge-filled.kbq-badge_warning .kbq-icon{color:var(--kbq-badge-filled-fade-off-warning-icon)}.kbq-badge-filled.kbq-badge_error{color:var(--kbq-badge-filled-fade-off-error-color);background:var(--kbq-badge-filled-fade-off-error-background);border:transparent}.kbq-badge-filled.kbq-badge_error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-error-caption)}.kbq-badge-filled.kbq-badge_error .kbq-icon{color:var(--kbq-badge-filled-fade-off-error-icon)}.kbq-badge-outline.kbq-badge_fade-contrast{color:var(--kbq-badge-outline-fade-on-contrast-color);background:var(--kbq-badge-outline-fade-on-contrast-background);border-color:var(--kbq-badge-outline-fade-on-contrast-border)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-contrast-caption)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-outline-fade-on-contrast-icon)}.kbq-badge-outline.kbq-badge_fade-theme{color:var(--kbq-badge-outline-fade-on-theme-color);background:var(--kbq-badge-outline-fade-on-theme-background);border-color:var(--kbq-badge-outline-fade-on-theme-border)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-theme-caption)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-outline-fade-on-theme-icon)}.kbq-badge-outline.kbq-badge_fade-success{color:var(--kbq-badge-outline-fade-on-success-color);background:var(--kbq-badge-outline-fade-on-success-background);border-color:var(--kbq-badge-outline-fade-on-success-border)}.kbq-badge-outline.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-success-caption)}.kbq-badge-outline.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-outline-fade-on-success-icon)}.kbq-badge-outline.kbq-badge_fade-warning{color:var(--kbq-badge-outline-fade-on-warning-color);background:var(--kbq-badge-outline-fade-on-warning-background);border-color:var(--kbq-badge-outline-fade-on-warning-border)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-warning-caption)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-outline-fade-on-warning-icon)}.kbq-badge-outline.kbq-badge_fade-error{color:var(--kbq-badge-outline-fade-on-error-color);background:var(--kbq-badge-outline-fade-on-error-background);border-color:var(--kbq-badge-outline-fade-on-error-border)}.kbq-badge-outline.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-error-caption)}.kbq-badge-outline.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-outline-fade-on-error-icon)}.kbq-badge{font-size:var(--kbq-typography-text-normal-medium-font-size);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-badge .kbq-badge-caption{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-badge_compact{font-size:var(--kbq-typography-text-compact-medium-font-size);font-weight:var(--kbq-typography-text-compact-medium-font-weight);line-height:var(--kbq-typography-text-compact-medium-line-height);font-family:var(--kbq-typography-text-compact-medium-font-family);text-transform:var(--kbq-typography-text-compact-medium-text-transform);font-feature-settings:var(--kbq-typography-text-compact-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-medium-letter-spacing)}.kbq-badge_compact .kbq-badge-caption{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-badge{--kbq-badge-size-normal-height: var(--kbq-size-xxl);--kbq-badge-size-normal-icon-left-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-margin-right: var(--kbq-size-xxs);--kbq-badge-size-normal-icon-right-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-margin-left: var(--kbq-size-xxs);--kbq-badge-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-badge-size-normal-content-padding: var(--kbq-size-xxs);--kbq-badge-size-normal-border-width: var(--kbq-size-border-width);--kbq-badge-size-normal-border-radius: var(--kbq-size-xxs);--kbq-badge-size-compact-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-margin-right: var(--kbq-size-3xs);--kbq-badge-size-compact-icon-right-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-margin-left: var(--kbq-size-3xs);--kbq-badge-size-compact-vertical-padding: 0;--kbq-badge-size-compact-horizontal-padding: var(--kbq-size-xxs);--kbq-badge-size-compact-content-padding: var(--kbq-size-3xs);--kbq-badge-size-compact-border-width: var(--kbq-size-border-width);--kbq-badge-size-compact-border-radius: var(--kbq-size-xxs);--kbq-badge-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-badge-filled-fade-off-contrast-color: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-caption: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-icon: var(--kbq-icon-on-contrast);--kbq-badge-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-badge-filled-fade-off-theme-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-success-background: var(--kbq-background-success);--kbq-badge-filled-fade-off-success-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-error-background: var(--kbq-background-error);--kbq-badge-filled-fade-off-error-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-badge-filled-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-badge-filled-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-badge-filled-fade-on-success-background: var(--kbq-background-success-fade);--kbq-badge-filled-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-badge-filled-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-badge-filled-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-icon: var(--kbq-icon-error);--kbq-badge-outline-fade-on-theme-background: transparent;--kbq-badge-outline-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-border: var(--kbq-line-theme-fade);--kbq-badge-outline-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-outline-fade-on-contrast-background: transparent;--kbq-badge-outline-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-border: var(--kbq-line-contrast-fade);--kbq-badge-outline-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-badge-outline-fade-on-success-background: transparent;--kbq-badge-outline-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-border: var(--kbq-line-success-fade);--kbq-badge-outline-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-outline-fade-on-warning-background: transparent;--kbq-badge-outline-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-border: var(--kbq-line-warning-fade);--kbq-badge-outline-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-outline-fade-on-error-background: transparent;--kbq-badge-outline-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-border: var(--kbq-line-error-fade);--kbq-badge-outline-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-icon: var(--kbq-icon-error)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
102
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: KbqBadge, selector: "kbq-badge", inputs: { compact: "compact", outline: "outline", badgeColor: "badgeColor" }, host: { properties: { "class.kbq-badge_compact": "compact", "class.kbq-badge-filled": "!outline", "class.kbq-badge-outline": "outline", "class": "badgeColor" }, classAttribute: "kbq-badge" }, queries: [{ propertyName: "iconItem", first: true, predicate: KbqIconItem, descendants: true }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-badge{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;height:var(--kbq-badge-size-normal-height);text-align:center;white-space:nowrap;border-style:solid;box-sizing:border-box;padding-right:var(--kbq-badge-size-normal-horizontal-padding);padding-left:var(--kbq-badge-size-normal-horizontal-padding);border-width:var(--kbq-badge-size-normal-border-width);border-radius:var(--kbq-badge-size-normal-border-radius)}.kbq-badge .kbq-badge-caption{padding-left:var(--kbq-badge-size-normal-content-padding)}.kbq-badge .kbq-icon_left{margin-right:var(--kbq-badge-size-normal-icon-left-margin-right)}.kbq-badge .kbq-icon_right{margin-left:var(--kbq-badge-size-normal-icon-right-margin-left)}.kbq-badge.kbq-badge_compact{height:var(--kbq-badge-size-compact-height);padding-right:var(--kbq-badge-size-compact-horizontal-padding);padding-left:var(--kbq-badge-size-compact-horizontal-padding);border-width:var(--kbq-badge-size-compact-border-width);border-radius:var(--kbq-badge-size-compact-border-radius)}.kbq-badge.kbq-badge_compact .kbq-badge-caption{padding-left:var(--kbq-badge-size-compact-content-padding)}.kbq-badge.kbq-badge_compact .kbq-icon_left{margin-right:var(--kbq-badge-size-compact-icon-left-margin-right)}.kbq-badge.kbq-badge_compact .kbq-icon_right{margin-left:var(--kbq-badge-size-compact-icon-right-margin-left)}.kbq-badge-filled.kbq-badge_fade-contrast{color:var(--kbq-badge-filled-fade-on-contrast-color);background:var(--kbq-badge-filled-fade-on-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-contrast-caption)}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-filled-fade-on-contrast-icon)}.kbq-badge-filled.kbq-badge_fade-theme{color:var(--kbq-badge-filled-fade-on-theme-color);background:var(--kbq-badge-filled-fade-on-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-theme-caption)}.kbq-badge-filled.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-filled-fade-on-theme-icon)}.kbq-badge-filled.kbq-badge_fade-success{color:var(--kbq-badge-filled-fade-on-success-color);background:var(--kbq-badge-filled-fade-on-success-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-success-caption)}.kbq-badge-filled.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-filled-fade-on-success-icon)}.kbq-badge-filled.kbq-badge_fade-warning{color:var(--kbq-badge-filled-fade-on-warning-color);background:var(--kbq-badge-filled-fade-on-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-warning-caption)}.kbq-badge-filled.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-filled-fade-on-warning-icon)}.kbq-badge-filled.kbq-badge_fade-error{color:var(--kbq-badge-filled-fade-on-error-color);background:var(--kbq-badge-filled-fade-on-error-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-error-caption)}.kbq-badge-filled.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-filled-fade-on-error-icon)}.kbq-badge-filled.kbq-badge_contrast{color:var(--kbq-badge-filled-fade-off-contrast-color);background:var(--kbq-badge-filled-fade-off-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-contrast-caption)}.kbq-badge-filled.kbq-badge_contrast .kbq-icon{color:var(--kbq-badge-filled-fade-off-contrast-icon)}.kbq-badge-filled.kbq-badge_theme{color:var(--kbq-badge-filled-fade-off-theme-color);background:var(--kbq-badge-filled-fade-off-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-theme-caption)}.kbq-badge-filled.kbq-badge_theme .kbq-icon{color:var(--kbq-badge-filled-fade-off-theme-icon)}.kbq-badge-filled.kbq-badge_success{color:var(--kbq-badge-filled-fade-off-success-color);background:var(--kbq-badge-filled-fade-off-success-background);border:transparent}.kbq-badge-filled.kbq-badge_success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-success-caption)}.kbq-badge-filled.kbq-badge_success .kbq-icon{color:var(--kbq-badge-filled-fade-off-success-icon)}.kbq-badge-filled.kbq-badge_warning{color:var(--kbq-badge-filled-fade-off-warning-color);background:var(--kbq-badge-filled-fade-off-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-warning-caption)}.kbq-badge-filled.kbq-badge_warning .kbq-icon{color:var(--kbq-badge-filled-fade-off-warning-icon)}.kbq-badge-filled.kbq-badge_error{color:var(--kbq-badge-filled-fade-off-error-color);background:var(--kbq-badge-filled-fade-off-error-background);border:transparent}.kbq-badge-filled.kbq-badge_error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-error-caption)}.kbq-badge-filled.kbq-badge_error .kbq-icon{color:var(--kbq-badge-filled-fade-off-error-icon)}.kbq-badge-outline.kbq-badge_fade-contrast{color:var(--kbq-badge-outline-fade-on-contrast-color);background:var(--kbq-badge-outline-fade-on-contrast-background);border-color:var(--kbq-badge-outline-fade-on-contrast-border)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-contrast-caption)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-outline-fade-on-contrast-icon)}.kbq-badge-outline.kbq-badge_fade-theme{color:var(--kbq-badge-outline-fade-on-theme-color);background:var(--kbq-badge-outline-fade-on-theme-background);border-color:var(--kbq-badge-outline-fade-on-theme-border)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-theme-caption)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-outline-fade-on-theme-icon)}.kbq-badge-outline.kbq-badge_fade-success{color:var(--kbq-badge-outline-fade-on-success-color);background:var(--kbq-badge-outline-fade-on-success-background);border-color:var(--kbq-badge-outline-fade-on-success-border)}.kbq-badge-outline.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-success-caption)}.kbq-badge-outline.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-outline-fade-on-success-icon)}.kbq-badge-outline.kbq-badge_fade-warning{color:var(--kbq-badge-outline-fade-on-warning-color);background:var(--kbq-badge-outline-fade-on-warning-background);border-color:var(--kbq-badge-outline-fade-on-warning-border)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-warning-caption)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-outline-fade-on-warning-icon)}.kbq-badge-outline.kbq-badge_fade-error{color:var(--kbq-badge-outline-fade-on-error-color);background:var(--kbq-badge-outline-fade-on-error-background);border-color:var(--kbq-badge-outline-fade-on-error-border)}.kbq-badge-outline.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-error-caption)}.kbq-badge-outline.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-outline-fade-on-error-icon)}.kbq-badge{font-size:var(--kbq-typography-text-normal-medium-font-size);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-badge .kbq-badge-caption{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-badge_compact{font-size:var(--kbq-typography-text-compact-medium-font-size);font-weight:var(--kbq-typography-text-compact-medium-font-weight);line-height:var(--kbq-typography-text-compact-medium-line-height);font-family:var(--kbq-typography-text-compact-medium-font-family);text-transform:var(--kbq-typography-text-compact-medium-text-transform);font-feature-settings:var(--kbq-typography-text-compact-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-medium-letter-spacing)}.kbq-badge_compact .kbq-badge-caption{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-badge{--kbq-badge-size-normal-height: var(--kbq-size-xxl);--kbq-badge-size-normal-icon-left-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-margin-right: var(--kbq-size-xxs);--kbq-badge-size-normal-icon-right-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-margin-left: var(--kbq-size-xxs);--kbq-badge-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-badge-size-normal-content-padding: var(--kbq-size-xxs);--kbq-badge-size-normal-border-width: var(--kbq-size-border-width);--kbq-badge-size-normal-border-radius: var(--kbq-size-xxs);--kbq-badge-size-compact-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-margin-right: var(--kbq-size-3xs);--kbq-badge-size-compact-icon-right-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-margin-left: var(--kbq-size-3xs);--kbq-badge-size-compact-vertical-padding: 0;--kbq-badge-size-compact-horizontal-padding: var(--kbq-size-xxs);--kbq-badge-size-compact-content-padding: var(--kbq-size-3xs);--kbq-badge-size-compact-border-width: var(--kbq-size-border-width);--kbq-badge-size-compact-border-radius: var(--kbq-size-xxs);--kbq-badge-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-badge-filled-fade-off-contrast-color: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-caption: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-icon: var(--kbq-icon-on-contrast);--kbq-badge-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-badge-filled-fade-off-theme-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-success-background: var(--kbq-background-success);--kbq-badge-filled-fade-off-success-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-error-background: var(--kbq-background-error);--kbq-badge-filled-fade-off-error-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-badge-filled-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-badge-filled-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast);--kbq-badge-filled-fade-on-success-background: var(--kbq-background-success-fade);--kbq-badge-filled-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-badge-filled-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-badge-filled-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-icon: var(--kbq-icon-error);--kbq-badge-outline-fade-on-theme-background: transparent;--kbq-badge-outline-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-border: var(--kbq-line-theme-fade);--kbq-badge-outline-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-outline-fade-on-contrast-background: transparent;--kbq-badge-outline-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-border: var(--kbq-line-contrast-fade);--kbq-badge-outline-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast);--kbq-badge-outline-fade-on-success-background: transparent;--kbq-badge-outline-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-border: var(--kbq-line-success-fade);--kbq-badge-outline-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-outline-fade-on-warning-background: transparent;--kbq-badge-outline-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-border: var(--kbq-line-warning-fade);--kbq-badge-outline-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-outline-fade-on-error-background: transparent;--kbq-badge-outline-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-border: var(--kbq-line-error-fade);--kbq-badge-outline-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-icon: var(--kbq-icon-error)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqBadge, decorators: [{
105
105
  type: Component,
@@ -109,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
109
109
  '[class.kbq-badge-filled]': '!outline',
110
110
  '[class.kbq-badge-outline]': 'outline',
111
111
  '[class]': 'badgeColor'
112
- }, styles: [".kbq-badge{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;height:var(--kbq-badge-size-normal-height);text-align:center;white-space:nowrap;border-style:solid;box-sizing:border-box;padding-right:var(--kbq-badge-size-normal-horizontal-padding);padding-left:var(--kbq-badge-size-normal-horizontal-padding);border-width:var(--kbq-badge-size-normal-border-width);border-radius:var(--kbq-badge-size-normal-border-radius)}.kbq-badge .kbq-badge-caption{padding-left:var(--kbq-badge-size-normal-content-padding)}.kbq-badge .kbq-icon_left{margin-right:var(--kbq-badge-size-normal-icon-left-margin-right)}.kbq-badge .kbq-icon_right{margin-left:var(--kbq-badge-size-normal-icon-right-margin-left)}.kbq-badge.kbq-badge_compact{height:var(--kbq-badge-size-compact-height);padding-right:var(--kbq-badge-size-compact-horizontal-padding);padding-left:var(--kbq-badge-size-compact-horizontal-padding);border-width:var(--kbq-badge-size-compact-border-width);border-radius:var(--kbq-badge-size-compact-border-radius)}.kbq-badge.kbq-badge_compact .kbq-badge-caption{padding-left:var(--kbq-badge-size-compact-content-padding)}.kbq-badge.kbq-badge_compact .kbq-icon_left{margin-right:var(--kbq-badge-size-compact-icon-left-margin-right)}.kbq-badge.kbq-badge_compact .kbq-icon_right{margin-left:var(--kbq-badge-size-compact-icon-right-margin-left)}.kbq-badge-filled.kbq-badge_fade-contrast{color:var(--kbq-badge-filled-fade-on-contrast-color);background:var(--kbq-badge-filled-fade-on-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-contrast-caption)}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-filled-fade-on-contrast-icon)}.kbq-badge-filled.kbq-badge_fade-theme{color:var(--kbq-badge-filled-fade-on-theme-color);background:var(--kbq-badge-filled-fade-on-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-theme-caption)}.kbq-badge-filled.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-filled-fade-on-theme-icon)}.kbq-badge-filled.kbq-badge_fade-success{color:var(--kbq-badge-filled-fade-on-success-color);background:var(--kbq-badge-filled-fade-on-success-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-success-caption)}.kbq-badge-filled.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-filled-fade-on-success-icon)}.kbq-badge-filled.kbq-badge_fade-warning{color:var(--kbq-badge-filled-fade-on-warning-color);background:var(--kbq-badge-filled-fade-on-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-warning-caption)}.kbq-badge-filled.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-filled-fade-on-warning-icon)}.kbq-badge-filled.kbq-badge_fade-error{color:var(--kbq-badge-filled-fade-on-error-color);background:var(--kbq-badge-filled-fade-on-error-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-error-caption)}.kbq-badge-filled.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-filled-fade-on-error-icon)}.kbq-badge-filled.kbq-badge_contrast{color:var(--kbq-badge-filled-fade-off-contrast-color);background:var(--kbq-badge-filled-fade-off-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-contrast-caption)}.kbq-badge-filled.kbq-badge_contrast .kbq-icon{color:var(--kbq-badge-filled-fade-off-contrast-icon)}.kbq-badge-filled.kbq-badge_theme{color:var(--kbq-badge-filled-fade-off-theme-color);background:var(--kbq-badge-filled-fade-off-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-theme-caption)}.kbq-badge-filled.kbq-badge_theme .kbq-icon{color:var(--kbq-badge-filled-fade-off-theme-icon)}.kbq-badge-filled.kbq-badge_success{color:var(--kbq-badge-filled-fade-off-success-color);background:var(--kbq-badge-filled-fade-off-success-background);border:transparent}.kbq-badge-filled.kbq-badge_success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-success-caption)}.kbq-badge-filled.kbq-badge_success .kbq-icon{color:var(--kbq-badge-filled-fade-off-success-icon)}.kbq-badge-filled.kbq-badge_warning{color:var(--kbq-badge-filled-fade-off-warning-color);background:var(--kbq-badge-filled-fade-off-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-warning-caption)}.kbq-badge-filled.kbq-badge_warning .kbq-icon{color:var(--kbq-badge-filled-fade-off-warning-icon)}.kbq-badge-filled.kbq-badge_error{color:var(--kbq-badge-filled-fade-off-error-color);background:var(--kbq-badge-filled-fade-off-error-background);border:transparent}.kbq-badge-filled.kbq-badge_error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-error-caption)}.kbq-badge-filled.kbq-badge_error .kbq-icon{color:var(--kbq-badge-filled-fade-off-error-icon)}.kbq-badge-outline.kbq-badge_fade-contrast{color:var(--kbq-badge-outline-fade-on-contrast-color);background:var(--kbq-badge-outline-fade-on-contrast-background);border-color:var(--kbq-badge-outline-fade-on-contrast-border)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-contrast-caption)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-outline-fade-on-contrast-icon)}.kbq-badge-outline.kbq-badge_fade-theme{color:var(--kbq-badge-outline-fade-on-theme-color);background:var(--kbq-badge-outline-fade-on-theme-background);border-color:var(--kbq-badge-outline-fade-on-theme-border)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-theme-caption)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-outline-fade-on-theme-icon)}.kbq-badge-outline.kbq-badge_fade-success{color:var(--kbq-badge-outline-fade-on-success-color);background:var(--kbq-badge-outline-fade-on-success-background);border-color:var(--kbq-badge-outline-fade-on-success-border)}.kbq-badge-outline.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-success-caption)}.kbq-badge-outline.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-outline-fade-on-success-icon)}.kbq-badge-outline.kbq-badge_fade-warning{color:var(--kbq-badge-outline-fade-on-warning-color);background:var(--kbq-badge-outline-fade-on-warning-background);border-color:var(--kbq-badge-outline-fade-on-warning-border)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-warning-caption)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-outline-fade-on-warning-icon)}.kbq-badge-outline.kbq-badge_fade-error{color:var(--kbq-badge-outline-fade-on-error-color);background:var(--kbq-badge-outline-fade-on-error-background);border-color:var(--kbq-badge-outline-fade-on-error-border)}.kbq-badge-outline.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-error-caption)}.kbq-badge-outline.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-outline-fade-on-error-icon)}.kbq-badge{font-size:var(--kbq-typography-text-normal-medium-font-size);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-badge .kbq-badge-caption{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-badge_compact{font-size:var(--kbq-typography-text-compact-medium-font-size);font-weight:var(--kbq-typography-text-compact-medium-font-weight);line-height:var(--kbq-typography-text-compact-medium-line-height);font-family:var(--kbq-typography-text-compact-medium-font-family);text-transform:var(--kbq-typography-text-compact-medium-text-transform);font-feature-settings:var(--kbq-typography-text-compact-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-medium-letter-spacing)}.kbq-badge_compact .kbq-badge-caption{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-badge{--kbq-badge-size-normal-height: var(--kbq-size-xxl);--kbq-badge-size-normal-icon-left-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-margin-right: var(--kbq-size-xxs);--kbq-badge-size-normal-icon-right-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-margin-left: var(--kbq-size-xxs);--kbq-badge-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-badge-size-normal-content-padding: var(--kbq-size-xxs);--kbq-badge-size-normal-border-width: var(--kbq-size-border-width);--kbq-badge-size-normal-border-radius: var(--kbq-size-xxs);--kbq-badge-size-compact-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-margin-right: var(--kbq-size-3xs);--kbq-badge-size-compact-icon-right-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-margin-left: var(--kbq-size-3xs);--kbq-badge-size-compact-vertical-padding: 0;--kbq-badge-size-compact-horizontal-padding: var(--kbq-size-xxs);--kbq-badge-size-compact-content-padding: var(--kbq-size-3xs);--kbq-badge-size-compact-border-width: var(--kbq-size-border-width);--kbq-badge-size-compact-border-radius: var(--kbq-size-xxs);--kbq-badge-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-badge-filled-fade-off-contrast-color: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-caption: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-icon: var(--kbq-icon-on-contrast);--kbq-badge-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-badge-filled-fade-off-theme-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-success-background: var(--kbq-background-success);--kbq-badge-filled-fade-off-success-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-error-background: var(--kbq-background-error);--kbq-badge-filled-fade-off-error-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-badge-filled-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-badge-filled-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-badge-filled-fade-on-success-background: var(--kbq-background-success-fade);--kbq-badge-filled-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-badge-filled-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-badge-filled-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-icon: var(--kbq-icon-error);--kbq-badge-outline-fade-on-theme-background: transparent;--kbq-badge-outline-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-border: var(--kbq-line-theme-fade);--kbq-badge-outline-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-outline-fade-on-contrast-background: transparent;--kbq-badge-outline-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-border: var(--kbq-line-contrast-fade);--kbq-badge-outline-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-badge-outline-fade-on-success-background: transparent;--kbq-badge-outline-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-border: var(--kbq-line-success-fade);--kbq-badge-outline-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-outline-fade-on-warning-background: transparent;--kbq-badge-outline-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-border: var(--kbq-line-warning-fade);--kbq-badge-outline-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-outline-fade-on-error-background: transparent;--kbq-badge-outline-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-border: var(--kbq-line-error-fade);--kbq-badge-outline-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-icon: var(--kbq-icon-error)}\n"] }]
112
+ }, styles: [".kbq-badge{display:inline-flex;flex-direction:row;justify-content:flex-start;align-items:center;height:var(--kbq-badge-size-normal-height);text-align:center;white-space:nowrap;border-style:solid;box-sizing:border-box;padding-right:var(--kbq-badge-size-normal-horizontal-padding);padding-left:var(--kbq-badge-size-normal-horizontal-padding);border-width:var(--kbq-badge-size-normal-border-width);border-radius:var(--kbq-badge-size-normal-border-radius)}.kbq-badge .kbq-badge-caption{padding-left:var(--kbq-badge-size-normal-content-padding)}.kbq-badge .kbq-icon_left{margin-right:var(--kbq-badge-size-normal-icon-left-margin-right)}.kbq-badge .kbq-icon_right{margin-left:var(--kbq-badge-size-normal-icon-right-margin-left)}.kbq-badge.kbq-badge_compact{height:var(--kbq-badge-size-compact-height);padding-right:var(--kbq-badge-size-compact-horizontal-padding);padding-left:var(--kbq-badge-size-compact-horizontal-padding);border-width:var(--kbq-badge-size-compact-border-width);border-radius:var(--kbq-badge-size-compact-border-radius)}.kbq-badge.kbq-badge_compact .kbq-badge-caption{padding-left:var(--kbq-badge-size-compact-content-padding)}.kbq-badge.kbq-badge_compact .kbq-icon_left{margin-right:var(--kbq-badge-size-compact-icon-left-margin-right)}.kbq-badge.kbq-badge_compact .kbq-icon_right{margin-left:var(--kbq-badge-size-compact-icon-right-margin-left)}.kbq-badge-filled.kbq-badge_fade-contrast{color:var(--kbq-badge-filled-fade-on-contrast-color);background:var(--kbq-badge-filled-fade-on-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-contrast-caption)}.kbq-badge-filled.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-filled-fade-on-contrast-icon)}.kbq-badge-filled.kbq-badge_fade-theme{color:var(--kbq-badge-filled-fade-on-theme-color);background:var(--kbq-badge-filled-fade-on-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-theme-caption)}.kbq-badge-filled.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-filled-fade-on-theme-icon)}.kbq-badge-filled.kbq-badge_fade-success{color:var(--kbq-badge-filled-fade-on-success-color);background:var(--kbq-badge-filled-fade-on-success-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-success-caption)}.kbq-badge-filled.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-filled-fade-on-success-icon)}.kbq-badge-filled.kbq-badge_fade-warning{color:var(--kbq-badge-filled-fade-on-warning-color);background:var(--kbq-badge-filled-fade-on-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-warning-caption)}.kbq-badge-filled.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-filled-fade-on-warning-icon)}.kbq-badge-filled.kbq-badge_fade-error{color:var(--kbq-badge-filled-fade-on-error-color);background:var(--kbq-badge-filled-fade-on-error-background);border:transparent}.kbq-badge-filled.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-on-error-caption)}.kbq-badge-filled.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-filled-fade-on-error-icon)}.kbq-badge-filled.kbq-badge_contrast{color:var(--kbq-badge-filled-fade-off-contrast-color);background:var(--kbq-badge-filled-fade-off-contrast-background);border:transparent}.kbq-badge-filled.kbq-badge_contrast .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-contrast-caption)}.kbq-badge-filled.kbq-badge_contrast .kbq-icon{color:var(--kbq-badge-filled-fade-off-contrast-icon)}.kbq-badge-filled.kbq-badge_theme{color:var(--kbq-badge-filled-fade-off-theme-color);background:var(--kbq-badge-filled-fade-off-theme-background);border:transparent}.kbq-badge-filled.kbq-badge_theme .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-theme-caption)}.kbq-badge-filled.kbq-badge_theme .kbq-icon{color:var(--kbq-badge-filled-fade-off-theme-icon)}.kbq-badge-filled.kbq-badge_success{color:var(--kbq-badge-filled-fade-off-success-color);background:var(--kbq-badge-filled-fade-off-success-background);border:transparent}.kbq-badge-filled.kbq-badge_success .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-success-caption)}.kbq-badge-filled.kbq-badge_success .kbq-icon{color:var(--kbq-badge-filled-fade-off-success-icon)}.kbq-badge-filled.kbq-badge_warning{color:var(--kbq-badge-filled-fade-off-warning-color);background:var(--kbq-badge-filled-fade-off-warning-background);border:transparent}.kbq-badge-filled.kbq-badge_warning .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-warning-caption)}.kbq-badge-filled.kbq-badge_warning .kbq-icon{color:var(--kbq-badge-filled-fade-off-warning-icon)}.kbq-badge-filled.kbq-badge_error{color:var(--kbq-badge-filled-fade-off-error-color);background:var(--kbq-badge-filled-fade-off-error-background);border:transparent}.kbq-badge-filled.kbq-badge_error .kbq-badge-caption{color:var(--kbq-badge-filled-fade-off-error-caption)}.kbq-badge-filled.kbq-badge_error .kbq-icon{color:var(--kbq-badge-filled-fade-off-error-icon)}.kbq-badge-outline.kbq-badge_fade-contrast{color:var(--kbq-badge-outline-fade-on-contrast-color);background:var(--kbq-badge-outline-fade-on-contrast-background);border-color:var(--kbq-badge-outline-fade-on-contrast-border)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-contrast-caption)}.kbq-badge-outline.kbq-badge_fade-contrast .kbq-icon{color:var(--kbq-badge-outline-fade-on-contrast-icon)}.kbq-badge-outline.kbq-badge_fade-theme{color:var(--kbq-badge-outline-fade-on-theme-color);background:var(--kbq-badge-outline-fade-on-theme-background);border-color:var(--kbq-badge-outline-fade-on-theme-border)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-theme-caption)}.kbq-badge-outline.kbq-badge_fade-theme .kbq-icon{color:var(--kbq-badge-outline-fade-on-theme-icon)}.kbq-badge-outline.kbq-badge_fade-success{color:var(--kbq-badge-outline-fade-on-success-color);background:var(--kbq-badge-outline-fade-on-success-background);border-color:var(--kbq-badge-outline-fade-on-success-border)}.kbq-badge-outline.kbq-badge_fade-success .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-success-caption)}.kbq-badge-outline.kbq-badge_fade-success .kbq-icon{color:var(--kbq-badge-outline-fade-on-success-icon)}.kbq-badge-outline.kbq-badge_fade-warning{color:var(--kbq-badge-outline-fade-on-warning-color);background:var(--kbq-badge-outline-fade-on-warning-background);border-color:var(--kbq-badge-outline-fade-on-warning-border)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-warning-caption)}.kbq-badge-outline.kbq-badge_fade-warning .kbq-icon{color:var(--kbq-badge-outline-fade-on-warning-icon)}.kbq-badge-outline.kbq-badge_fade-error{color:var(--kbq-badge-outline-fade-on-error-color);background:var(--kbq-badge-outline-fade-on-error-background);border-color:var(--kbq-badge-outline-fade-on-error-border)}.kbq-badge-outline.kbq-badge_fade-error .kbq-badge-caption{color:var(--kbq-badge-outline-fade-on-error-caption)}.kbq-badge-outline.kbq-badge_fade-error .kbq-icon{color:var(--kbq-badge-outline-fade-on-error-icon)}.kbq-badge{font-size:var(--kbq-typography-text-normal-medium-font-size);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-badge .kbq-badge-caption{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-badge_compact{font-size:var(--kbq-typography-text-compact-medium-font-size);font-weight:var(--kbq-typography-text-compact-medium-font-weight);line-height:var(--kbq-typography-text-compact-medium-line-height);font-family:var(--kbq-typography-text-compact-medium-font-family);text-transform:var(--kbq-typography-text-compact-medium-text-transform);font-feature-settings:var(--kbq-typography-text-compact-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-medium-letter-spacing)}.kbq-badge_compact .kbq-badge-caption{font-size:var(--kbq-typography-text-compact-font-size);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-badge{--kbq-badge-size-normal-height: var(--kbq-size-xxl);--kbq-badge-size-normal-icon-left-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-left-margin-right: var(--kbq-size-xxs);--kbq-badge-size-normal-icon-right-width: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-height: var(--kbq-size-l);--kbq-badge-size-normal-icon-right-margin-left: var(--kbq-size-xxs);--kbq-badge-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-badge-size-normal-content-padding: var(--kbq-size-xxs);--kbq-badge-size-normal-border-width: var(--kbq-size-border-width);--kbq-badge-size-normal-border-radius: var(--kbq-size-xxs);--kbq-badge-size-compact-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-left-margin-right: var(--kbq-size-3xs);--kbq-badge-size-compact-icon-right-width: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-height: var(--kbq-size-l);--kbq-badge-size-compact-icon-right-margin-left: var(--kbq-size-3xs);--kbq-badge-size-compact-vertical-padding: 0;--kbq-badge-size-compact-horizontal-padding: var(--kbq-size-xxs);--kbq-badge-size-compact-content-padding: var(--kbq-size-3xs);--kbq-badge-size-compact-border-width: var(--kbq-size-border-width);--kbq-badge-size-compact-border-radius: var(--kbq-size-xxs);--kbq-badge-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-badge-filled-fade-off-contrast-color: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-caption: var(--kbq-foreground-on-contrast);--kbq-badge-filled-fade-off-contrast-icon: var(--kbq-icon-on-contrast);--kbq-badge-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-badge-filled-fade-off-theme-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-theme-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-success-background: var(--kbq-background-success);--kbq-badge-filled-fade-off-success-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-success-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-off-error-background: var(--kbq-background-error);--kbq-badge-filled-fade-off-error-color: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-caption: var(--kbq-foreground-white);--kbq-badge-filled-fade-off-error-icon: var(--kbq-icon-white);--kbq-badge-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-badge-filled-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-filled-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-badge-filled-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-filled-fade-on-contrast-icon: var(--kbq-icon-contrast);--kbq-badge-filled-fade-on-success-background: var(--kbq-background-success-fade);--kbq-badge-filled-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-filled-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-badge-filled-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-filled-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-badge-filled-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-filled-fade-on-error-icon: var(--kbq-icon-error);--kbq-badge-outline-fade-on-theme-background: transparent;--kbq-badge-outline-fade-on-theme-color: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-border: var(--kbq-line-theme-fade);--kbq-badge-outline-fade-on-theme-caption: var(--kbq-foreground-theme);--kbq-badge-outline-fade-on-theme-icon: var(--kbq-icon-theme);--kbq-badge-outline-fade-on-contrast-background: transparent;--kbq-badge-outline-fade-on-contrast-color: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-border: var(--kbq-line-contrast-fade);--kbq-badge-outline-fade-on-contrast-caption: var(--kbq-foreground-contrast);--kbq-badge-outline-fade-on-contrast-icon: var(--kbq-icon-contrast);--kbq-badge-outline-fade-on-success-background: transparent;--kbq-badge-outline-fade-on-success-color: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-border: var(--kbq-line-success-fade);--kbq-badge-outline-fade-on-success-caption: var(--kbq-foreground-success);--kbq-badge-outline-fade-on-success-icon: var(--kbq-icon-success);--kbq-badge-outline-fade-on-warning-background: transparent;--kbq-badge-outline-fade-on-warning-color: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-border: var(--kbq-line-warning-fade);--kbq-badge-outline-fade-on-warning-caption: var(--kbq-foreground-warning);--kbq-badge-outline-fade-on-warning-icon: var(--kbq-icon-warning);--kbq-badge-outline-fade-on-error-background: transparent;--kbq-badge-outline-fade-on-error-color: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-border: var(--kbq-line-error-fade);--kbq-badge-outline-fade-on-error-caption: var(--kbq-foreground-error);--kbq-badge-outline-fade-on-error-icon: var(--kbq-icon-error)}\n"] }]
113
113
  }], propDecorators: { iconItem: [{
114
114
  type: ContentChild,
115
115
  args: [KbqIconItem]
@@ -1,6 +1,6 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, ElementRef, forwardRef, Input, numberAttribute, QueryList, Renderer2, SkipSelf, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { getNodesWithoutComments, KBQ_TITLE_TEXT_REF, KbqColorDirective, leftIconClassName, rightIconClassName } from '@koobiq/components/core';
3
+ import { getNodesWithoutComments, KBQ_TITLE_TEXT_REF, KbqColorDirective, KbqComponentColors, leftIconClassName, rightIconClassName } from '@koobiq/components/core';
4
4
  import { KbqIcon } from '@koobiq/components/icon';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/cdk/a11y";
@@ -103,6 +103,7 @@ export class KbqButton extends KbqColorDirective {
103
103
  this._kbqStyle = KbqButtonStyles.Filled;
104
104
  this._disabled = false;
105
105
  this._tabIndex = 0;
106
+ this.color = KbqComponentColors.ContrastFade;
106
107
  }
107
108
  ngAfterViewInit() {
108
109
  this.runFocusMonitor();
@@ -173,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
173
174
  type: Input,
174
175
  args: [{ transform: numberAttribute }]
175
176
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBRWYsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFFakIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNyQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUVsRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0lBQ25CLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixDQUFDO0FBQzlELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDO0FBU2hFLE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsWUFDSSxVQUFzQixFQUNkLFFBQW1CLEVBQ1AsR0FBc0I7UUFEbEMsYUFBUSxHQUFSLFFBQVEs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ci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBnZXROb2Rlc1dpdGhvdXRDb21tZW50cyxcbiAgICBLQlFfVElUTEVfVEVYVF9SRUYsXG4gICAgS2JxQ29sb3JEaXJlY3RpdmUsXG4gICAgS2JxVGl0bGVUZXh0UmVmLFxuICAgIGxlZnRJY29uQ2xhc3NOYW1lLFxuICAgIHJpZ2h0SWNvbkNsYXNzTmFtZVxufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuXG5leHBvcnQgZW51bSBLYnFCdXR0b25TdHlsZXMge1xuICAgIEZpbGxlZCA9ICdmaWxsZWQnLFxuICAgIE91dGxpbmUgPSAnb3V0bGluZScsXG4gICAgVHJhbnNwYXJlbnQgPSAndHJhbnNwYXJlbnQnXG59XG5cbmV4cG9ydCBjb25zdCBidXR0b25MZWZ0SWNvbkNsYXNzTmFtZSA9ICdrYnEtYnV0dG9uLWljb25fbGVmdCc7XG5leHBvcnQgY29uc3QgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lID0gJ2ticS1idXR0b24taWNvbl9yaWdodCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticS1idXR0b25dJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLWJ1dHRvbl0nOiAnIWlzSWNvbkJ1dHRvbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWJ1dHRvbi1pY29uXSc6ICdpc0ljb25CdXR0b24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFCdXR0b25Dc3NTdHlsZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gS2JxSWNvbikpIGljb25zOiBRdWVyeUxpc3Q8S2JxSWNvbj47XG5cbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGlzSWNvbkJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQFNraXBTZWxmKCkgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uTGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5pY29uc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5nZXRIb3N0RWxlbWVudCgpKVxuICAgICAgICAgICAgLmZvckVhY2goKGljb25Ib3N0RWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCBsZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhpY29uSG9zdEVsZW1lbnQsIHJpZ2h0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0d29JY29ucyA9IDI7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMgPSBnZXROb2Rlc1dpdGhvdXRDb21tZW50cyhcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcua2JxLWJ1dHRvbi13cmFwcGVyJykhLmNoaWxkTm9kZXMgYXMgTm9kZUxpc3RcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgPVxuICAgICAgICAgICAgISF0aGlzLmljb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5pY29ucy5sZW5ndGggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLmljb25zLmxlbmd0aCA8PSB0d29JY29ucztcblxuICAgICAgICBpZiAoY3VycmVudElzSWNvbkJ1dHRvblZhbHVlICE9PSB0aGlzLmlzSWNvbkJ1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5pc0ljb25CdXR0b24gPSBjdXJyZW50SXNJY29uQnV0dG9uVmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pY29ucy5sZW5ndGggJiYgZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aGlzLmljb25zXG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5nZXRIb3N0RWxlbWVudCgpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChpY29uSG9zdEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWNvbkluZGV4ID0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5maW5kSW5kZXgoKG5vZGUpID0+IG5vZGUgPT09IGljb25Ib3N0RWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25JbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpY29uSG9zdEVsZW1lbnQsIGxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBidXR0b25MZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaWNvbkluZGV4ID09PSBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCByaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvblJpZ2h0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdba2JxLWJ1dHRvbl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5zY3NzJywgJy4vYnV0dG9uLXRva2Vucy5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbYXR0ci50YWJJbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICAgICAnW2NsYXNzXSc6ICdrYnFTdHlsZScsXG5cbiAgICAgICAgJyhmb2N1cyknOiAnb25Gb2N1cygkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdvbkJsdXIoKSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEtCUV9USVRMRV9URVhUX1JFRiwgdXNlRXhpc3Rpbmc6IEticUJ1dHRvbiB9XVxufSlcbmV4cG9ydCBjbGFzcyBLYnFCdXR0b24gZXh0ZW5kcyBLYnFDb2xvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgS2JxVGl0bGVUZXh0UmVmIHtcbiAgICBoYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZCgna2JxVGl0bGVUZXh0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHRleHRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQga2JxU3R5bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBrYnEtYnV0dG9uXyR7dGhpcy5fa2JxU3R5bGV9YDtcbiAgICB9XG5cbiAgICBzZXQga2JxU3R5bGUodmFsdWU6IHN0cmluZyB8IEticUJ1dHRvblN0eWxlcykge1xuICAgICAgICB0aGlzLl9rYnFTdHlsZSA9IHZhbHVlIHx8IEticUJ1dHRvblN0eWxlcy5GaWxsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfa2JxU3R5bGU6IHN0cmluZyB8IEticUJ1dHRvblN0eWxlcyA9IEticUJ1dHRvblN0eWxlcy5GaWxsZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpIDogdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyAtMSA6IHRoaXMuX3RhYkluZGV4O1xuICAgIH1cblxuICAgIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGFiSW5kZXggPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgICAgIHByaXZhdGUgc3R5bGVyOiBLYnFCdXR0b25Dc3NTdHlsZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRIb3N0RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb2N1c1ZpYUtleWJvYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmdldEhvc3RFbGVtZW50KCksICdrZXlib2FyZCcpO1xuICAgIH1cblxuICAgIGhhbHREaXNhYmxlZEV2ZW50cyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvamVjdENvbnRlbnRDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLnN0eWxlci51cGRhdGVDbGFzc01vZGlmaWVyRm9ySWNvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bkZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGRpdiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLWJ1dHRvbi13cmFwcGVyXCIgKGNka09ic2VydmVDb250ZW50KT1cInByb2plY3RDb250ZW50Q2hhbmdlZCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImticS1idXR0b24tb3ZlcmxheVwiIChjbGljayk9XCJoYWx0RGlzYWJsZWRFdmVudHMoJGV2ZW50KVwiPjwvZGl2PlxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBRWYsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBRWxCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDckIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFFbEQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBMkIsQ0FBQTtBQUMvQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx1QkFBdUIsQ0FBQztBQVNoRSxNQUFNLE9BQU8sa0JBQWtCO0lBTzNCLFlBQ0ksVUFBc0IsRUFDZCxRQUFtQixFQUNQLEdBQXNCO1FBRGxDLGFB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QUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMsXG4gICAgS0JRX1RJVExFX1RFWFRfUkVGLFxuICAgIEticUNvbG9yRGlyZWN0aXZlLFxuICAgIEticUNvbXBvbmVudENvbG9ycyxcbiAgICBLYnFUaXRsZVRleHRSZWYsXG4gICAgbGVmdEljb25DbGFzc05hbWUsXG4gICAgcmlnaHRJY29uQ2xhc3NOYW1lXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5cbmV4cG9ydCBlbnVtIEticUJ1dHRvblN0eWxlcyB7XG4gICAgRmlsbGVkID0gJ2ZpbGxlZCcsXG4gICAgT3V0bGluZSA9ICdvdXRsaW5lJyxcbiAgICBUcmFuc3BhcmVudCA9ICd0cmFuc3BhcmVudCdcbn1cblxuZXhwb3J0IGNvbnN0IGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lID0gJ2ticS1idXR0b24taWNvbl9sZWZ0JztcbmV4cG9ydCBjb25zdCBidXR0b25SaWdodEljb25DbGFzc05hbWUgPSAna2JxLWJ1dHRvbi1pY29uX3JpZ2h0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxLWJ1dHRvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtYnV0dG9uXSc6ICchaXNJY29uQnV0dG9uJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtYnV0dG9uLWljb25dJzogJ2lzSWNvbkJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUJ1dHRvbkNzc1N0eWxlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBLYnFJY29uKSkgaWNvbnM6IFF1ZXJ5TGlzdDxLYnFJY29uPjtcblxuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgaXNJY29uQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAU2tpcFNlbGYoKSBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc01vZGlmaWVyRm9ySWNvbnMoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01vZGlmaWVyRm9ySWNvbnMoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBidXR0b25MZWZ0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBidXR0b25SaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICB0aGlzLmljb25zXG4gICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkpXG4gICAgICAgICAgICAuZm9yRWFjaCgoaWNvbkhvc3RFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhpY29uSG9zdEVsZW1lbnQsIGxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Ib3N0RWxlbWVudCwgcmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHR3b0ljb25zID0gMjtcbiAgICAgICAgY29uc3QgZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cyA9IGdldE5vZGVzV2l0aG91dENvbW1lbnRzKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5rYnEtYnV0dG9uLXdyYXBwZXInKSEuY2hpbGROb2RlcyBhcyBOb2RlTGlzdFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZSA9XG4gICAgICAgICAgICAhIXRoaXMuaWNvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLmljb25zLmxlbmd0aCA9PT0gZmlsdGVyZWROb2Rlc1dpdGhvdXRDb21tZW50cy5sZW5ndGggJiZcbiAgICAgICAgICAgIHRoaXMuaWNvbnMubGVuZ3RoIDw9IHR3b0ljb25zO1xuXG4gICAgICAgIGlmIChjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgIT09IHRoaXMuaXNJY29uQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzSWNvbkJ1dHRvbiA9IGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmljb25zLmxlbmd0aCAmJiBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbnNcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGljb25Ib3N0RWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uSW5kZXggPSBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmZpbmRJbmRleCgobm9kZSkgPT4gbm9kZSA9PT0gaWNvbkhvc3RFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaWNvbkluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uSW5kZXggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpY29uSG9zdEVsZW1lbnQsIHJpZ2h0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1trYnEtYnV0dG9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLnNjc3MnLCAnLi9idXR0b24tdG9rZW5zLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1thdHRyLnRhYkluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgICAgICdbY2xhc3NdJzogJ2ticVN0eWxlJyxcblxuICAgICAgICAnKGZvY3VzKSc6ICdvbkZvY3VzKCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uQmx1cigpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogS0JRX1RJVExFX1RFWFRfUkVGLCB1c2VFeGlzdGluZzogS2JxQnV0dG9uIH1dXG59KVxuZXhwb3J0IGNsYXNzIEticUJ1dHRvbiBleHRlbmRzIEticUNvbG9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBLYnFUaXRsZVRleHRSZWYge1xuICAgIGhhc0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdrYnFUaXRsZVRleHQnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGV4dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBrYnFTdHlsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGticS1idXR0b25fJHt0aGlzLl9rYnFTdHlsZX1gO1xuICAgIH1cblxuICAgIHNldCBrYnFTdHlsZSh2YWx1ZTogc3RyaW5nIHwgS2JxQnV0dG9uU3R5bGVzKSB7XG4gICAgICAgIHRoaXMuX2ticVN0eWxlID0gdmFsdWUgfHwgS2JxQnV0dG9uU3R5bGVzLkZpbGxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9rYnFTdHlsZTogc3RyaW5nIHwgS2JxQnV0dG9uU3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzLkZpbGxlZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zdG9wRm9jdXNNb25pdG9yKCkgOiB0aGlzLnJ1bkZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogdGhpcy5fdGFiSW5kZXg7XG4gICAgfVxuXG4gICAgc2V0IHRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90YWJJbmRleCA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICAgICAgcHJpdmF0ZSBzdHlsZXI6IEticUJ1dHRvbkNzc1N0eWxlclxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuY29sb3IgPSBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3RGYWRlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1cygkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldEhvc3RFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzVmlhS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSwgJ2tleWJvYXJkJyk7XG4gICAgfVxuXG4gICAgaGFsdERpc2FibGVkRXZlbnRzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9qZWN0Q29udGVudENoYW5nZWQoKSB7XG4gICAgICAgIHRoaXMuc3R5bGVyLnVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2ICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtYnV0dG9uLXdyYXBwZXJcIiAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwicHJvamVjdENvbnRlbnRDaGFuZ2VkKClcIj5cbiAgICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwia2JxLWJ1dHRvbi1vdmVybGF5XCIgKGNsaWNrKT1cImhhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpXCI+PC9kaXY+XG4iXX0=
@@ -18,22 +18,23 @@ export const kbqCodeBlockFallbackFileLanguageProvider = (language) => ({
18
18
  /** Directive which applies syntax highlighting to the code block content. */
19
19
  export class KbqCodeBlockHighlight {
20
20
  /** The code file. */
21
- set file({ language, content }) {
21
+ set file(file) {
22
22
  const window = this.getWindow();
23
23
  if (!window)
24
24
  return;
25
+ let { language } = file;
25
26
  if (!language || !hljs.getLanguage(language)) {
26
- console.warn(`[KbqCodeBlock] Unknown language: "${language}". Setting to "${this.fallbackFileLanguage}".`);
27
+ console.warn(`[KbqCodeBlock] Unknown file language: "${language}". Fall back to "${this.fallbackFileLanguage}".`, file);
27
28
  language = this.fallbackFileLanguage;
28
29
  }
29
- const { value: highlightedHTML, language: highlightedLanguage, illegal, relevance } = hljs.highlight(content, {
30
+ const { value: highlightedHTML, language: highlightedLanguage, illegal, relevance } = hljs.highlight(file.content, {
30
31
  language: language
31
32
  });
32
33
  if (illegal) {
33
- console.warn('[KbqCodeBlock] Content contains illegal characters.');
34
+ console.warn('[KbqCodeBlock] File content contains illegal characters.', file);
34
35
  }
35
36
  if (relevance === 0) {
36
- console.warn('[KbqCodeBlock] Content does not match the specified programming language.');
37
+ console.warn('[KbqCodeBlock] File content does not match the specified programming language.', file);
37
38
  }
38
39
  const safeHTML = this.domSanitizer.sanitize(SecurityContext.HTML, highlightedHTML);
39
40
  const highlightedHTMLWithLineNumbers = window['hljs'].lineNumbersValue(safeHTML, {
@@ -413,4 +414,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
413
414
  type: Input,
414
415
  args: [{ transform: booleanAttribute }]
415
416
  }] } });
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay1oaWdobGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxlQUFlLEVBRWYsU0FBUyxFQUNULGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxJQUFJLGNBQWMsQ0FDbkUsdUNBQXVDLEVBQ3ZDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUNqQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLENBQUMsUUFBZ0IsRUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRixPQUFPLEVBQUUscUNBQXFDO0lBQzlDLFFBQVEsRUFBRSxRQUFRO0NBQ3JCLENBQUMsQ0FBQztBQUVILDZFQUE2RTtBQVE3RSxNQUFNLE9BQU8scUJBQXFCO0lBTzlCLHFCQUFxQjtJQUNyQixJQUNJLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQW9CO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFcEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxD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QUUsTUFBTTtxQkFDaEI7aUJBQ0o7d0RBVU8sSUFBSTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkF1Q2MsU0FBUztzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBR0csVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIFByb3ZpZGVyLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWN1cml0eUNvbnRleHRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCBobGpzIGZyb20gJ2hpZ2hsaWdodC5qcyc7XG5pbXBvcnQgeyBLYnFDb2RlQmxvY2tGaWxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogRmFsbGJhY2sgbGFuZ3VhZ2UgZm9yIGNvZGUgYmxvY2sgaWYgbGFuZ3VhZ2UgaXMgbm90IHN1cHBvcnRlZC9zcGVjaWZpZWQuXG4gKlxuICogTGlzdCBvZiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzOlxuICogQGxpbmsgaHR0cHM6Ly9oaWdobGlnaHRqcy5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvc3VwcG9ydGVkLWxhbmd1YWdlcy5odG1sXG4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICAgJ0tCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0UnLFxuICAgIHsgZmFjdG9yeTogKCkgPT4gJ3BsYWludGV4dCcgfVxuKTtcblxuLyoqIFV0aWxpdHkgcHJvdmlkZXIgZm9yIGBLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFYC4gKi9cbmV4cG9ydCBjb25zdCBrYnFDb2RlQmxvY2tGYWxsYmFja0ZpbGVMYW5ndWFnZVByb3ZpZGVyID0gKGxhbmd1YWdlOiBzdHJpbmcpOiBQcm92aWRlciA9PiAoe1xuICAgIHByb3ZpZGU6IEtCUV9DT0RFX0JMT0NLX0ZBTExCQUNLX0ZJTEVfTEFOR1VBR0UsXG4gICAgdXNlVmFsdWU6IGxhbmd1YWdlXG59KTtcblxuLyoqIERpcmVjdGl2ZSB3aGljaCBhcHBsaWVzIHN5bnRheCBoaWdobGlnaHRpbmcgdG8gdGhlIGNvZGUgYmxvY2sgY29udGVudC4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdjb2RlW2ticUNvZGVCbG9ja0hpZ2hsaWdodF0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdobGpzJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQ29kZUJsb2NrSGlnaGxpZ2h0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYWxsYmFja0ZpbGVMYW5ndWFnZSA9IGluamVjdChLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFKTtcblxuICAgIC8qKiBUaGUgY29kZSBmaWxlLiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgc2V0IGZpbGUoeyBsYW5ndWFnZSwgY29udGVudCB9OiBLYnFDb2RlQmxvY2tGaWxlKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZ2V0V2luZG93KCk7XG5cbiAgICAgICAgaWYgKCF3aW5kb3cpIHJldHVybjtcblxuICAgICAgICBpZiAoIWxhbmd1YWdlIHx8ICFobGpzLmdldExhbmd1YWdlKGxhbmd1YWdlKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbS2JxQ29kZUJsb2NrXSBVbmtub3duIGxhbmd1YWdlOiBcIiR7bGFuZ3VhZ2V9XCIuIFNldHRpbmcgdG8gXCIke3RoaXMuZmFsbGJhY2tGaWxlTGFuZ3VhZ2V9XCIuYCk7XG4gICAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMuZmFsbGJhY2tGaWxlTGFuZ3VhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2YWx1ZTogaGlnaGxpZ2h0ZWRIVE1MLFxuICAgICAgICAgICAgbGFuZ3VhZ2U6IGhpZ2hsaWdodGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICBpbGxlZ2FsLFxuICAgICAgICAgICAgcmVsZXZhbmNlXG4gICAgICAgIH0gPSBobGpzLmhpZ2hsaWdodChjb250ZW50LCB7XG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpbGxlZ2FsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tLYnFDb2RlQmxvY2tdIENvbnRlbnQgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlbGV2YW5jZSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbS2JxQ29kZUJsb2NrXSBDb250ZW50IGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlSFRNTCA9IHRoaXMuZG9tU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBoaWdobGlnaHRlZEhUTUwpO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRlZEhUTUxXaXRoTGluZU51bWJlcnMgPSB3aW5kb3dbJ2hsanMnXS5saW5lTnVtYmVyc1ZhbHVlKHNhZmVIVE1MLCB7XG4gICAgICAgICAgICBzdGFydEZyb206IHRoaXMuc3RhcnRGcm9tLFxuICAgICAgICAgICAgc2luZ2xlTGluZTogdGhpcy5zaW5nbGVMaW5lXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2RhdGEtbGFuZ3VhZ2UnLCBoaWdobGlnaHRlZExhbmd1YWdlISk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVFbGVtZW50LCAnaW5uZXJIVE1MJywgaGlnaGxpZ2h0ZWRIVE1MV2l0aExpbmVOdW1iZXJzKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIHN0YXJ0aW5nIGxpbmUgbnVtYmVyLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHN0YXJ0RnJvbTogbnVtYmVyID0gMTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgbGluZSBudW1iZXJzIGZvciBzaW5nbGUgbGluZSBjb2RlIGJsb2NrLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaW5nbGVMaW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0TGluZU51bWJlcnNQbHVnaW4oKTtcbiAgICB9XG5cbiAgICAvKiogVXNlIGRlZmF1bHRWaWV3IG9mIGluamVjdGVkIGRvY3VtZW50IGlmIGF2YWlsYWJsZSBvciBmYWxsYmFjayB0byBnbG9iYWwgd2luZG93IHJlZmVyZW5jZSAqL1xuICAgIHByaXZhdGUgZ2V0V2luZG93KCk6IFdpbmRvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50Py5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgSGlnaGxpZ2h0SlMgbGluZSBudW1iZXJzIHBsdWdpbi4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uY2Ugd2hlblxuICAgICAqIHRoZSBjb21wb25lbnQgaXMgY29uc3RydWN0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0TGluZU51bWJlcnNQbHVnaW4oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZ2V0V2luZG93KCk7XG5cbiAgICAgICAgaWYgKCF3aW5kb3cpIHJldHVybjtcblxuICAgICAgICB3aW5kb3dbJ2hsanMnXSA9IGhsanM7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SlNMaW5lTnVtYmVyc1BsdWdpbih0aGlzLmRvY3VtZW50LCB3aW5kb3cpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZWRpdGluZy5cbiAgICAgKiBDaGFuZ2VzIG1heSBsZWFkIHRvIHVucHJlZGljdGFibGUgYmVoYXZpb3IuXG4gICAgICogU291cmNlIGNvZGU6IGh0dHBzOi8vZ2l0aHViLmNvbS93Y29kZXIvaGlnaGxpZ2h0anMtbGluZS1udW1iZXJzLmpzL2Jsb2IvdjIuOS4wL3NyYy9oaWdobGlnaHRqcy1saW5lLW51bWJlcnMuanNcbiAgICAgKi9cbiAgICBwcml2YXRlIGhpZ2hsaWdodEpTTGluZU51bWJlcnNQbHVnaW4oZDogRG9jdW1lbnQsIHc6IFdpbmRvdyk6IHZvaWQge1xuICAgICAgICAndXNlIHN0cmljdCc7XG5cbiAgICAgICAgaWYgKCF3KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgVEFCTEVfTkFNRSA9ICdobGpzLWxuJyxcbiAgICAgICAgICAgIExJTkVfTkFNRSA9ICdobGpzLWxuLWxpbmUnLFxuICAgICAgICAgICAgQ09ERV9CTE9DS19OQU1FID0gJ2hsanMtbG4tY29kZScsXG4gICAgICAgICAgICBOVU1CRVJTX0JMT0NLX05BTUUgPSAnaGxqcy1sbi1udW1iZXJzJyxcbiAgICAgICAgICAgIE5VTUJFUl9MSU5FX05BTUUgPSAnaGxqcy1sbi1uJyxcbiAgICAgICAgICAgIERBVEFfQVRUUl9OQU1FID0gJ2RhdGEtbGluZS1udW1iZXInLFxuICAgICAgICAgICAgQlJFQUtfTElORV9SRUdFWFAgPSAvXFxyXFxufFxccnxcXG4vZztcblxuICAgICAgICBpZiAod1snaGxqcyddKSB7XG4gICAgICAgICAgICB3WydobGpzJ10uaW5pdExpbmVOdW1iZXJzT25Mb2FkID0gaW5pdExpbmVOdW1iZXJzT25Mb2FkO1xuICAgICAgICAgICAgd1snaGxqcyddLmxpbmVOdW1iZXJzQmxvY2sgPSBsaW5lTnVtYmVyc0Jsb2NrO1xuICAgICAgICAgICAgd1snaGxqcyddLmxpbmVOdW1iZXJzQmxvY2tTeW5jID0gbGluZU51bWJlcnNCbG9ja1N5bmM7XG4gICAgICAgICAgICB3WydobGpzJ10ubGluZU51bWJlcnNWYWx1ZSA9IGxpbmVOdW1iZXJzVmFsdWU7XG5cbiAgICAgICAgICAgIGFkZFN0eWxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignaGlnaGxpZ2h0LmpzIG5vdCBkZXRlY3RlZCEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGlzSGxqc0xuQ29kZURlc2NlbmRhbnQoZG9tRWx0KSB7XG4gICAgICAgICAgICBsZXQgY3VyRWx0ID0gZG9tRWx0O1xuXG4gICAgICAgICAgICB3aGlsZSAoY3VyRWx0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1ckVsdC5jbGFzc05hbWUgJiYgY3VyRWx0LmNsYXNzTmFtZS5pbmRleE9mKCdobGpzLWxuLWNvZGUnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyRWx0ID0gY3VyRWx0LnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldEhsanNMblRhYmxlKGhsanNMbkRvbUVsdCkge1xuICAgICAgICAgICAgbGV0IGN1ckVsdCA9IGhsanNMbkRvbUVsdDtcblxuICAgICAgICAgICAgd2hpbGUgKGN1ckVsdC5ub2RlTmFtZSAhPT0gJ1RBQkxFJykge1xuICAgICAgICAgICAgICAgIGN1ckVsdCA9IGN1ckVsdC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY3VyRWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRnVuY3Rpb24gdG8gd29ya2Fyb3VuZCBhIGNvcHkgaXNzdWUgd2l0aCBNaWNyb3NvZnQgRWRnZS5cbiAgICAgICAgLy8gRHVlIHRvIGhsanMtbG4gd3JhcHBpbmcgdGhlIGxpbmVzIG9mIGNvZGUgaW5zaWRlIGEgPHRhYmxlPiBlbGVtZW50LFxuICAgICAgICAvLyBpdHNlbGYgd3JhcHBlZCBpbnNpZGUgYSA8cHJlPiBlbGVtZW50LCB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKVxuICAgICAgICAvLyBkb2VzIG5vdCBjb250YWluIGFueSBsaW5lIGJyZWFrcy4gU28gd2UgbmVlZCB0byBnZXQgdGhlbSBiYWNrIHVzaW5nIHRoZVxuICAgICAgICAvLyByZW5kZXJlZCBjb2RlIGluIHRoZSBET00gYXMgcmVmZXJlbmNlLlxuICAgICAgICBmdW5jdGlvbiBlZGdlR2V0U2VsZWN0ZWRDb2RlTGluZXMoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBjdXJyZW50IHNlbGVjdGVkIHRleHQgd2l0aG91dCBsaW5lIGJyZWFrc1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uVGV4dCA9IHNlbGVjdGlvbi50b1N0cmluZygpO1xuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIDx0ZD4gZWxlbWVudCB3cmFwcGluZyB0aGUgZmlyc3QgbGluZSBvZiBzZWxlY3RlZCBjb2RlXG4gICAgICAgICAgICBsZXQgdGRBbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yTm9kZTtcblxuICAgICAgICAgICAgd2hpbGUgKHRkQW5jaG9yLm5vZGVOYW1lICE9PSAnVEQnKSB7XG4gICAgICAgICAgICAgICAgdGRBbmNob3IgPSB0ZEFuY2hvci5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBnZXQgdGhlIDx0ZD4gZWxlbWVudCB3cmFwcGluZyB0aGUgbGFzdCBsaW5lIG9mIHNlbGVjdGVkIGNvZGVcbiAgICAgICAgICAgIGxldCB0ZEZvY3VzID0gc2VsZWN0aW9uLmZvY3VzTm9kZTtcblxuICAgICAgICAgICAgd2hpbGUgKHRkRm9jdXMubm9kZU5hbWUgIT09ICdURCcpIHtcbiAgICAgICAgICAgICAgICB0ZEZvY3VzID0gdGRGb2N1cy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBleHRyYWN0IGxpbmUgbnVtYmVyc1xuICAgICAgICAgICAgbGV0IGZpcnN0TGluZU51bWJlciA9IHBhcnNlSW50KHRkQW5jaG9yLmRhdGFzZXQubGluZU51bWJlcik7XG4gICAgICAgICAgICBsZXQgbGFzdExpbmVOdW1iZXIgPSBwYXJzZUludCh0ZEZvY3VzLmRhdGFzZXQubGluZU51bWJlcik7XG5cbiAgICAgICAgICAgIC8vIG11bHRpLWxpbmVzIGNvcGllZCBjYXNlXG4gICAgICAgICAgICBpZiAoZmlyc3RMaW5lTnVtYmVyICE9IGxhc3RMaW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0TGluZVRleHQgPSB0ZEFuY2hvci50ZXh0Q29udGVudDtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdExpbmVUZXh0ID0gdGRGb2N1cy50ZXh0Q29udGVudDtcblxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzZWxlY3Rpb24gd2FzIG1hZGUgYmFja3dhcmQsIHN3YXAgdmFsdWVzXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0TGluZU51bWJlciA+IGxhc3RMaW5lTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0bXAgPSBmaXJzdExpbmVOdW1iZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lTnVtYmVyID0gbGFzdExpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RMaW5lTnVtYmVyID0gdG1wO1xuICAgICAgICAgICAgICAgICAgICB0bXAgPSBmaXJzdExpbmVUZXh0O1xuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmVUZXh0ID0gbGFzdExpbmVUZXh0O1xuICAgICAgICAgICAgICAgICAgICBsYXN0TGluZVRleHQgPSB0bXA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBub3QgY29waWVkIGNoYXJhY3RlcnMgaW4gZmlyc3QgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChzZWxlY3Rpb25UZXh0LmluZGV4T2YoZmlyc3RMaW5lVGV4dCkgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lVGV4dCA9IGZpcnN0TGluZVRleHQuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBub3QgY29waWVkIGNoYXJhY3RlcnMgaW4gbGFzdCBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKHNlbGVjdGlvblRleHQubGFzdEluZGV4T2YobGFzdExpbmVUZXh0KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVUZXh0ID0gbGFzdExpbmVUZXh0LnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyByZWNvbnN0cnVjdCBhbmQgcmV0dXJuIHRoZSByZWFsIGNvcGllZCB0ZXh0XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkVGV4dCA9IGZpcnN0TGluZVRleHQ7XG4gICAgICAgICAgICAgICAgY29uc3QgaGxqc0xuVGFibGUgPSBnZXRIbGpzTG5UYWJsZSh0ZEFuY2hvcik7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gZmlyc3RMaW5lTnVtYmVyICsgMTsgaSA8IGxhc3RMaW5lTnVtYmVyOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZUxpbmVTZWwgPSBmb3JtYXQoJy57MH1bezF9PVwiezJ9XCJdJywgW0NPREVfQkxPQ0tfTkFNRSwgREFUQV9BVFRSX05BTUUsIGldKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZUxpbmVFbHQgPSBobGpzTG5UYWJsZS5xdWVyeVNlbGVjdG9yKGNvZGVMaW5lU2VsKTtcblxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFRleHQgKz0gJ1xcbicgKyBjb2RlTGluZUVsdC50ZXh0Q29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZWxlY3RlZFRleHQgKz0gJ1xcbicgKyBsYXN0TGluZVRleHQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRUZXh0O1xuICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBjb3BpZWQgbGluZSBjYXNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25UZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW5zdXJlIGNvbnNpc3RlbnQgY29kZSBjb3B5L3Bhc3RlIGJlaGF2aW9yIGFjcm9zcyBhbGwgYnJvd3NlcnNcbiAgICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2NvZGVyL2hpZ2hsaWdodGpzLWxpbmUtbnVtYmVycy5qcy9pc3N1ZXMvNTEpXG4gICAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAvLyBnZXQgY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHcuZ2V0U2VsZWN0aW9uKCkhO1xuXG4gICAgICAgICAgICAvLyBvdmVycmlkZSBiZWhhdmlvciB3aGVuIG9uZSB3YW50cyB0byBjb3B5IGxpbmUgb2YgY29kZXNcbiAgICAgICAgICAgIGlmIChpc0hsanNMbkNvZGVEZXNjZW5kYW50KHNlbGVjdGlvbi5hbmNob3JOb2RlKSkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3Rpb25UZXh0O1xuXG4gICAgICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCBhbiBpc3N1ZSB3aXRoIE1pY3Jvc29mdCBFZGdlIGFzIGNvcGllZCBsaW5lIGJyZWFrc1xuICAgICAgICAgICAgICAgIC8vIGFyZSByZW1vdmVkIG90aGVyd2lzZSBmcm9tIHRoZSBzZWxlY3Rpb24gc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHcubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblRleHQgPSBlZGdlR2V0U2VsZWN0ZWRDb2RlTGluZXMoc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBvdGhlciBicm93c2VycyBjYW4gZGlyZWN0bHkgdXNlIHRoZSBzZWxlY3Rpb24gc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLmNsaXBib2FyZERhdGEhLnNldERhdGEoJ3RleHQvcGxhaW4nLCBzZWxlY3Rpb25UZXh0KTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIGFkZFN0eWxlcygpIHtcbiAgICAgICAgICAgIGNvbnN0IGNzcyA9IGQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICAgICAgY3NzLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgY3NzLmlubmVySFRNTCA9IGZvcm1hdChcbiAgICAgICAgICAgICAgICAnLnswfXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9JyArICcuezB9IHRke3BhZGRpbmc6MH0nICsgJy57MX06YmVmb3Jle2NvbnRlbnQ6YXR0cih7Mn0pfScsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBUQUJMRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICBOVU1CRVJfTElORV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICBEQVRBX0FUVFJfTkFNRVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoY3NzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluaXRMaW5lTnVtYmVyc09uTG9hZChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAoZC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnIHx8IGQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50UmVhZHkob3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHcuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZWFkeShvcHRpb25zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50UmVhZHkob3B0aW9ucykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9ja3MgPSBkLnF1ZXJ5U2VsZWN0b3JBbGwoJ2NvZGUuaGxqcyxjb2RlLm5vaGlnaGxpZ2h0Jyk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gYmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9ja3MuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNQbHVnaW5EaXNhYmxlZEZvckJsb2NrKGJsb2Nrc1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyc0Jsb2NrKGJsb2Nrc1tpXSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignTGluZU51bWJlcnMgZXJyb3I6ICcsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaXNQbHVnaW5EaXNhYmxlZEZvckJsb2NrKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbm9obGpzbG4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzQmxvY2soZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuXG4gICAgICAgICAgICBhc3luYyhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBsaW5lTnVtYmVyc0ludGVybmFsKGVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBsaW5lTnVtYmVyc0Jsb2NrU3luYyhlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICdvYmplY3QnKSByZXR1cm47XG5cbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gbGluZU51bWJlcnNJbnRlcm5hbChlbGVtZW50LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGxpbmVOdW1iZXJzVmFsdWUodmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkLmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTtcblxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBsaW5lTnVtYmVyc0ludGVybmFsKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGludGVybmFsT3B0aW9ucyA9IG1hcE9wdGlvbnMoZWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGR1cGxpY2F0ZU11bHRpbGluZU5vZGVzKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICByZXR1cm4gYWRkTGluZU51bWJlcnNCbG9ja0ZvcihlbGVtZW50LmlubmVySFRNTCwgaW50ZXJuYWxPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGFkZExpbmVOdW1iZXJzQmxvY2tGb3IoaW5wdXRIdG1sLCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IGdldExpbmVzKGlucHV0SHRtbCk7XG5cbiAgICAgICAgICAgIC8vIGlmIGxhc3QgbGluZSBjb250YWlucyBvbmx5IGNhcnJpYWdlIHJldHVybiByZW1vdmUgaXRcbiAgICAgICAgICAgIGlmIChsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgbGluZXMucG9wKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsaW5lcy5sZW5ndGggPiAxIHx8IG9wdGlvbnMuc2luZ2xlTGluZSkge1xuICAgICAgICAgICAgICAgIGxldCBodG1sID0gJyc7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGxpbmVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGZvcm1hdChcbiAgICAgICAgICAgICAgICAgICAgICAgICc8dHI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz1cInswfSB7MX1cIiB7M309XCJ7NX1cIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInsyfVwiIHszfT1cIns1fVwiPjwvZGl2PicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3RkPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9XCJ7MH0gezR9XCIgezN9PVwiezV9XCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3s2fScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3RkPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3RyPicsXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTElORV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTUJFUlNfQkxPQ0tfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVU1CRVJfTElORV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQVRUUl9OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPREVfQkxPQ0tfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICsgb3B0aW9ucy5zdGFydEZyb20sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNbaV0ubGVuZ3RoID4gMCA/IGxpbmVzW2ldIDogJyAnXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgnPHRhYmxlIGNsYXNzPVwiezB9XCI+ezF9PC90YWJsZT4nLCBbVEFCTEVfTkFNRSwgaHRtbF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaW5wdXRIdG1sO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgQ29kZSBibG9jay5cbiAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgRXh0ZXJuYWwgQVBJIG9wdGlvbnMuXG4gICAgICAgICAqIEByZXR1cm5zIHtPYmplY3R9IEludGVybmFsIEFQSSBvcHRpb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gbWFwT3B0aW9ucyhlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzaW5nbGVMaW5lOiBnZXRTaW5nbGVMaW5lT3B0aW9uKG9wdGlvbnMpLFxuICAgICAgICAgICAgICAgIHN0YXJ0RnJvbTogZ2V0U3RhcnRGcm9tT3B0aW9uKGVsZW1lbnQsIG9wdGlvbnMpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0U2luZ2xlTGluZU9wdGlvbihvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2luZ2xlTGluZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnNpbmdsZUxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRTdGFydEZyb21PcHRpb24oZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gMTtcbiAgICAgICAgICAgIGxldCBzdGFydEZyb20gPSBkZWZhdWx0VmFsdWU7XG5cbiAgICAgICAgICAgIGlmIChpc0Zpbml0ZShvcHRpb25zLnN0YXJ0RnJvbSkpIHtcbiAgICAgICAgICAgICAgICBzdGFydEZyb20gPSBvcHRpb25zLnN0YXJ0RnJvbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2FuIGJlIG92ZXJyaWRkZW4gYmVjYXVzZSBsb2NhbCBvcHRpb24gaXMgcHJpb3JpdHlcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0QXR0cmlidXRlKGVsZW1lbnQsICdkYXRhLWxuLXN0YXJ0LWZyb20nKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRGcm9tID0gdG9OdW1iZXIodmFsdWUsIGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGFydEZyb207XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVjdXJzaXZlIG1ldGhvZCBmb3IgZml4IG11bHRpLWxpbmUgZWxlbWVudHMgaW1wbGVtZW50YXRpb24gaW4gaGlnaGxpZ2h0LmpzXG4gICAgICAgICAqIERvaW5nIGRlZXAgcGFzc2FnZSBvbiBjaGlsZCBub2Rlcy5cbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZHVwbGljYXRlTXVsdGlsaW5lTm9kZXMoZWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSBlbGVtZW50LmNoaWxkTm9kZXM7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBpbiBub2Rlcykge1xuICAgICAgICAgICAgICAgIGlmIChub2Rlcy5oYXNPd25Qcm9wZXJ0eShub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGVzW25vZGVdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChnZXRMaW5lc0NvdW50KGNoaWxkLnRleHRDb250ZW50KSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlcyhjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZU11bHRpbGluZU5vZGUoY2hpbGQucGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTWV0aG9kIGZvciBmaXggbXVsdGktbGluZSBlbGVtZW50cyBpbXBsZW1lbnRhdGlvbiBpbiBoaWdobGlnaHQuanNcbiAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZHVwbGljYXRlTXVsdGlsaW5lTm9kZShlbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZTtcblxuICAgICAgICAgICAgaWYgKCEvaGxqcy0vLnRlc3QoY2xhc3NOYW1lKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IGdldExpbmVzKGVsZW1lbnQuaW5uZXJIVE1MKTtcblxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZVRleHQgPSBsaW5lc1tpXS5sZW5ndGggPiAwID8gbGluZXNbaV0gOiAnICc7XG5cbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9ybWF0KCc8c3BhbiBjbGFzcz1cInswfVwiPnsxfTwvc3Bhbj5cXG4nLCBbY2xhc3NOYW1lLCBsaW5lVGV4dF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHJlc3VsdC50cmltKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRMaW5lcyh0ZXh0KSB7XG4gICAgICAgICAgICBpZiAodGV4dC5sZW5ndGggPT09IDApIHJldHVybiBbXTtcblxuICAgICAgICAgICAgcmV0dXJuIHRleHQuc3BsaXQoQlJFQUtfTElORV9SRUdFWFApO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluZXNDb3VudCh0ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gKHRleHQudHJpbSgpLm1hdGNoKEJSRUFLX0xJTkVfUkVHRVhQKSB8fCBbXSkubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8vXG4gICAgICAgIC8vLyBIRUxQRVJTXG4gICAgICAgIC8vL1xuXG4gICAgICAgIGZ1bmN0aW9uIGFzeW5jKGZ1bmMpIHtcbiAgICAgICAgICAgIHcuc2V0VGltZW91dChmdW5jLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiB7QGxpbmsgaHR0cHM6Ly93Y29kZXIuZ2l0aHViLmlvL25vdGVzL3N0cmluZy1mb3JtYXQtZm9yLXN0cmluZy1mb3JtYXRpbmctaW4tamF2YXNjcmlwdH1cbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdFxuICAgICAgICAgKiBAcGFyYW0ge2FycmF5fSBhcmdzXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBmb3JtYXQoZm9ybWF0LCBhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoL1xceyhcXGQrKVxcfS9nLCBmdW5jdGlvbiAobSwgbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcmdzW25dICE9PSB1bmRlZmluZWQgPyBhcmdzW25dIDogbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgQ29kZSBibG9jay5cbiAgICAgICAgICogQHBhcmFtIHtTdHJpbmd9IGF0dHJOYW1lIEF0dHJpYnV0ZSBuYW1lLlxuICAgICAgICAgKiBAcmV0dXJucyB7U3RyaW5nfSBBdHRyaWJ1dGUgdmFsdWUgb3IgZW1wdHkuXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRBdHRyaWJ1dGUoZWxlbWVudCwgYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShhdHRyTmFtZSkgPyBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyTmFtZSkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgU291cmNlIHN0cmluZy5cbiAgICAgICAgICogQHBhcmFtIHtOdW1iZXJ9IGZhbGxiYWNrIEZhbGxiYWNrIHZhbHVlLlxuICAgICAgICAgKiBAcmV0dXJucyBQYXJzZWQgbnVtYmVyIG9yIGZhbGxiYWNrIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdG9OdW1iZXIoc3RyLCBmYWxsYmFjaykge1xuICAgICAgICAgICAgaWYgKCFzdHIpIHJldHVybiBmYWxsYmFjaztcbiAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlcihzdHIpO1xuXG4gICAgICAgICAgICByZXR1cm4gaXNGaW5pdGUobnVtYmVyKSA/IG51bWJlciA6IGZhbGxiYWNrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
417
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1ibG9jay1oaWdobGlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvZGUtYmxvY2svY29kZS1ibG9jay1oaWdobGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxlQUFlLEVBRWYsU0FBUyxFQUNULGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQzs7QUFHaEM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxJQUFJLGNBQWMsQ0FDbkUsdUNBQXVDLEVBQ3ZDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUNqQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLENBQUMsUUFBZ0IsRUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRixPQUFPLEVBQUUscUNBQXFDO0lBQzlDLFFBQVEsRUFBRSxRQUFRO0NBQ3JCLENBQUMsQ0FBQztBQUVILDZFQUE2RTtBQVE3RSxNQUFNLE9BQU8scUJBQXFCO0lBTzlCLHFCQUFxQjtJQUNyQixJQUNJLElBQUksQ0FBQyxJQUFzQjtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFaEMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUks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RSxJQUFJO29CQUNoQixRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLE1BQU07cUJBQ2hCO2lCQUNKO3dEQVVPLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBNENjLFNBQVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUdHLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBQcm92aWRlcixcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VjdXJpdHlDb250ZXh0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgaGxqcyBmcm9tICdoaWdobGlnaHQuanMnO1xuaW1wb3J0IHsgS2JxQ29kZUJsb2NrRmlsZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEZhbGxiYWNrIGxhbmd1YWdlIGZvciBjb2RlIGJsb2NrIGlmIGxhbmd1YWdlIGlzIG5vdCBzdXBwb3J0ZWQvc3BlY2lmaWVkLlxuICpcbiAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlczpcbiAqIEBsaW5rIGh0dHBzOi8vaGlnaGxpZ2h0anMucmVhZHRoZWRvY3MuaW8vZW4vc3RhYmxlL3N1cHBvcnRlZC1sYW5ndWFnZXMuaHRtbFxuICovXG5leHBvcnQgY29uc3QgS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAgICdLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFJyxcbiAgICB7IGZhY3Rvcnk6ICgpID0+ICdwbGFpbnRleHQnIH1cbik7XG5cbi8qKiBVdGlsaXR5IHByb3ZpZGVyIGZvciBgS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRWAuICovXG5leHBvcnQgY29uc3Qga2JxQ29kZUJsb2NrRmFsbGJhY2tGaWxlTGFuZ3VhZ2VQcm92aWRlciA9IChsYW5ndWFnZTogc3RyaW5nKTogUHJvdmlkZXIgPT4gKHtcbiAgICBwcm92aWRlOiBLQlFfQ09ERV9CTE9DS19GQUxMQkFDS19GSUxFX0xBTkdVQUdFLFxuICAgIHVzZVZhbHVlOiBsYW5ndWFnZVxufSk7XG5cbi8qKiBEaXJlY3RpdmUgd2hpY2ggYXBwbGllcyBzeW50YXggaGlnaGxpZ2h0aW5nIHRvIHRoZSBjb2RlIGJsb2NrIGNvbnRlbnQuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnY29kZVtrYnFDb2RlQmxvY2tIaWdobGlnaHRdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnaGxqcydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUNvZGVCbG9ja0hpZ2hsaWdodCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmVFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFsbGJhY2tGaWxlTGFuZ3VhZ2UgPSBpbmplY3QoS0JRX0NPREVfQkxPQ0tfRkFMTEJBQ0tfRklMRV9MQU5HVUFHRSk7XG5cbiAgICAvKiogVGhlIGNvZGUgZmlsZS4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHNldCBmaWxlKGZpbGU6IEticUNvZGVCbG9ja0ZpbGUpIHtcbiAgICAgICAgY29uc3Qgd2luZG93ID0gdGhpcy5nZXRXaW5kb3coKTtcblxuICAgICAgICBpZiAoIXdpbmRvdykgcmV0dXJuO1xuXG4gICAgICAgIGxldCB7IGxhbmd1YWdlIH0gPSBmaWxlO1xuXG4gICAgICAgIGlmICghbGFuZ3VhZ2UgfHwgIWhsanMuZ2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYFtLYnFDb2RlQmxvY2tdIFVua25vd24gZmlsZSBsYW5ndWFnZTogXCIke2xhbmd1YWdlfVwiLiBGYWxsIGJhY2sgdG8gXCIke3RoaXMuZmFsbGJhY2tGaWxlTGFuZ3VhZ2V9XCIuYCxcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFuZ3VhZ2UgPSB0aGlzLmZhbGxiYWNrRmlsZUxhbmd1YWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWU6IGhpZ2hsaWdodGVkSFRNTCxcbiAgICAgICAgICAgIGxhbmd1YWdlOiBoaWdobGlnaHRlZExhbmd1YWdlLFxuICAgICAgICAgICAgaWxsZWdhbCxcbiAgICAgICAgICAgIHJlbGV2YW5jZVxuICAgICAgICB9ID0gaGxqcy5oaWdobGlnaHQoZmlsZS5jb250ZW50LCB7XG4gICAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2UhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpbGxlZ2FsKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tLYnFDb2RlQmxvY2tdIEZpbGUgY29udGVudCBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuJywgZmlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVsZXZhbmNlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tLYnFDb2RlQmxvY2tdIEZpbGUgY29udGVudCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHByb2dyYW1taW5nIGxhbmd1YWdlLicsIGZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZUhUTUwgPSB0aGlzLmRvbVNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgaGlnaGxpZ2h0ZWRIVE1MKTtcbiAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MV2l0aExpbmVOdW1iZXJzID0gd2luZG93WydobGpzJ10ubGluZU51bWJlcnNWYWx1ZShzYWZlSFRNTCwge1xuICAgICAgICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RnJvbSxcbiAgICAgICAgICAgIHNpbmdsZUxpbmU6IHRoaXMuc2luZ2xlTGluZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdkYXRhLWxhbmd1YWdlJywgaGlnaGxpZ2h0ZWRMYW5ndWFnZSEpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIGhpZ2hsaWdodGVkSFRNTFdpdGhMaW5lTnVtYmVycyk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBzdGFydGluZyBsaW5lIG51bWJlci4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBzdGFydEZyb206IG51bWJlciA9IDE7XG5cbiAgICAvKiogV2hldGhlciB0byBkaXNwbGF5IGxpbmUgbnVtYmVycyBmb3Igc2luZ2xlIGxpbmUgY29kZSBibG9jay4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2luZ2xlTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW5pdExpbmVOdW1iZXJzUGx1Z2luKCk7XG4gICAgfVxuXG4gICAgLyoqIFVzZSBkZWZhdWx0VmlldyBvZiBpbmplY3RlZCBkb2N1bWVudCBpZiBhdmFpbGFibGUgb3IgZmFsbGJhY2sgdG8gZ2xvYmFsIHdpbmRvdyByZWZlcmVuY2UgKi9cbiAgICBwcml2YXRlIGdldFdpbmRvdygpOiBXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudD8uZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIEhpZ2hsaWdodEpTIGxpbmUgbnVtYmVycyBwbHVnaW4uIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmNlIHdoZW5cbiAgICAgKiB0aGUgY29tcG9uZW50IGlzIGNvbnN0cnVjdGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdExpbmVOdW1iZXJzUGx1Z2luKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmdldFdpbmRvdygpO1xuXG4gICAgICAgIGlmICghd2luZG93KSByZXR1cm47XG5cbiAgICAgICAgd2luZG93WydobGpzJ10gPSBobGpzO1xuICAgICAgICB0aGlzLmhpZ2hsaWdodEpTTGluZU51bWJlcnNQbHVnaW4odGhpcy5kb2N1bWVudCwgd2luZG93KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgaW50ZW5kZWQgZm9yIGVkaXRpbmcuXG4gICAgICogQ2hhbmdlcyBtYXkgbGVhZCB0byB1bnByZWRpY3RhYmxlIGJlaGF2aW9yLlxuICAgICAqIFNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vd2NvZGVyL2hpZ2hsaWdodGpzLWxpbmUtbnVtYmVycy5qcy9ibG9iL3YyLjkuMC9zcmMvaGlnaGxpZ2h0anMtbGluZS1udW1iZXJzLmpzXG4gICAgICovXG4gICAgcHJpdmF0ZSBoaWdobGlnaHRKU0xpbmVOdW1iZXJzUGx1Z2luKGQ6IERvY3VtZW50LCB3OiBXaW5kb3cpOiB2b2lkIHtcbiAgICAgICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgICAgIGlmICghdykgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IFRBQkxFX05BTUUgPSAnaGxqcy1sbicsXG4gICAgICAgICAgICBMSU5FX05BTUUgPSAnaGxqcy1sbi1saW5lJyxcbiAgICAgICAgICAgIENPREVfQkxPQ0tfTkFNRSA9ICdobGpzLWxuLWNvZGUnLFxuICAgICAgICAgICAgTlVNQkVSU19CTE9DS19OQU1FID0gJ2hsanMtbG4tbnVtYmVycycsXG4gICAgICAgICAgICBOVU1CRVJfTElORV9OQU1FID0gJ2hsanMtbG4tbicsXG4gICAgICAgICAgICBEQVRBX0FUVFJfTkFNRSA9ICdkYXRhLWxpbmUtbnVtYmVyJyxcbiAgICAgICAgICAgIEJSRUFLX0xJTkVfUkVHRVhQID0gL1xcclxcbnxcXHJ8XFxuL2c7XG5cbiAgICAgICAgaWYgKHdbJ2hsanMnXSkge1xuICAgICAgICAgICAgd1snaGxqcyddLmluaXRMaW5lTnVtYmVyc09uTG9hZCA9IGluaXRMaW5lTnVtYmVyc09uTG9hZDtcbiAgICAgICAgICAgIHdbJ2hsanMnXS5saW5lTnVtYmVyc0Jsb2NrID0gbGluZU51bWJlcnNCbG9jaztcbiAgICAgICAgICAgIHdbJ2hsanMnXS5saW5lTnVtYmVyc0Jsb2NrU3luYyA9IGxpbmVOdW1iZXJzQmxvY2tTeW5jO1xuICAgICAgICAgICAgd1snaGxqcyddLmxpbmVOdW1iZXJzVmFsdWUgPSBsaW5lTnVtYmVyc1ZhbHVlO1xuXG4gICAgICAgICAgICBhZGRTdHlsZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2hpZ2hsaWdodC5qcyBub3QgZGV0ZWN0ZWQhJyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpc0hsanNMbkNvZGVEZXNjZW5kYW50KGRvbUVsdCkge1xuICAgICAgICAgICAgbGV0IGN1ckVsdCA9IGRvbUVsdDtcblxuICAgICAgICAgICAgd2hpbGUgKGN1ckVsdCkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJFbHQuY2xhc3NOYW1lICYmIGN1ckVsdC5jbGFzc05hbWUuaW5kZXhPZignaGxqcy1sbi1jb2RlJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGN1ckVsdCA9IGN1ckVsdC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBnZXRIbGpzTG5UYWJsZShobGpzTG5Eb21FbHQpIHtcbiAgICAgICAgICAgIGxldCBjdXJFbHQgPSBobGpzTG5Eb21FbHQ7XG5cbiAgICAgICAgICAgIHdoaWxlIChjdXJFbHQubm9kZU5hbWUgIT09ICdUQUJMRScpIHtcbiAgICAgICAgICAgICAgICBjdXJFbHQgPSBjdXJFbHQucGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGN1ckVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1bmN0aW9uIHRvIHdvcmthcm91bmQgYSBjb3B5IGlzc3VlIHdpdGggTWljcm9zb2Z0IEVkZ2UuXG4gICAgICAgIC8vIER1ZSB0byBobGpzLWxuIHdyYXBwaW5nIHRoZSBsaW5lcyBvZiBjb2RlIGluc2lkZSBhIDx0YWJsZT4gZWxlbWVudCxcbiAgICAgICAgLy8gaXRzZWxmIHdyYXBwZWQgaW5zaWRlIGEgPHByZT4gZWxlbWVudCwgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKClcbiAgICAgICAgLy8gZG9lcyBub3QgY29udGFpbiBhbnkgbGluZSBicmVha3MuIFNvIHdlIG5lZWQgdG8gZ2V0IHRoZW0gYmFjayB1c2luZyB0aGVcbiAgICAgICAgLy8gcmVuZGVyZWQgY29kZSBpbiB0aGUgRE9NIGFzIHJlZmVyZW5jZS5cbiAgICAgICAgZnVuY3Rpb24gZWRnZUdldFNlbGVjdGVkQ29kZUxpbmVzKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgLy8gY3VycmVudCBzZWxlY3RlZCB0ZXh0IHdpdGhvdXQgbGluZSBicmVha3NcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblRleHQgPSBzZWxlY3Rpb24udG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgLy8gZ2V0IHRoZSA8dGQ+IGVsZW1lbnQgd3JhcHBpbmcgdGhlIGZpcnN0IGxpbmUgb2Ygc2VsZWN0ZWQgY29kZVxuICAgICAgICAgICAgbGV0IHRkQW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvck5vZGU7XG5cbiAgICAgICAgICAgIHdoaWxlICh0ZEFuY2hvci5ub2RlTmFtZSAhPT0gJ1REJykge1xuICAgICAgICAgICAgICAgIHRkQW5jaG9yID0gdGRBbmNob3IucGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZ2V0IHRoZSA8dGQ+IGVsZW1lbnQgd3JhcHBpbmcgdGhlIGxhc3QgbGluZSBvZiBzZWxlY3RlZCBjb2RlXG4gICAgICAgICAgICBsZXQgdGRGb2N1cyA9IHNlbGVjdGlvbi5mb2N1c05vZGU7XG5cbiAgICAgICAgICAgIHdoaWxlICh0ZEZvY3VzLm5vZGVOYW1lICE9PSAnVEQnKSB7XG4gICAgICAgICAgICAgICAgdGRGb2N1cyA9IHRkRm9jdXMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZXh0cmFjdCBsaW5lIG51bWJlcnNcbiAgICAgICAgICAgIGxldCBmaXJzdExpbmVOdW1iZXIgPSBwYXJzZUludCh0ZEFuY2hvci5kYXRhc2V0LmxpbmVOdW1iZXIpO1xuICAgICAgICAgICAgbGV0IGxhc3RMaW5lTnVtYmVyID0gcGFyc2VJbnQodGRGb2N1cy5kYXRhc2V0LmxpbmVOdW1iZXIpO1xuXG4gICAgICAgICAgICAvLyBtdWx0aS1saW5lcyBjb3BpZWQgY2FzZVxuICAgICAgICAgICAgaWYgKGZpcnN0TGluZU51bWJlciAhPSBsYXN0TGluZU51bWJlcikge1xuICAgICAgICAgICAgICAgIGxldCBmaXJzdExpbmVUZXh0ID0gdGRBbmNob3IudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RMaW5lVGV4dCA9IHRkRm9jdXMudGV4dENvbnRlbnQ7XG5cbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc2VsZWN0aW9uIHdhcyBtYWRlIGJhY2t3YXJkLCBzd2FwIHZhbHVlc1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdExpbmVOdW1iZXIgPiBsYXN0TGluZU51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdG1wID0gZmlyc3RMaW5lTnVtYmVyO1xuXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZU51bWJlciA9IGxhc3RMaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBsYXN0TGluZU51bWJlciA9IHRtcDtcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gZmlyc3RMaW5lVGV4dDtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lVGV4dCA9IGxhc3RMaW5lVGV4dDtcbiAgICAgICAgICAgICAgICAgICAgbGFzdExpbmVUZXh0ID0gdG1wO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGRpc2NhcmQgbm90IGNvcGllZCBjaGFyYWN0ZXJzIGluIGZpcnN0IGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAoc2VsZWN0aW9uVGV4dC5pbmRleE9mKGZpcnN0TGluZVRleHQpICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZVRleHQgPSBmaXJzdExpbmVUZXh0LnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGRpc2NhcmQgbm90IGNvcGllZCBjaGFyYWN0ZXJzIGluIGxhc3QgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChzZWxlY3Rpb25UZXh0Lmxhc3RJbmRleE9mKGxhc3RMaW5lVGV4dCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RMaW5lVGV4dCA9IGxhc3RMaW5lVGV4dC5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcmVjb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgcmVhbCBjb3BpZWQgdGV4dFxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZFRleHQgPSBmaXJzdExpbmVUZXh0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGhsanNMblRhYmxlID0gZ2V0SGxqc0xuVGFibGUodGRBbmNob3IpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IGZpcnN0TGluZU51bWJlciArIDE7IGkgPCBsYXN0TGluZU51bWJlcjsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVMaW5lU2VsID0gZm9ybWF0KCcuezB9W3sxfT1cInsyfVwiXScsIFtDT0RFX0JMT0NLX05BTUUsIERBVEFfQVRUUl9OQU1FLCBpXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVMaW5lRWx0ID0gaGxqc0xuVGFibGUucXVlcnlTZWxlY3Rvcihjb2RlTGluZVNlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ICs9ICdcXG4nICsgY29kZUxpbmVFbHQudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ICs9ICdcXG4nICsgbGFzdExpbmVUZXh0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dDtcbiAgICAgICAgICAgICAgICAvLyBzaW5nbGUgY29waWVkIGxpbmUgY2FzZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uVGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVuc3VyZSBjb25zaXN0ZW50IGNvZGUgY29weS9wYXN0ZSBiZWhhdmlvciBhY3Jvc3MgYWxsIGJyb3dzZXJzXG4gICAgICAgIC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3djb2Rlci9oaWdobGlnaHRqcy1saW5lLW51bWJlcnMuanMvaXNzdWVzLzUxKVxuICAgICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NvcHknLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gZ2V0IGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3LmdldFNlbGVjdGlvbigpITtcblxuICAgICAgICAgICAgLy8gb3ZlcnJpZGUgYmVoYXZpb3Igd2hlbiBvbmUgd2FudHMgdG8gY29weSBsaW5lIG9mIGNvZGVzXG4gICAgICAgICAgICBpZiAoaXNIbGpzTG5Db2RlRGVzY2VuZGFudChzZWxlY3Rpb24uYW5jaG9yTm9kZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0aW9uVGV4dDtcblxuICAgICAgICAgICAgICAgIC8vIHdvcmthcm91bmQgYW4gaXNzdWUgd2l0aCBNaWNyb3NvZnQgRWRnZSBhcyBjb3BpZWQgbGluZSBicmVha3NcbiAgICAgICAgICAgICAgICAvLyBhcmUgcmVtb3ZlZCBvdGhlcndpc2UgZnJvbSB0aGUgc2VsZWN0aW9uIHN0cmluZ1xuICAgICAgICAgICAgICAgIGlmICh3Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25UZXh0ID0gZWRnZUdldFNlbGVjdGVkQ29kZUxpbmVzKHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgYnJvd3NlcnMgY2FuIGRpcmVjdGx5IHVzZSB0aGUgc2VsZWN0aW9uIHN0cmluZ1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25UZXh0ID0gc2VsZWN0aW9uLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZS5jbGlwYm9hcmREYXRhIS5zZXREYXRhKCd0ZXh0L3BsYWluJywgc2VsZWN0aW9uVGV4dCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRTdHlsZXMoKSB7XG4gICAgICAgICAgICBjb25zdCBjc3MgPSBkLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICAgICAgICAgIGNzcy50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgICAgIGNzcy5pbm5lckhUTUwgPSBmb3JtYXQoXG4gICAgICAgICAgICAgICAgJy57MH17Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfScgKyAnLnswfSB0ZHtwYWRkaW5nOjB9JyArICcuezF9OmJlZm9yZXtjb250ZW50OmF0dHIoezJ9KX0nLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgVEFCTEVfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgTlVNQkVSX0xJTkVfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgREFUQV9BVFRSX05BTUVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKGNzcyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpbml0TGluZU51bWJlcnNPbkxvYWQob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKGQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJyB8fCBkLnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudFJlYWR5KG9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50UmVhZHkob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBkb2N1bWVudFJlYWR5KG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2tzID0gZC5xdWVyeVNlbGVjdG9yQWxsKCdjb2RlLmhsanMsY29kZS5ub2hpZ2hsaWdodCcpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpIGluIGJsb2Nrcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tzLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUGx1Z2luRGlzYWJsZWRGb3JCbG9jayhibG9ja3NbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcnNCbG9jayhibG9ja3NbaV0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0xpbmVOdW1iZXJzIGVycm9yOiAnLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGlzUGx1Z2luRGlzYWJsZWRGb3JCbG9jayhlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ25vaGxqc2xuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBsaW5lTnVtYmVyc0Jsb2NrKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWxlbWVudCAhPT0gJ29iamVjdCcpIHJldHVybjtcblxuICAgICAgICAgICAgYXN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gbGluZU51bWJlcnNJbnRlcm5hbChlbGVtZW50LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNCbG9ja1N5bmMoZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuXG4gICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGxpbmVOdW1iZXJzSW50ZXJuYWwoZWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBsaW5lTnVtYmVyc1ZhbHVlKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7XG5cbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHJldHVybiBsaW5lTnVtYmVyc0ludGVybmFsKGVsZW1lbnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbGluZU51bWJlcnNJbnRlcm5hbChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBpbnRlcm5hbE9wdGlvbnMgPSBtYXBPcHRpb25zKGVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlcyhlbGVtZW50KTtcblxuICAgICAgICAgICAgcmV0dXJuIGFkZExpbmVOdW1iZXJzQmxvY2tGb3IoZWxlbWVudC5pbm5lckhUTUwsIGludGVybmFsT3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBhZGRMaW5lTnVtYmVyc0Jsb2NrRm9yKGlucHV0SHRtbCwgb3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSBnZXRMaW5lcyhpbnB1dEh0bWwpO1xuXG4gICAgICAgICAgICAvLyBpZiBsYXN0IGxpbmUgY29udGFpbnMgb25seSBjYXJyaWFnZSByZXR1cm4gcmVtb3ZlIGl0XG4gICAgICAgICAgICBpZiAobGluZXNbbGluZXMubGVuZ3RoIC0gMV0udHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgIGxpbmVzLnBvcCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobGluZXMubGVuZ3RoID4gMSB8fCBvcHRpb25zLnNpbmdsZUxpbmUpIHtcbiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9ICcnO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBmb3JtYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHRyPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9XCJ7MH0gezF9XCIgezN9PVwiezV9XCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJ7Mn1cIiB7M309XCJ7NX1cIj48L2Rpdj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC90ZD4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRkIGNsYXNzPVwiezB9IHs0fVwiIHszfT1cIns1fVwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7Nn0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC90ZD4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC90cj4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJTkVfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVU1CRVJTX0JMT0NLX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVNQkVSX0xJTkVfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0FUVFJfTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0RFX0JMT0NLX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArIG9wdGlvbnMuc3RhcnRGcm9tLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzW2ldLmxlbmd0aCA+IDAgPyBsaW5lc1tpXSA6ICcgJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXQoJzx0YWJsZSBjbGFzcz1cInswfVwiPnsxfTwvdGFibGU+JywgW1RBQkxFX05BTUUsIGh0bWxdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGlucHV0SHRtbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IENvZGUgYmxvY2suXG4gICAgICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIEV4dGVybmFsIEFQSSBvcHRpb25zLlxuICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBJbnRlcm5hbCBBUEkgb3B0aW9ucy5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIG1hcE9wdGlvbnMoZWxlbWVudCwgb3B0aW9ucykge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc2luZ2xlTGluZTogZ2V0U2luZ2xlTGluZU9wdGlvbihvcHRpb25zKSxcbiAgICAgICAgICAgICAgICBzdGFydEZyb206IGdldFN0YXJ0RnJvbU9wdGlvbihlbGVtZW50LCBvcHRpb25zKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldFNpbmdsZUxpbmVPcHRpb24ob3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNpbmdsZUxpbmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5zaW5nbGVMaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0U3RhcnRGcm9tT3B0aW9uKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IDE7XG4gICAgICAgICAgICBsZXQgc3RhcnRGcm9tID0gZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoaXNGaW5pdGUob3B0aW9ucy5zdGFydEZyb20pKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRGcm9tID0gb3B0aW9ucy5zdGFydEZyb207XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNhbiBiZSBvdmVycmlkZGVuIGJlY2F1c2UgbG9jYWwgb3B0aW9uIGlzIHByaW9yaXR5XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldEF0dHJpYnV0ZShlbGVtZW50LCAnZGF0YS1sbi1zdGFydC1mcm9tJyk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHN0YXJ0RnJvbSA9IHRvTnVtYmVyKHZhbHVlLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhcnRGcm9tO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlY3Vyc2l2ZSBtZXRob2QgZm9yIGZpeCBtdWx0aS1saW5lIGVsZW1lbnRzIGltcGxlbWVudGF0aW9uIGluIGhpZ2hsaWdodC5qc1xuICAgICAgICAgKiBEb2luZyBkZWVwIHBhc3NhZ2Ugb24gY2hpbGQgbm9kZXMuXG4gICAgICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGR1cGxpY2F0ZU11bHRpbGluZU5vZGVzKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgaW4gbm9kZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZXMuaGFzT3duUHJvcGVydHkobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2Rlc1tub2RlXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TGluZXNDb3VudChjaGlsZC50ZXh0Q29udGVudCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGROb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwbGljYXRlTXVsdGlsaW5lTm9kZXMoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVNdWx0aWxpbmVOb2RlKGNoaWxkLnBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1ldGhvZCBmb3IgZml4IG11bHRpLWxpbmUgZWxlbWVudHMgaW1wbGVtZW50YXRpb24gaW4gaGlnaGxpZ2h0LmpzXG4gICAgICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGR1cGxpY2F0ZU11bHRpbGluZU5vZGUoZWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gZWxlbWVudC5jbGFzc05hbWU7XG5cbiAgICAgICAgICAgIGlmICghL2hsanMtLy50ZXN0KGNsYXNzTmFtZSkpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgbGluZXMgPSBnZXRMaW5lcyhlbGVtZW50LmlubmVySFRNTCk7XG5cbiAgICAgICAgICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZXNbaV0ubGVuZ3RoID4gMCA/IGxpbmVzW2ldIDogJyAnO1xuXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvcm1hdCgnPHNwYW4gY2xhc3M9XCJ7MH1cIj57MX08L3NwYW4+XFxuJywgW2NsYXNzTmFtZSwgbGluZVRleHRdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSByZXN1bHQudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluZXModGV4dCkge1xuICAgICAgICAgICAgaWYgKHRleHQubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG5cbiAgICAgICAgICAgIHJldHVybiB0ZXh0LnNwbGl0KEJSRUFLX0xJTkVfUkVHRVhQKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldExpbmVzQ291bnQodGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuICh0ZXh0LnRyaW0oKS5tYXRjaChCUkVBS19MSU5FX1JFR0VYUCkgfHwgW10pLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vL1xuICAgICAgICAvLy8gSEVMUEVSU1xuICAgICAgICAvLy9cblxuICAgICAgICBmdW5jdGlvbiBhc3luYyhmdW5jKSB7XG4gICAgICAgICAgICB3LnNldFRpbWVvdXQoZnVuYywgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vd2NvZGVyLmdpdGh1Yi5pby9ub3Rlcy9zdHJpbmctZm9ybWF0LWZvci1zdHJpbmctZm9ybWF0aW5nLWluLWphdmFzY3JpcHR9XG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXRcbiAgICAgICAgICogQHBhcmFtIHthcnJheX0gYXJnc1xuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZm9ybWF0KGZvcm1hdCwgYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC9cXHsoXFxkKylcXH0vZywgZnVuY3Rpb24gKG0sIG4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1tuXSAhPT0gdW5kZWZpbmVkID8gYXJnc1tuXSA6IG07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IENvZGUgYmxvY2suXG4gICAgICAgICAqIEBwYXJhbSB7U3RyaW5nfSBhdHRyTmFtZSBBdHRyaWJ1dGUgbmFtZS5cbiAgICAgICAgICogQHJldHVybnMge1N0cmluZ30gQXR0cmlidXRlIHZhbHVlIG9yIGVtcHR5LlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZ2V0QXR0cmlidXRlKGVsZW1lbnQsIGF0dHJOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0ck5hbWUpID8gZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0ck5hbWUpIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyIFNvdXJjZSBzdHJpbmcuXG4gICAgICAgICAqIEBwYXJhbSB7TnVtYmVyfSBmYWxsYmFjayBGYWxsYmFjayB2YWx1ZS5cbiAgICAgICAgICogQHJldHVybnMgUGFyc2VkIG51bWJlciBvciBmYWxsYmFjayB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHRvTnVtYmVyKHN0ciwgZmFsbGJhY2spIHtcbiAgICAgICAgICAgIGlmICghc3RyKSByZXR1cm4gZmFsbGJhY2s7XG4gICAgICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIoc3RyKTtcblxuICAgICAgICAgICAgcmV0dXJuIGlzRmluaXRlKG51bWJlcikgPyBudW1iZXIgOiBmYWxsYmFjaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==