@fundamental-ngx/core 0.44.0-rc.2 → 0.44.0-rc.3

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 (77) hide show
  1. package/breadcrumb/breadcrumb.component.d.ts +4 -4
  2. package/content-density/providers/content-density-observer-providers.d.ts +1 -1
  3. package/content-density/services/content-density-observer.service.d.ts +3 -3
  4. package/dialog/dialog-container/dialog-container.component.d.ts +4 -4
  5. package/esm2022/breadcrumb/breadcrumb.component.mjs +9 -11
  6. package/esm2022/content-density/providers/content-density-observer-providers.mjs +4 -4
  7. package/esm2022/content-density/services/content-density-observer.service.mjs +13 -13
  8. package/esm2022/dialog/dialog-container/dialog-container.component.mjs +12 -13
  9. package/esm2022/message-box/message-box-container/message-box-container.component.mjs +12 -15
  10. package/esm2022/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +8 -9
  11. package/esm2022/message-strip/auto-dismiss-message-strip.directive.mjs +10 -9
  12. package/esm2022/multi-combobox/base-multi-combobox.class.mjs +17 -14
  13. package/esm2022/multi-combobox/multi-combobox.component.mjs +44 -45
  14. package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +8 -10
  15. package/esm2022/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +9 -11
  16. package/esm2022/segmented-button/segmented-button.component.mjs +19 -21
  17. package/esm2022/shellbar/shellbar.component.mjs +12 -11
  18. package/esm2022/split-button/split-button.component.mjs +15 -16
  19. package/esm2022/table/directives/table-cell.directive.mjs +5 -7
  20. package/esm2022/table/directives/table-row.directive.mjs +17 -20
  21. package/esm2022/table/table.component.mjs +10 -9
  22. package/esm2022/tabs/tab-list.component.mjs +26 -28
  23. package/esm2022/token/token.component.mjs +13 -13
  24. package/esm2022/toolbar/toolbar.component.mjs +23 -24
  25. package/esm2022/tree/components/tree-item/tree-item.component.mjs +21 -21
  26. package/esm2022/tree/tree.component.mjs +23 -22
  27. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +9 -10
  28. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-content-density.mjs +15 -14
  30. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-dialog.mjs +10 -9
  32. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-message-box.mjs +11 -11
  34. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-message-strip.mjs +16 -14
  36. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +62 -63
  38. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +9 -10
  40. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +17 -19
  42. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-shellbar.mjs +11 -10
  44. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-split-button.mjs +13 -13
  46. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-table.mjs +26 -30
  48. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-tabs.mjs +27 -28
  50. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-token.mjs +13 -12
  52. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-toolbar.mjs +21 -22
  54. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-tree.mjs +38 -38
  56. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  57. package/fundamental-ngx-core-v0.44.0-rc.3.tgz +0 -0
  58. package/message-box/message-box-container/message-box-container.component.d.ts +4 -6
  59. package/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.d.ts +1 -1
  60. package/message-strip/auto-dismiss-message-strip.directive.d.ts +3 -3
  61. package/multi-combobox/base-multi-combobox.class.d.ts +30 -30
  62. package/multi-combobox/multi-combobox.component.d.ts +17 -18
  63. package/multi-combobox/select-all-toggler/select-all-toggler.component.d.ts +1 -1
  64. package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +5 -6
  65. package/package.json +3 -3
  66. package/schematics/add-dependencies/index.js +4 -4
  67. package/segmented-button/segmented-button.component.d.ts +6 -7
  68. package/shellbar/shellbar.component.d.ts +1 -1
  69. package/split-button/split-button.component.d.ts +3 -4
  70. package/table/directives/table-row.directive.d.ts +2 -4
  71. package/table/table.component.d.ts +3 -4
  72. package/tabs/tab-list.component.d.ts +4 -5
  73. package/token/token.component.d.ts +5 -5
  74. package/toolbar/toolbar.component.d.ts +6 -6
  75. package/tree/components/tree-item/tree-item.component.d.ts +28 -28
  76. package/tree/tree.component.d.ts +7 -7
  77. package/fundamental-ngx-core-v0.44.0-rc.2.tgz +0 -0
@@ -1,18 +1,16 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, ComponentRef, ElementRef, EmbeddedViewRef, HostBinding, HostListener, Injector, Input, TemplateRef, Type, ViewChild } from '@angular/core';
3
- import { applyCssClass, DestroyedService } from '@fundamental-ngx/cdk/utils';
4
- import { DynamicComponentContainer } from '@fundamental-ngx/cdk/utils';
5
- import { takeUntil } from 'rxjs';
2
+ import { ChangeDetectorRef, Component, ComponentRef, DestroyRef, ElementRef, EmbeddedViewRef, HostBinding, HostListener, Injector, Input, TemplateRef, Type, ViewChild } from '@angular/core';
3
+ import { applyCssClass, DynamicComponentContainer } from '@fundamental-ngx/cdk/utils';
6
4
  import { MessageBoxConfig } from '../utils/message-box-config.class';
7
5
  import { MessageBoxRef } from '../utils/message-box-ref.class';
8
6
  import { MessageBoxDefaultComponent } from '../message-box-default/message-box-default.component';
9
7
  import { CdkPortalOutlet } from '@angular/cdk/portal';
10
8
  import { dialogFade } from '@fundamental-ngx/core/dialog';
9
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "../utils/message-box-config.class";
13
12
  import * as i2 from "../utils/message-box-ref.class";
14
- import * as i3 from "@fundamental-ngx/cdk/utils";
15
- import * as i4 from "@angular/cdk/portal";
13
+ import * as i3 from "@angular/cdk/portal";
16
14
  /** Message box container where the message box content is embedded. */
17
15
  export class MessageBoxContainerComponent extends DynamicComponentContainer {
18
16
  /** Custom classes */
@@ -21,11 +19,11 @@ export class MessageBoxContainerComponent extends DynamicComponentContainer {
21
19
  this.buildComponentCssClass();
22
20
  }
23
21
  /** @hidden */
24
- constructor(messageBoxConfig, _messageBoxRef, _destroy$, elementRef, changeDetectorRef, injector) {
22
+ constructor(messageBoxConfig, _messageBoxRef, _destroyRef, elementRef, changeDetectorRef, injector) {
25
23
  super(elementRef, injector, changeDetectorRef);
26
24
  this.messageBoxConfig = messageBoxConfig;
27
25
  this._messageBoxRef = _messageBoxRef;
28
- this._destroy$ = _destroy$;
26
+ this._destroyRef = _destroyRef;
29
27
  /** The state of the Dialog animations. */
30
28
  this._animationState = 'void';
31
29
  /** @hidden */
@@ -92,13 +90,13 @@ export class MessageBoxContainerComponent extends DynamicComponentContainer {
92
90
  this._animationState = 'hidden';
93
91
  this._cdr.detectChanges();
94
92
  };
95
- this._messageBoxRef.afterClosed.pipe(takeUntil(this._destroy$)).subscribe({
93
+ this._messageBoxRef.afterClosed.pipe(takeUntilDestroyed(this._destroyRef)).subscribe({
96
94
  next: () => callback(),
97
95
  error: () => callback()
98
96
  });
99
97
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MessageBoxContainerComponent, deps: [{ token: i1.MessageBoxConfig }, { token: i2.MessageBoxRef }, { token: i3.DestroyedService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: MessageBoxContainerComponent, selector: "fd-message-box-container", inputs: { class: "class" }, host: { listeners: { "@state.done": "onAnimationEnd($event)" }, properties: { "@state": "this._animationState" } }, providers: [DestroyedService], viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, ngImport: i0, template: '<ng-template (attached)="_attached($event)" cdkPortalOutlet></ng-template>', isInline: true, dependencies: [{ kind: "directive", type: i4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [dialogFade] }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MessageBoxContainerComponent, deps: [{ token: i1.MessageBoxConfig }, { token: i2.MessageBoxRef }, { token: i0.DestroyRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: MessageBoxContainerComponent, selector: "fd-message-box-container", inputs: { class: "class" }, host: { listeners: { "@state.done": "onAnimationEnd($event)" }, properties: { "@state": "this._animationState" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, ngImport: i0, template: '<ng-template (attached)="_attached($event)" cdkPortalOutlet></ng-template>', isInline: true, dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [dialogFade] }); }
102
100
  }
103
101
  __decorate([
104
102
  applyCssClass,
@@ -111,10 +109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
111
109
  args: [{
112
110
  selector: 'fd-message-box-container',
113
111
  template: '<ng-template (attached)="_attached($event)" cdkPortalOutlet></ng-template>',
114
- animations: [dialogFade],
115
- providers: [DestroyedService]
112
+ animations: [dialogFade]
116
113
  }]
117
- }], ctorParameters: function () { return [{ type: i1.MessageBoxConfig }, { type: i2.MessageBoxRef }, { type: i3.DestroyedService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, propDecorators: { class: [{
114
+ }], ctorParameters: function () { return [{ type: i1.MessageBoxConfig }, { type: i2.MessageBoxRef }, { type: i0.DestroyRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, propDecorators: { class: [{
118
115
  type: Input
119
116
  }], _animationState: [{
120
117
  type: HostBinding,
@@ -126,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
126
123
  type: HostListener,
127
124
  args: ['@state.done', ['$event']]
128
125
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1ib3gtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL21lc3NhZ2UtYm94L21lc3NhZ2UtYm94LWNvbnRhaW5lci9tZXNzYWdlLWJveC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLGVBQWUsRUFDZixXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRWxHLE9BQU8sRUFBRSxlQUFlLEVBQThCLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFFMUQsdUVBQXVFO0FBT3ZFLE1BQU0sT0FBTyw0QkFDVCxTQUFRLHlCQUFnRDtJQUd4RCxxQkFBcUI7SUFDckIsSUFDSSxLQUFLLENBQUMsU0FBaUI7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQWFELGNBQWM7SUFDZCxZQUNXLGdCQUFrQyxFQUNqQyxjQUE2QixFQUM3QixTQUEyQixFQUNuQyxVQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQVB4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBZnZDLDBDQUEwQztRQUUxQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQU16QixjQUFjO1FBQ04sV0FBTSxHQUFHLEVBQUUsQ0FBQztJQVlwQixDQUFDO0lBRUQsY0FBYztJQUVkLHNCQUFzQjtRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQseUVBQXlFO0lBRXpFLGNBQWMsQ0FBQyxLQUFxQjtRQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM3QztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDSixTQUFTLENBQUMsS0FBaUM7UUFDakQsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFO1lBQy9CLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQzthQUFNLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtZQUN6QyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsb0NBQW9DO0lBQzFCLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsWUFBWSxZQUFZLElBQUksRUFBRTtZQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxZQUFZLFdBQVcsRUFBRTtZQUNqRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDSCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELG1EQUFtRDtJQUMzQyxnQkFBZ0I7UUFDcEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZGLENBQUM7SUFFRCx1REFBdUQ7SUFDL0MsNEJBQTRCLENBQUMsT0FBaUM7UUFDbEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUksSUFBSSxDQUFDLGFBQTBELENBQUMsUUFBUSxDQUFDO1FBQzNGLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWM7UUFDbEIsTUFBTSxRQUFRLEdBQWUsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdEUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUN0QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUdRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG1NQUYxQixDQUFDLGdCQUFnQixDQUFDLHdFQWtCbEIsZUFBZSx1RUFwQmhCLDRFQUE0RSxpTkFDMUUsQ0FBQyxVQUFVLENBQUM7O0FBdUN4QjtJQURDLGFBQWE7Ozs7MEVBR2I7MkZBdENRLDRCQUE0QjtrQkFOeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUUsNEVBQTRFO29CQUN0RixVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUNoQztrUEFPTyxLQUFLO3NCQURSLEtBQUs7Z0JBUU4sZUFBZTtzQkFEZCxXQUFXO3VCQUFDLFFBQVE7Z0JBS3JCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxlQUFlO2dCQW9CMUIsc0JBQXNCLE1BTXRCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENzc0NsYXNzQnVpbGRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRDb250YWluZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc3NhZ2VCb3hDb25maWcgfSBmcm9tICcuLi91dGlscy9tZXNzYWdlLWJveC1jb25maWcuY2xhc3MnO1xuaW1wb3J0IHsgTWVzc2FnZUJveFJlZiB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtYm94LXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBNZXNzYWdlQm94Q29udGVudCB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtYm94LWNvbnRlbnQuY2xhc3MnO1xuaW1wb3J0IHsgTWVzc2FnZUJveERlZmF1bHRDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlLWJveC1kZWZhdWx0L21lc3NhZ2UtYm94LWRlZmF1bHQuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VCb3hDb250ZW50VHlwZSB9IGZyb20gJy4uL21lc3NhZ2UtYm94LWNvbnRlbnQudHlwZSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQsIENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBkaWFsb2dGYWRlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5cbi8qKiBNZXNzYWdlIGJveCBjb250YWluZXIgd2hlcmUgdGhlIG1lc3NhZ2UgYm94IGNvbnRlbnQgaXMgZW1iZWRkZWQuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLW1lc3NhZ2UtYm94LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGUgKGF0dGFjaGVkKT1cIl9hdHRhY2hlZCgkZXZlbnQpXCIgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+JyxcbiAgICBhbmltYXRpb25zOiBbZGlhbG9nRmFkZV0sXG4gICAgcHJvdmlkZXJzOiBbRGVzdHJveWVkU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJveENvbnRhaW5lckNvbXBvbmVudFxuICAgIGV4dGVuZHMgRHluYW1pY0NvbXBvbmVudENvbnRhaW5lcjxNZXNzYWdlQm94Q29udGVudFR5cGU+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDc3NDbGFzc0J1aWxkZXJcbntcbiAgICAvKiogQ3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGFzcyh1c2VyQ2xhc3M6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jbGFzcyA9IHVzZXJDbGFzcztcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgRGlhbG9nIGFuaW1hdGlvbnMuICovXG4gICAgQEhvc3RCaW5kaW5nKCdAc3RhdGUnKVxuICAgIF9hbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpXG4gICAgcG9ydGFsT3V0bGV0OiBDZGtQb3J0YWxPdXRsZXQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsYXNzID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbWVzc2FnZUJveENvbmZpZzogTWVzc2FnZUJveENvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBfbWVzc2FnZUJveFJlZjogTWVzc2FnZUJveFJlZixcbiAgICAgICAgcHJpdmF0ZSBfZGVzdHJveSQ6IERlc3Ryb3llZFNlcnZpY2UsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGluamVjdG9yLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW3RoaXMubWVzc2FnZUJveENvbmZpZy5jb250YWluZXJDbGFzcyA/IHRoaXMubWVzc2FnZUJveENvbmZpZy5jb250YWluZXJDbGFzcyA6ICcnLCB0aGlzLl9jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBlbmQgb2YgYW5pbWF0aW9ucywgdXBkYXRpbmcgdGhlIHN0YXRlIG9mIHRoZSBNZXNzYWdlIFRvYXN0LiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ0BzdGF0ZS5kb25lJywgWyckZXZlbnQnXSlcbiAgICBvbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0b1N0YXRlIH0gPSBldmVudDtcblxuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VCb3hSZWYuX2VuZENsb3NlJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlQm94UmVmLl9lbmRDbG9zZSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5PbkNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9hdHRhY2hlZChldmVudDogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBldmVudC5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICAgICAgZXZlbnQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMb2FkIHJlY2VpdmVkIGNvbnRlbnQgKi9cbiAgICBwcm90ZWN0ZWQgX2xvYWRDb250ZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGlsZENvbnRlbnQgaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tQ29tcG9uZW50KHRoaXMuY2hpbGRDb250ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkQ29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tVGVtcGxhdGUodGhpcy5jaGlsZENvbnRlbnQsIHRoaXMuX3RlbXBsYXRlQ29udGV4dCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUZyb21EZWZhdWx0TWVzc2FnZUJveCh0aGlzLmNoaWxkQ29udGVudCA/PyBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICd2aXNpYmxlJztcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIGNvbnRleHQgZm9yIGVtYmVkZGVkIHRlbXBsYXRlKi9cbiAgICBwcml2YXRlIF90ZW1wbGF0ZUNvbnRleHQoKTogeyAkaW1wbGljaXQ6IE1lc3NhZ2VCb3hSZWY7IG1lc3NhZ2VCb3hDb25maWc6IE1lc3NhZ2VCb3hDb25maWcgfSB7XG4gICAgICAgIHJldHVybiB7ICRpbXBsaWNpdDogdGhpcy5fbWVzc2FnZUJveFJlZiwgbWVzc2FnZUJveENvbmZpZzogdGhpcy5tZXNzYWdlQm94Q29uZmlnIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTG9hZCBEaWFsb2cgY29tcG9uZW50IGZyb20gcGFzc2VkIG9iamVjdCAqL1xuICAgIHByaXZhdGUgX2NyZWF0ZUZyb21EZWZhdWx0TWVzc2FnZUJveChjb250ZW50OiBNZXNzYWdlQm94Q29udGVudCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRnJvbUNvbXBvbmVudChNZXNzYWdlQm94RGVmYXVsdENvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gKHRoaXMuX2NvbXBvbmVudFJlZiBhcyBDb21wb25lbnRSZWY8TWVzc2FnZUJveERlZmF1bHRDb21wb25lbnQ+KS5pbnN0YW5jZTtcbiAgICAgICAgaW5zdGFuY2UuX21lc3NhZ2VCb3hDb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogV2UgbmVlZCB0byB3YWl0IHVudGlsIGFuaW1hdGlvbiBwbGF5cywgYW5kIHRoZW4gc2VuZCBzaWduYWwgdG8gdGhlIHNlcnZpY2UgdG8gZGVzdHJveSB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGUgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX21lc3NhZ2VCb3hSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKCkgPT4gY2FsbGJhY2soKSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiBjYWxsYmFjaygpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1ib3gtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL21lc3NhZ2UtYm94L21lc3NhZ2UtYm94LWNvbnRhaW5lci9tZXNzYWdlLWJveC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixlQUFlLEVBQ2YsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQW1CLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRWxHLE9BQU8sRUFBRSxlQUFlLEVBQThCLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUVoRSx1RUFBdUU7QUFNdkUsTUFBTSxPQUFPLDRCQUNULFNBQVEseUJBQWdEO0lBR3hELHFCQUFxQjtJQUNyQixJQUNJLEtBQUssQ0FBQyxTQUFpQjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBYUQsY0FBYztJQUNkLFlBQ1csZ0JBQWtDLEVB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QUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2pGLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDdEIsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTFHUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw4UEFnQjFCLGVBQWUsdUVBbkJoQiw0RUFBNEUsaU5BQzFFLENBQUMsVUFBVSxDQUFDOztBQXNDeEI7SUFEQyxhQUFhOzs7OzBFQUdiOzJGQXRDUSw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFLDRFQUE0RTtvQkFDdEYsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUMzQjs0T0FPTyxLQUFLO3NCQURSLEtBQUs7Z0JBUU4sZUFBZTtzQkFEZCxXQUFXO3VCQUFDLFFBQVE7Z0JBS3JCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxlQUFlO2dCQW9CMUIsc0JBQXNCLE1BTXRCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUeXBlLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBhcHBseUNzc0NsYXNzLCBDc3NDbGFzc0J1aWxkZXIsIER5bmFtaWNDb21wb25lbnRDb250YWluZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBNZXNzYWdlQm94Q29uZmlnIH0gZnJvbSAnLi4vdXRpbHMvbWVzc2FnZS1ib3gtY29uZmlnLmNsYXNzJztcbmltcG9ydCB7IE1lc3NhZ2VCb3hSZWYgfSBmcm9tICcuLi91dGlscy9tZXNzYWdlLWJveC1yZWYuY2xhc3MnO1xuaW1wb3J0IHsgTWVzc2FnZUJveENvbnRlbnQgfSBmcm9tICcuLi91dGlscy9tZXNzYWdlLWJveC1jb250ZW50LmNsYXNzJztcbmltcG9ydCB7IE1lc3NhZ2VCb3hEZWZhdWx0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS1ib3gtZGVmYXVsdC9tZXNzYWdlLWJveC1kZWZhdWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQm94Q29udGVudFR5cGUgfSBmcm9tICcuLi9tZXNzYWdlLWJveC1jb250ZW50LnR5cGUnO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0LCBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgZGlhbG9nRmFkZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKiogTWVzc2FnZSBib3ggY29udGFpbmVyIHdoZXJlIHRoZSBtZXNzYWdlIGJveCBjb250ZW50IGlzIGVtYmVkZGVkLiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1tZXNzYWdlLWJveC1jb250YWluZXInLFxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlIChhdHRhY2hlZCk9XCJfYXR0YWNoZWQoJGV2ZW50KVwiIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPicsXG4gICAgYW5pbWF0aW9uczogW2RpYWxvZ0ZhZGVdXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VCb3hDb250YWluZXJDb21wb25lbnRcbiAgICBleHRlbmRzIER5bmFtaWNDb21wb25lbnRDb250YWluZXI8TWVzc2FnZUJveENvbnRlbnRUeXBlPlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ3NzQ2xhc3NCdWlsZGVyXG57XG4gICAgLyoqIEN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY2xhc3ModXNlckNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY2xhc3MgPSB1c2VyQ2xhc3M7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIERpYWxvZyBhbmltYXRpb25zLiAqL1xuICAgIEBIb3N0QmluZGluZygnQHN0YXRlJylcbiAgICBfYW5pbWF0aW9uU3RhdGUgPSAndm9pZCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0KVxuICAgIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbGFzcyA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIG1lc3NhZ2VCb3hDb25maWc6IE1lc3NhZ2VCb3hDb25maWcsXG4gICAgICAgIHByaXZhdGUgX21lc3NhZ2VCb3hSZWY6IE1lc3NhZ2VCb3hSZWYsXG4gICAgICAgIHByaXZhdGUgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGluamVjdG9yLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW3RoaXMubWVzc2FnZUJveENvbmZpZy5jb250YWluZXJDbGFzcyA/IHRoaXMubWVzc2FnZUJveENvbmZpZy5jb250YWluZXJDbGFzcyA6ICcnLCB0aGlzLl9jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBlbmQgb2YgYW5pbWF0aW9ucywgdXBkYXRpbmcgdGhlIHN0YXRlIG9mIHRoZSBNZXNzYWdlIFRvYXN0LiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ0BzdGF0ZS5kb25lJywgWyckZXZlbnQnXSlcbiAgICBvbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0b1N0YXRlIH0gPSBldmVudDtcblxuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VCb3hSZWYuX2VuZENsb3NlJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlQm94UmVmLl9lbmRDbG9zZSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5PbkNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9hdHRhY2hlZChldmVudDogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBldmVudC5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICAgICAgZXZlbnQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMb2FkIHJlY2VpdmVkIGNvbnRlbnQgKi9cbiAgICBwcm90ZWN0ZWQgX2xvYWRDb250ZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jaGlsZENvbnRlbnQgaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tQ29tcG9uZW50KHRoaXMuY2hpbGRDb250ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkQ29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tVGVtcGxhdGUodGhpcy5jaGlsZENvbnRlbnQsIHRoaXMuX3RlbXBsYXRlQ29udGV4dCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUZyb21EZWZhdWx0TWVzc2FnZUJveCh0aGlzLmNoaWxkQ29udGVudCA/PyBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICd2aXNpYmxlJztcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIGNvbnRleHQgZm9yIGVtYmVkZGVkIHRlbXBsYXRlKi9cbiAgICBwcml2YXRlIF90ZW1wbGF0ZUNvbnRleHQoKTogeyAkaW1wbGljaXQ6IE1lc3NhZ2VCb3hSZWY7IG1lc3NhZ2VCb3hDb25maWc6IE1lc3NhZ2VCb3hDb25maWcgfSB7XG4gICAgICAgIHJldHVybiB7ICRpbXBsaWNpdDogdGhpcy5fbWVzc2FnZUJveFJlZiwgbWVzc2FnZUJveENvbmZpZzogdGhpcy5tZXNzYWdlQm94Q29uZmlnIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTG9hZCBEaWFsb2cgY29tcG9uZW50IGZyb20gcGFzc2VkIG9iamVjdCAqL1xuICAgIHByaXZhdGUgX2NyZWF0ZUZyb21EZWZhdWx0TWVzc2FnZUJveChjb250ZW50OiBNZXNzYWdlQm94Q29udGVudCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRnJvbUNvbXBvbmVudChNZXNzYWdlQm94RGVmYXVsdENvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gKHRoaXMuX2NvbXBvbmVudFJlZiBhcyBDb21wb25lbnRSZWY8TWVzc2FnZUJveERlZmF1bHRDb21wb25lbnQ+KS5pbnN0YW5jZTtcbiAgICAgICAgaW5zdGFuY2UuX21lc3NhZ2VCb3hDb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogV2UgbmVlZCB0byB3YWl0IHVudGlsIGFuaW1hdGlvbiBwbGF5cywgYW5kIHRoZW4gc2VuZCBzaWduYWwgdG8gdGhlIHNlcnZpY2UgdG8gZGVzdHJveSB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGUgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX21lc3NhZ2VCb3hSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiBjYWxsYmFjaygpLFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IGNhbGxiYWNrKClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,10 +1,9 @@
1
- import { Component, inject, Injector, Input } from '@angular/core';
1
+ import { Component, DestroyRef, inject, Injector, Input } from '@angular/core';
2
2
  import { MessageStripAlertService } from '../message-strip-alert.service';
3
- import { DestroyedService } from '@fundamental-ngx/cdk/utils';
4
- import { takeUntil } from 'rxjs/operators';
5
3
  import { BehaviorSubject, map, tap } from 'rxjs';
6
4
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
7
5
  import { MessageStripAlertContainerAlertRefs, MessageStripAlertContainerPosition } from '../tokens';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/cdk/portal";
10
9
  /**
@@ -21,7 +20,7 @@ export class MessageStripAlertContainerFooterComponent {
21
20
  */
22
21
  this.position = inject(MessageStripAlertContainerPosition);
23
22
  /** @hidden */
24
- this.destroyed = inject(DestroyedService);
23
+ this._destroyRef = inject(DestroyRef);
25
24
  /** @hidden */
26
25
  this.messageStripAlertService = inject(MessageStripAlertService);
27
26
  /**
@@ -42,7 +41,7 @@ export class MessageStripAlertContainerFooterComponent {
42
41
  providers: [
43
42
  {
44
43
  provide: MessageStripAlertContainerAlertRefs,
45
- useValue: this.alertRefs$.pipe(takeUntil(this.destroyed))
44
+ useValue: this.alertRefs$.pipe(takeUntilDestroyed(this._destroyRef))
46
45
  }
47
46
  ]
48
47
  }));
@@ -50,16 +49,16 @@ export class MessageStripAlertContainerFooterComponent {
50
49
  else {
51
50
  this.footerComponentPortal = undefined;
52
51
  }
53
- }), takeUntil(this.destroyed))
52
+ }), takeUntilDestroyed(this._destroyRef))
54
53
  .subscribe();
55
54
  }
56
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MessageStripAlertContainerFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: MessageStripAlertContainerFooterComponent, isStandalone: true, selector: "fd-message-strip-alert-container-footer", inputs: { alertRefs: "alertRefs" }, providers: [DestroyedService], ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="footerComponentPortal"></ng-template> `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: MessageStripAlertContainerFooterComponent, isStandalone: true, selector: "fd-message-strip-alert-container-footer", inputs: { alertRefs: "alertRefs" }, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="footerComponentPortal"></ng-template> `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
58
57
  }
59
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MessageStripAlertContainerFooterComponent, decorators: [{
60
59
  type: Component,
61
- args: [{ selector: 'fd-message-strip-alert-container-footer', template: ` <ng-template [cdkPortalOutlet]="footerComponentPortal"></ng-template> `, standalone: true, imports: [PortalModule], providers: [DestroyedService], styles: [":host{display:block}\n"] }]
60
+ args: [{ selector: 'fd-message-strip-alert-container-footer', template: ` <ng-template [cdkPortalOutlet]="footerComponentPortal"></ng-template> `, standalone: true, imports: [PortalModule], styles: [":host{display:block}\n"] }]
62
61
  }], propDecorators: { alertRefs: [{
63
62
  type: Input
64
63
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXItZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL21lc3NhZ2Utc3RyaXAvYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXItZm9vdGVyL21lc3NhZ2Utc3RyaXAtYWxlcnQtY29udGFpbmVyLWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXBHOzs7Ozs7R0FNRztBQWVILE1BQU0sT0FBTyx5Q0FBeUM7SUFkdEQ7UUEwQkk7O1dBRUc7UUFDSyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFOUQsY0FBYztRQUNOLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3QyxjQUFjO1FBQ04sNkJBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFcEU7O1dBRUc7UUFDSyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0tBNkJsRjtJQXRERyxjQUFjO0lBQ2QsSUFDSSxTQUFTLENBQUMsU0FBMkM7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQXVCRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUI7YUFDMUMsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUM5QyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUNwQixJQUFJLGVBQWUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUM1QyxlQUFlLEVBQ2YsSUFBSSxFQUNKLFFBQVEsQ0FBQyxNQUFNLENBQUM7b0JBQ1osU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQ0FBbUM7NEJBQzVDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3lCQUM1RDtxQkFDSjtpQkFDSixDQUFDLENBQ0wsQ0FBQzthQUNMO2lCQUFNO2dCQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7YUFDMUM7UUFDTCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBdERRLHlDQUF5QztrR0FBekMseUNBQXlDLDBIQUZ2QyxDQUFDLGdCQUFnQixDQUFDLDBCQVZuQix5RUFBeUUsK0ZBU3pFLFlBQVk7OzJGQUdiLHlDQUF5QztrQkFkckQsU0FBUzsrQkFDSSx5Q0FBeUMsWUFDekMseUVBQXlFLGNBUXZFLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxhQUNaLENBQUMsZ0JBQWdCLENBQUM7OEJBS3pCLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL21lc3NhZ2Utc3RyaXAtYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBBbGVydFJlZiB9IGZyb20gJy4uL21lc3NhZ2Utc3RyaXAtYWxlcnQucmVmJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyQWxlcnRSZWZzLCBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lclBvc2l0aW9uIH0gZnJvbSAnLi4vdG9rZW5zJztcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgZm9vdGVyIG9mIHRoZSBtZXNzYWdlIHN0cmlwIGFsZXJ0IGNvbnRhaW5lci5cbiAqIGlmIHVzZXIgaGFzIHByb3ZpZGVkIHRoZSBmb290ZXIgY29tcG9uZW50IHRocm91Z2ggc2VydmljZSwgdGhlbiB0aGlzIGNvbXBvbmVudFxuICogd2lsbCByZW5kZXIgaXQgaW5zaWRlIGl0c2VsZi5cbiAqIEJlYXIgaW4gbWluZCB0aGF0IHRoaXMgY29tcG9uZW50IGlzIGFsd2F5cyBjcmVhdGVkLCBqdXN0IHNvbWV0aW1lcyBpZiB0aGVyZSBpcyBub3RoaW5nIHRvIHJlbmRlclxuICogaXQgd2lsbCBiZSBlbXB0eS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1tZXNzYWdlLXN0cmlwLWFsZXJ0LWNvbnRhaW5lci1mb290ZXInLFxuICAgIHRlbXBsYXRlOiBgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImZvb3RlckNvbXBvbmVudFBvcnRhbFwiPjwvbmctdGVtcGxhdGU+IGAsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtEZXN0cm95ZWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYWxlcnRSZWZzKGFsZXJ0UmVmczogTnVsbGFibGU8TWVzc2FnZVN0cmlwQWxlcnRSZWZbXT4pIHtcbiAgICAgICAgdGhpcy5hbGVydFJlZnMkLm5leHQoYWxlcnRSZWZzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIHVzZXIgcHJvdmlkZWQgY29tcG9uZW50J3MgcG9ydGFsLlxuICAgICAqL1xuICAgIGZvb3RlckNvbXBvbmVudFBvcnRhbD86IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIG92ZXJsYXkgaW4gd2hpY2ggdGhpcyBjb21wb25lbnQgaXMgcmVuZGVyZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBwb3NpdGlvbiA9IGluamVjdChNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lclBvc2l0aW9uKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgbWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGFsZXJ0IHJlZmVyZW5jZXMgdGhhdCBhcmUgY3VycmVudGx5IHJlbmRlcmVkIGluIHRoZSBjb250YWluZXIuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhbGVydFJlZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOdWxsYWJsZTxNZXNzYWdlU3RyaXBBbGVydFJlZltdPj4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlLmZvb3RlckNvbXBvbmVudHMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGNvbXBvbmVudHMpID0+IGNvbXBvbmVudHNbdGhpcy5wb3NpdGlvbl0pLFxuICAgICAgICAgICAgICAgIHRhcCgoZm9vdGVyQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb290ZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyQ29tcG9uZW50UG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBNZXNzYWdlU3RyaXBBbGVydENvbnRhaW5lckFsZXJ0UmVmcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdGhpcy5hbGVydFJlZnMkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJDb21wb25lbnRQb3J0YWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXItZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL21lc3NhZ2Utc3RyaXAvYWxlcnQvbWVzc2FnZS1zdHJpcC1hbGVydC1jb250YWluZXItZm9vdGVyL21lc3NhZ2Utc3RyaXAtYWxlcnQtY29udGFpbmVyLWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRWhFOzs7Ozs7R0FNRztBQWNILE1BQU0sT0FBTyx5Q0FBeUM7SUFidEQ7UUF5Qkk7O1dBRUc7UUFDSyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFOUQsY0FBYztRQUNOLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpDLGNBQWM7UUFDTiw2QkFBd0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVwRTs7V0FFRztRQUNLLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBRSxDQUFDLENBQUM7S0E2QmxGO0lBdERHLGNBQWM7SUFDZCxJQUNJLFNBQVMsQ0FBQyxTQUEyQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBdUJELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQjthQUMxQyxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQzlDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3BCLElBQUksZUFBZSxFQUFFO2dCQUNqQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQzVDLGVBQWUsRUFDZixJQUFJLEVBQ0osUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDWixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1DQUFtQzs0QkFDNUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzt5QkFDdkU7cUJBQ0o7aUJBQ0osQ0FBQyxDQUNMLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO2FBQzFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUN2QzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBdERRLHlDQUF5QztrR0FBekMseUNBQXlDLHVJQVh4Qyx5RUFBeUUsK0ZBU3pFLFlBQVk7OzJGQUViLHlDQUF5QztrQkFickQsU0FBUzsrQkFDSSx5Q0FBeUMsWUFDekMseUVBQXlFLGNBUXZFLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFLbkIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vbWVzc2FnZS1zdHJpcC1hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcEFsZXJ0UmVmIH0gZnJvbSAnLi4vbWVzc2FnZS1zdHJpcC1hbGVydC5yZWYnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJBbGVydFJlZnMsIE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyUG9zaXRpb24gfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIHRoZSBmb290ZXIgb2YgdGhlIG1lc3NhZ2Ugc3RyaXAgYWxlcnQgY29udGFpbmVyLlxuICogaWYgdXNlciBoYXMgcHJvdmlkZWQgdGhlIGZvb3RlciBjb21wb25lbnQgdGhyb3VnaCBzZXJ2aWNlLCB0aGVuIHRoaXMgY29tcG9uZW50XG4gKiB3aWxsIHJlbmRlciBpdCBpbnNpZGUgaXRzZWxmLlxuICogQmVhciBpbiBtaW5kIHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYWx3YXlzIGNyZWF0ZWQsIGp1c3Qgc29tZXRpbWVzIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVuZGVyXG4gKiBpdCB3aWxsIGJlIGVtcHR5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLW1lc3NhZ2Utc3RyaXAtYWxlcnQtY29udGFpbmVyLWZvb3RlcicsXG4gICAgdGVtcGxhdGU6IGAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiZm9vdGVyQ29tcG9uZW50UG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT4gYCxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtQb3J0YWxNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhbGVydFJlZnMoYWxlcnRSZWZzOiBOdWxsYWJsZTxNZXNzYWdlU3RyaXBBbGVydFJlZltdPikge1xuICAgICAgICB0aGlzLmFsZXJ0UmVmcyQubmV4dChhbGVydFJlZnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgdXNlciBwcm92aWRlZCBjb21wb25lbnQncyBwb3J0YWwuXG4gICAgICovXG4gICAgZm9vdGVyQ29tcG9uZW50UG9ydGFsPzogQ29tcG9uZW50UG9ydGFsPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHBvc2l0aW9uID0gaW5qZWN0KE1lc3NhZ2VTdHJpcEFsZXJ0Q29udGFpbmVyUG9zaXRpb24pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIG1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZSA9IGluamVjdChNZXNzYWdlU3RyaXBBbGVydFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBhbGVydCByZWZlcmVuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSByZW5kZXJlZCBpbiB0aGUgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHByaXZhdGUgYWxlcnRSZWZzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TnVsbGFibGU8TWVzc2FnZVN0cmlwQWxlcnRSZWZbXT4+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTdHJpcEFsZXJ0U2VydmljZS5mb290ZXJDb21wb25lbnRzJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChjb21wb25lbnRzKSA9PiBjb21wb25lbnRzW3RoaXMucG9zaXRpb25dKSxcbiAgICAgICAgICAgICAgICB0YXAoKGZvb3RlckNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9vdGVyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvb3RlckNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTWVzc2FnZVN0cmlwQWxlcnRDb250YWluZXJBbGVydFJlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXMuYWxlcnRSZWZzJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJDb21wb25lbnRQb3J0YWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,13 +1,11 @@
1
- import { Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';
1
+ import { DestroyRef, Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';
2
2
  import { MessageStripComponent } from './message-strip.component';
3
3
  import { fromEvent, map, merge, Observable, of, startWith, takeUntil } from 'rxjs';
4
- import { DestroyedService } from '@fundamental-ngx/cdk/utils';
5
4
  import { switchMap } from 'rxjs/operators';
5
+ import { destroyObservable } from '@fundamental-ngx/cdk/utils';
6
6
  import * as i0 from "@angular/core";
7
7
  export class AutoDismissMessageStripDirective {
8
8
  constructor() {
9
- /** @hidden */
10
- this.messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });
11
9
  /** Whether the message strip is dismissible */
12
10
  this.dismissible = true;
13
11
  /** Whether the alert should be automatically dismissed. */
@@ -19,9 +17,11 @@ export class AutoDismissMessageStripDirective {
19
17
  /** Whether the message strip is currently opened. */
20
18
  this.opened = false;
21
19
  /** @hidden */
20
+ this.messageStripComponent = inject(MessageStripComponent, { optional: false, host: true });
21
+ /** @hidden */
22
22
  this.elementRef = inject(ElementRef);
23
23
  /** @hidden */
24
- this.destroy$ = inject(DestroyedService);
24
+ this._destroyRef = inject(DestroyRef);
25
25
  /**
26
26
  * Mouse is hovering over the message strip.
27
27
  * */
@@ -68,11 +68,13 @@ export class AutoDismissMessageStripDirective {
68
68
  return startAutoDismissTimer$;
69
69
  }))
70
70
  : startAutoDismissTimer$;
71
- source$.pipe(takeUntil(merge(this.destroy$, this.messageStripComponent.onDismiss))).subscribe();
71
+ source$
72
+ .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this.messageStripComponent.onDismiss)))
73
+ .subscribe();
72
74
  }
73
75
  }
74
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AutoDismissMessageStripDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: AutoDismissMessageStripDirective, isStandalone: true, selector: "fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]", inputs: { dismissible: "dismissible", autoDismiss: "autoDismiss", duration: "duration", mousePersist: "mousePersist" }, host: { properties: { "style.display": "!opened ? \"none\" : null" } }, providers: [DestroyedService], exportAs: ["fdAutoDismissMessageStrip"], ngImport: i0 }); }
77
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: AutoDismissMessageStripDirective, isStandalone: true, selector: "fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]", inputs: { dismissible: "dismissible", autoDismiss: "autoDismiss", duration: "duration", mousePersist: "mousePersist" }, host: { properties: { "style.display": "!opened ? \"none\" : null" } }, exportAs: ["fdAutoDismissMessageStrip"], ngImport: i0 }); }
76
78
  }
77
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AutoDismissMessageStripDirective, decorators: [{
78
80
  type: Directive,
@@ -81,7 +83,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
81
83
  selector: 'fd-message-strip[mousePersist], fd-message-strip[duration], fd-message-strip[autoDismiss]',
82
84
  exportAs: 'fdAutoDismissMessageStrip',
83
85
  standalone: true,
84
- providers: [DestroyedService],
85
86
  host: {
86
87
  '[style.display]': '!opened ? "none" : null'
87
88
  }
@@ -95,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
95
96
  }], mousePersist: [{
96
97
  type: Input
97
98
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNtaXNzLW1lc3NhZ2Utc3RyaXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbWVzc2FnZS1zdHJpcC9hdXRvLWRpc21pc3MtbWVzc2FnZS1zdHJpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBWTNDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFWN0M7UUFXSSxjQUFjO1FBQ04sMEJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvRiwrQ0FBK0M7UUFDdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFNUIsMkRBQTJEO1FBQ2xELGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRTVCLG1HQUFtRztRQUMxRixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLDJFQUEyRTtRQUNsRSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU5QixxREFBcUQ7UUFDckQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUlmLGNBQWM7UUFDTixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FB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QUM7OEdBbEZRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHdVQUw5QixDQUFDLGdCQUFnQixDQUFDOzsyRkFLcEIsZ0NBQWdDO2tCQVY1QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDJGQUEyRjtvQkFDckcsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUM3QixJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUseUJBQXlCO3FCQUMvQztpQkFDSjs4QkFNWSxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTdHJpcENvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS1zdHJpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtYXAsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdmZC1tZXNzYWdlLXN0cmlwW21vdXNlUGVyc2lzdF0sIGZkLW1lc3NhZ2Utc3RyaXBbZHVyYXRpb25dLCBmZC1tZXNzYWdlLXN0cmlwW2F1dG9EaXNtaXNzXScsXG4gICAgZXhwb3J0QXM6ICdmZEF1dG9EaXNtaXNzTWVzc2FnZVN0cmlwJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW0Rlc3Ryb3llZFNlcnZpY2VdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tzdHlsZS5kaXNwbGF5XSc6ICchb3BlbmVkID8gXCJub25lXCIgOiBudWxsJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQXV0b0Rpc21pc3NNZXNzYWdlU3RyaXBEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBtZXNzYWdlU3RyaXBDb21wb25lbnQgPSBpbmplY3QoTWVzc2FnZVN0cmlwQ29tcG9uZW50LCB7IG9wdGlvbmFsOiBmYWxzZSwgaG9zdDogdHJ1ZSB9KTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBtZXNzYWdlIHN0cmlwIGlzIGRpc21pc3NpYmxlICovXG4gICAgQElucHV0KCkgZGlzbWlzc2libGUgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGFsZXJ0IHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IGRpc21pc3NlZC4gKi9cbiAgICBASW5wdXQoKSBhdXRvRGlzbWlzcyA9IHRydWU7XG5cbiAgICAvKiogRHVyYXRpb24gb2YgdGltZSAqaW4gbWlsbGlzZWNvbmRzKiB0aGF0IHRoZSBhbGVydCB3aWxsIGJlIHZpc2libGUuIFNldCB0byAtMSBmb3IgaW5kZWZpbml0ZS4gKi9cbiAgICBASW5wdXQoKSBkdXJhdGlvbiA9IDEwMDAwO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGFsZXJ0IHNob3VsZCBzdGF5IG9wZW4gaWYgdGhlIG1vdXNlIGlzIGhvdmVyaW5nIG92ZXIgaXQuICovXG4gICAgQElucHV0KCkgbW91c2VQZXJzaXN0ID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbWVzc2FnZSBzdHJpcCBpcyBjdXJyZW50bHkgb3BlbmVkLiAqL1xuICAgIG9wZW5lZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGF1dG9EaXNtaXNzVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3llZFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogTW91c2UgaXMgaG92ZXJpbmcgb3ZlciB0aGUgbWVzc2FnZSBzdHJpcC5cbiAgICAgKiAqL1xuICAgIHByaXZhdGUgbW91c2VJbiQgPSBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpLnBpcGUobWFwKCgpID0+IHRydWUpKSxcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpLnBpcGUobWFwKCgpID0+IGZhbHNlKSlcbiAgICApLnBpcGUoc3RhcnRXaXRoKGZhbHNlKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZmQtaGFzLWRpc3BsYXktYmxvY2snKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZmQtaGFzLWRpc3BsYXktbm9uZScpO1xuICAgICAgICB0aGlzLnN0b3BBdXRvRGlzbWlzcygpO1xuICAgICAgICBpZiAodGhpcy5hdXRvRGlzbWlzcyAmJiAhdGhpcy5kaXNtaXNzaWJsZSAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdBdXRvIGRpc21pc3MgaXMgZW5hYmxlZCBidXQgdGhlIG1lc3NhZ2Ugc3RyaXAgaXMgbm90IGRpc21pc3NpYmxlLiBQbGVhc2Ugc2V0IHRoZSBkaXNtaXNzaWJsZSBpbnB1dCB0byB0cnVlLidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXV0b0Rpc21pc3MgJiYgdGhpcy5kaXNtaXNzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9EaXNtaXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc3RvcEF1dG9EaXNtaXNzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvRGlzbWlzc1RpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9EaXNtaXNzVGltZW91dCk7XG4gICAgICAgICAgICB0aGlzLmF1dG9EaXNtaXNzVGltZW91dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc3RhcnRBdXRvRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZVxuICAgICAgICBjb25zdCBzdGFydEF1dG9EaXNtaXNzVGltZXIkID0gbmV3IE9ic2VydmFibGUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdXRvRGlzbWlzc1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICAgICAgICAgICAgICByZXMubmV4dCgpO1xuICAgICAgICAgICAgfSwgdGhpcy5kdXJhdGlvbik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9wQXV0b0Rpc21pc3M7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5kdXJhdGlvbiA+IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UkID0gdGhpcy5tb3VzZVBlcnNpc3RcbiAgICAgICAgICAgICAgICA/IHRoaXMubW91c2VJbiQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKG1vdXNlSW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vdXNlSW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnRBdXRvRGlzbWlzc1RpbWVyJDtcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogc3RhcnRBdXRvRGlzbWlzc1RpbWVyJDtcbiAgICAgICAgICAgIHNvdXJjZSQucGlwZSh0YWtlVW50aWwobWVyZ2UodGhpcy5kZXN0cm95JCwgdGhpcy5tZXNzYWdlU3RyaXBDb21wb25lbnQub25EaXNtaXNzKSkpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGRpc21pc3MgPSAoKTogdm9pZCA9PiB0aGlzLm1lc3NhZ2VTdHJpcENvbXBvbmVudC5kaXNtaXNzKCk7XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNtaXNzLW1lc3NhZ2Utc3RyaXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbWVzc2FnZS1zdHJpcC9hdXRvLWRpc21pc3MtbWVzc2FnZS1zdHJpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVcvRCxNQUFNLE9BQU8sZ0NBQWdDO0lBVDdDO1FBVUksK0NBQStDO1FBQ3RDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRTVCLDJEQUEyRDtRQUNsRCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUU1QixtR0FBbUc7UUFDMUYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQiwyRUFBMkU7UUFDbEUsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFOUIscURBQXFEO1FBQ3JELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixjQUFjO1FBQ04sMEJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUkvRixjQUFjO1FBQ04sZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENB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LFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQzs4R0FwRlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBVDVDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsMkZBQTJGO29CQUNyRyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLGlCQUFpQixFQUFFLHlCQUF5QjtxQkFDL0M7aUJBQ0o7OEJBR1ksV0FBVztzQkFBbkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAuY29tcG9uZW50JztcbmltcG9ydCB7IGZyb21FdmVudCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBkZXN0cm95T2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2ZkLW1lc3NhZ2Utc3RyaXBbbW91c2VQZXJzaXN0XSwgZmQtbWVzc2FnZS1zdHJpcFtkdXJhdGlvbl0sIGZkLW1lc3NhZ2Utc3RyaXBbYXV0b0Rpc21pc3NdJyxcbiAgICBleHBvcnRBczogJ2ZkQXV0b0Rpc21pc3NNZXNzYWdlU3RyaXAnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLmRpc3BsYXldJzogJyFvcGVuZWQgPyBcIm5vbmVcIiA6IG51bGwnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvRGlzbWlzc01lc3NhZ2VTdHJpcERpcmVjdGl2ZSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIG1lc3NhZ2Ugc3RyaXAgaXMgZGlzbWlzc2libGUgKi9cbiAgICBASW5wdXQoKSBkaXNtaXNzaWJsZSA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0aGUgYWxlcnQgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZGlzbWlzc2VkLiAqL1xuICAgIEBJbnB1dCgpIGF1dG9EaXNtaXNzID0gdHJ1ZTtcblxuICAgIC8qKiBEdXJhdGlvbiBvZiB0aW1lICppbiBtaWxsaXNlY29uZHMqIHRoYXQgdGhlIGFsZXJ0IHdpbGwgYmUgdmlzaWJsZS4gU2V0IHRvIC0xIGZvciBpbmRlZmluaXRlLiAqL1xuICAgIEBJbnB1dCgpIGR1cmF0aW9uID0gMTAwMDA7XG5cbiAgICAvKiogV2hldGhlciB0aGUgYWxlcnQgc2hvdWxkIHN0YXkgb3BlbiBpZiB0aGUgbW91c2UgaXMgaG92ZXJpbmcgb3ZlciBpdC4gKi9cbiAgICBASW5wdXQoKSBtb3VzZVBlcnNpc3QgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBtZXNzYWdlIHN0cmlwIGlzIGN1cnJlbnRseSBvcGVuZWQuICovXG4gICAgb3BlbmVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgbWVzc2FnZVN0cmlwQ29tcG9uZW50ID0gaW5qZWN0KE1lc3NhZ2VTdHJpcENvbXBvbmVudCwgeyBvcHRpb25hbDogZmFsc2UsIGhvc3Q6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXV0b0Rpc21pc3NUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiBNb3VzZSBpcyBob3ZlcmluZyBvdmVyIHRoZSBtZXNzYWdlIHN0cmlwLlxuICAgICAqICovXG4gICAgcHJpdmF0ZSBtb3VzZUluJCA9IG1lcmdlKFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJykucGlwZShtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJykucGlwZShtYXAoKCkgPT4gZmFsc2UpKVxuICAgICkucGlwZShzdGFydFdpdGgoZmFsc2UpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmZC1oYXMtZGlzcGxheS1ibG9jaycpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmZC1oYXMtZGlzcGxheS1ub25lJyk7XG4gICAgICAgIHRoaXMuc3RvcEF1dG9EaXNtaXNzKCk7XG4gICAgICAgIGlmICh0aGlzLmF1dG9EaXNtaXNzICYmICF0aGlzLmRpc21pc3NpYmxlICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ0F1dG8gZGlzbWlzcyBpcyBlbmFibGVkIGJ1dCB0aGUgbWVzc2FnZSBzdHJpcCBpcyBub3QgZGlzbWlzc2libGUuIFBsZWFzZSBzZXQgdGhlIGRpc21pc3NpYmxlIGlucHV0IHRvIHRydWUuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hdXRvRGlzbWlzcyAmJiB0aGlzLmRpc21pc3NpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b0Rpc21pc3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBzdG9wQXV0b0Rpc21pc3MgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9EaXNtaXNzVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b0Rpc21pc3NUaW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuYXV0b0Rpc21pc3NUaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBzdGFydEF1dG9EaXNtaXNzKCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlXG4gICAgICAgIGNvbnN0IHN0YXJ0QXV0b0Rpc21pc3NUaW1lciQgPSBuZXcgT2JzZXJ2YWJsZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF1dG9EaXNtaXNzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgICAgICAgICAgICAgIHJlcy5uZXh0KCk7XG4gICAgICAgICAgICB9LCB0aGlzLmR1cmF0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3BBdXRvRGlzbWlzcztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmR1cmF0aW9uID4gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSQgPSB0aGlzLm1vdXNlUGVyc2lzdFxuICAgICAgICAgICAgICAgID8gdGhpcy5tb3VzZUluJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobW91c2VJbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW91c2VJbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGFydEF1dG9EaXNtaXNzVGltZXIkO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBzdGFydEF1dG9EaXNtaXNzVGltZXIkO1xuICAgICAgICAgICAgc291cmNlJFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChtZXJnZShkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSwgdGhpcy5tZXNzYWdlU3RyaXBDb21wb25lbnQub25EaXNtaXNzKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGRpc21pc3MgPSAoKTogdm9pZCA9PiB0aGlzLm1lc3NhZ2VTdHJpcENvbXBvbmVudC5kaXNtaXNzKCk7XG59XG4iXX0=
@@ -1,15 +1,16 @@
1
1
  import { ALT, BACKSPACE, CONTROL, DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SHIFT, TAB, UP_ARROW } from '@angular/cdk/keycodes';
2
- import { ChangeDetectorRef, Directive, ElementRef, inject } from '@angular/core';
2
+ import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, inject } from '@angular/core';
3
3
  import { DataSourceDirective, MatchingStrategy } from '@fundamental-ngx/cdk/data-source';
4
4
  import { CvaControl, CvaDirective, isOptionItem, isSelectableOptionItem } from '@fundamental-ngx/cdk/forms';
5
- import { coerceArraySafe, DestroyedService, isFunction, isJsObject, isString, RangeSelector } from '@fundamental-ngx/cdk/utils';
5
+ import { coerceArraySafe, isFunction, isJsObject, isString, RangeSelector } from '@fundamental-ngx/cdk/utils';
6
6
  import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';
7
7
  import equal from 'fast-deep-equal';
8
- import { BehaviorSubject, skip, startWith, Subscription, takeUntil, timer } from 'rxjs';
8
+ import { BehaviorSubject, skip, startWith, Subscription, timer } from 'rxjs';
9
9
  import { displayValue, flattenGroups, lookupValue, objectGet } from './helpers';
10
10
  import { MultiComboboxSelectionChangeEvent } from './models/selection-change.event';
11
11
  import { MultiComboboxConfig } from './multi-combobox-config';
12
12
  import { FD_MAP_LIMIT } from './multi-combobox.component';
13
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
14
  import * as i0 from "@angular/core";
14
15
  export class BaseMultiCombobox {
15
16
  constructor() {
@@ -28,14 +29,6 @@ export class BaseMultiCombobox {
28
29
  });
29
30
  /** Content Density Observer */
30
31
  this.contentDensityObserver = inject(ContentDensityObserver);
31
- /** @Hidden */
32
- this._elmRef = inject((ElementRef));
33
- /** @hidden */
34
- this._cd = inject(ChangeDetectorRef);
35
- /** @hidden */
36
- this._mapLimit = inject(FD_MAP_LIMIT);
37
- /** @Hidden */
38
- this._destroyed$ = inject(DestroyedService);
39
32
  /**
40
33
  * @hidden
41
34
  * List of selected suggestions
@@ -50,6 +43,14 @@ export class BaseMultiCombobox {
50
43
  this._fullFlatSuggestions = [];
51
44
  /** @hidden */
52
45
  this.selectedShown$ = new BehaviorSubject(false);
46
+ /** @Hidden */
47
+ this._elmRef = inject((ElementRef));
48
+ /** @hidden */
49
+ this._cd = inject(ChangeDetectorRef);
50
+ /** @hidden */
51
+ this._mapLimit = inject(FD_MAP_LIMIT);
52
+ /** @Hidden */
53
+ this._destroyRef = inject(DestroyRef);
53
54
  /** @hidden */
54
55
  this._matchingStrategy = this._multiComboboxConfig?.matchingStrategy ?? MatchingStrategy.CONTAINS;
55
56
  /** @hidden */
@@ -319,10 +320,12 @@ export class BaseMultiCombobox {
319
320
  this._dsSubscription = new Subscription();
320
321
  this._dsSubscription.add(this.dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested));
321
322
  this._dsSubscription.add(this.dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived));
322
- this.dataSourceDirective.dataSourceChanged.pipe(startWith(true), takeUntil(this._destroyed$)).subscribe(() => {
323
+ this.dataSourceDirective.dataSourceChanged
324
+ .pipe(startWith(true), takeUntilDestroyed(this._destroyRef))
325
+ .subscribe(() => {
323
326
  this._dataSourceChanged = true;
324
327
  });
325
- this.dataSourceDirective.dataChanged$.pipe(skip(0), takeUntil(this._destroyed$)).subscribe((data) => {
328
+ this.dataSourceDirective.dataChanged$.pipe(skip(0), takeUntilDestroyed(this._destroyRef)).subscribe((data) => {
326
329
  if (data.length === 0) {
327
330
  this._processingEmptyData();
328
331
  return;
@@ -386,4 +389,4 @@ export class BaseMultiCombobox {
386
389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: BaseMultiCombobox, decorators: [{
387
390
  type: Directive
388
391
  }] });
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tdWx0aS1jb21ib2JveC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL211bHRpLWNvbWJvYm94L2Jhc2UtbXVsdGktY29tYm9ib3guY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLEdBQUcsRUFDSCxRQUFRLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxtQkFBbUIsRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JHLE9BQU8sRUFDSCxVQUFVLEVBQ1YsWUFBWSxFQUVaLFlBQVksRUFDWixzQkFBc0IsRUFFekIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFFUixhQUFhLEVBQ2hCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxLQUFLLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0s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QyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNwRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RyxJQUFJLGVBQWUsRUFBRTtnQkFDakIsVUFBVSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO2FBQ2xEO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNKLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUV6QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRWpHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0ExZmlCLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUR0QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBTFQsXG4gICAgQkFDS1NQQUNFLFxuICAgIENPTlRST0wsXG4gICAgRE9XTl9BUlJPVyxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgTEVGVF9BUlJPVyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBTSElGVCxcbiAgICBUQUIsXG4gICAgVVBfQVJST1dcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlRGlyZWN0aXZlLCBNYXRjaGluZ0J5LCBNYXRjaGluZ1N0cmF0ZWd5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgICBDdmFDb250cm9sLFxuICAgIEN2YURpcmVjdGl2ZSxcbiAgICBGb3JtU3RhdGVzLFxuICAgIGlzT3B0aW9uSXRlbSxcbiAgICBpc1NlbGVjdGFibGVPcHRpb25JdGVtLFxuICAgIFNlbGVjdGFibGVPcHRpb25JdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgY29lcmNlQXJyYXlTYWZlLFxuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgaXNGdW5jdGlvbixcbiAgICBpc0pzT2JqZWN0LFxuICAgIGlzU3RyaW5nLFxuICAgIE51bGxhYmxlLFxuICAgIFJhbmdlU2VsZWN0b3Jcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHNraXAsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIEZkTXVsdGlDb21ib2JveEFjY2VwdGFibGVEYXRhU291cmNlLFxuICAgIEZkTXVsdGlDb21ib0JveERhdGFTb3VyY2Vcbn0gZnJvbSAnLi9kYXRhLXNvdXJjZS9tdWx0aS1jb21ib2JveC1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBkaXNwbGF5VmFsdWUsIGZsYXR0ZW5Hcm91cHMsIGxvb2t1cFZhbHVlLCBvYmplY3RHZXQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgTXVsdGlDb21ib2JveFNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvc2VsZWN0aW9uLWNoYW5nZS5ldmVudCc7XG5pbXBvcnQgeyBNdWx0aUNvbWJvYm94Q29uZmlnIH0gZnJvbSAnLi9tdWx0aS1jb21ib2JveC1jb25maWcnO1xuaW1wb3J0IHsgRkRfTUFQX0xJTUlUIH0gZnJvbSAnLi9tdWx0aS1jb21ib2JveC5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBUZXh0QWxpZ25tZW50ID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU11bHRpQ29tYm9ib3g8VCA9IGFueT4ge1xuICAgIC8vIEluamVjdGlvbiBzZWN0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBjdmFDb250cm9sOiBDdmFDb250cm9sPFQ+ID0gaW5qZWN0KEN2YUNvbnRyb2wpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBkYXRhU291cmNlRGlyZWN0aXZlOiBEYXRhU291cmNlRGlyZWN0aXZlPFQsIEZkTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4+ID0gaW5qZWN0KERhdGFTb3VyY2VEaXJlY3RpdmUpO1xuXG4gICAgLyoqIENvbnRyb2wgVmFsdWUgQWNjZXNzb3IgZGlyZWN0aXZlIGZvciBmb3JtcyBzdXBwb3J0LiAqL1xuICAgIHJlYWRvbmx5IF9jdmEgPSBpbmplY3QoQ3ZhRGlyZWN0aXZlPFQ+LCB7XG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBNdWx0aSBjb21ib2JveCBjb25maWcuICovXG4gICAgcmVhZG9ubHkgX211bHRpQ29tYm9ib3hDb25maWcgPSBpbmplY3QoTXVsdGlDb21ib2JveENvbmZpZywge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIENvbnRlbnQgRGVuc2l0eSBPYnNlcnZlciAqL1xuICAgIHJlYWRvbmx5IGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgPSBpbmplY3QoQ29udGVudERlbnNpdHlPYnNlcnZlcik7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZWxtUmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfbWFwTGltaXQgPSBpbmplY3QoRkRfTUFQX0xJTUlUKTtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95ZWQkID0gaW5qZWN0KERlc3Ryb3llZFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2Ygc2VsZWN0ZWQgc3VnZ2VzdGlvbnNcbiAgICAgKi9cbiAgICBfc2VsZWN0ZWRTdWdnZXN0aW9uczogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgbWF0Y2hlZCBzdWdnZXN0aW9uc1xuICAgICAqL1xuICAgIF9zdWdnZXN0aW9uczogU2VsZWN0YWJsZU9wdGlvbkl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHcm91cGVkIHN1Z2dlc3Rpb25zIG1hcHBlZCB0byBhcnJheS5cbiAgICAgKi9cbiAgICBfZmxhdFN1Z2dlc3Rpb25zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mdWxsRmxhdFN1Z2dlc3Rpb25zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICBhYnN0cmFjdCBzZWxlY3RlZEl0ZW1zOiBUW107XG4gICAgYWJzdHJhY3QgZ3JvdXA6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgZ3JvdXBLZXk6IHN0cmluZztcbiAgICBhYnN0cmFjdCBkaXNwbGF5S2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3Qgc2Vjb25kYXJ5S2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3Qgc2hvd1NlY29uZGFyeVRleHQ6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgbG9va3VwS2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3QgaW52YWxpZEVudHJ5TWVzc2FnZTogc3RyaW5nO1xuICAgIGFic3RyYWN0IGludmFsaWRFbnRyeURpc3BsYXlUaW1lOiBudW1iZXI7XG4gICAgYWJzdHJhY3QgbGltaXRsZXNzOiBib29sZWFuO1xuICAgIGFic3RyYWN0IGlzR3JvdXA6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaW5wdXRUZXh0OiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBzZWFyY2hJbnB1dEVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuXG4gICAgYWJzdHJhY3Qgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TXVsdGlDb21ib2JveFNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcbiAgICBhYnN0cmFjdCBkYXRhUmVjZWl2ZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBkYXRhUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdGVkU2hvd24kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGF0YVNvdXJjZTogRmRNdWx0aUNvbWJvYm94QWNjZXB0YWJsZURhdGFTb3VyY2U8VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfaW5wdXRUZXh0VmFsdWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9wcmV2aW91c0lucHV0VGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPVxuICAgICAgICB0aGlzLl9tdWx0aUNvbWJvYm94Q29uZmlnPy5tYXRjaGluZ1N0cmF0ZWd5ID8/IE1hdGNoaW5nU3RyYXRlZ3kuQ09OVEFJTlM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogS2V5cywgdGhhdCB3b24ndCB0cmlnZ2VyIHRoZSBwb3BvdmVyJ3Mgb3BlbiBzdGF0ZSwgd2hlbiBkaXNwYXRjaGVkIG9uIHNlYXJjaCBpbnB1dC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX25vbk9wZW5pbmdLZXlzOiBudW1iZXJbXSA9IFtcbiAgICAgICAgQkFDS1NQQUNFLFxuICAgICAgICBFU0NBUEUsXG4gICAgICAgIEVOVEVSLFxuICAgICAgICBDT05UUk9MLFxuICAgICAgICBUQUIsXG4gICAgICAgIFNISUZULFxuICAgICAgICBVUF9BUlJPVyxcbiAgICAgICAgUklHSFRfQVJST1csXG4gICAgICAgIERPV05fQVJST1csXG4gICAgICAgIExFRlRfQVJST1csXG4gICAgICAgIEFMVFxuICAgIF07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfdGltZXJTdWIkOiBTdWJzY3JpcHRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcHJldmlvdXNTdGF0ZT86IEZvcm1TdGF0ZXM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcHJldmlvdXNTdGF0ZU1lc3NhZ2U6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmFuZ2VTZWxlY3RvciA9IG5ldyBSYW5nZVNlbGVjdG9yKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RhdGFTb3VyY2VDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGlzcGxheUZuID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4gZGlzcGxheVZhbHVlKHZhbHVlLCB0aGlzLmRpc3BsYXlLZXkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3NlY29uZGFyeUZuID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgICBpZiAoaXNPcHRpb25JdGVtKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNlY29uZGFyeVRleHQgPz8gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNKc09iamVjdCh2YWx1ZSkgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gb2JqZWN0R2V0KHZhbHVlLCB0aGlzLnNlY29uZGFyeUtleSk7XG5cbiAgICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1cnJlbnRJdGVtKSA/IGN1cnJlbnRJdGVtKCkgOiBjdXJyZW50SXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBjb2VyY2VBcnJheVNhZmUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jdmEud3JpdGVWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZFN1Z2dlc3Rpb25zKCk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGNvbnRyb2wuXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIGVtaXRPbkNoYW5nZSB3aGV0aGVyIHRvIGVtaXQgXCJvbkNoYW5nZVwiIGV2ZW50LlxuICAgICAqIFNob3VsZCBiZSBcImZhbHNlXCIsIGlmIHRoZSBjaGFuZ2UgaXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChpbnRlcm5hbGx5KSBieSB0aGUgY29udHJvbCwgXCJ0cnVlXCIgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgc2V0VmFsdWUodmFsdWU6IGFueSwgZW1pdE9uQ2hhbmdlID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBjb2VyY2VBcnJheVNhZmUodmFsdWUpO1xuICAgICAgICB0aGlzLl9jdmEuc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zLCBlbWl0T25DaGFuZ2UpO1xuICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZFN1Z2dlc3Rpb25zKCk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdG8gZW1pdCBjaGFuZ2UgZXZlbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTXVsdGlDb21ib2JveFNlbGVjdGlvbkNoYW5nZUV2ZW50KHRoaXMsIHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3NldFNlbGVjdGVkU3VnZ2VzdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkU3VnZ2VzdGlvbnMgPSBbXTtcblxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2Z1bGxGbGF0U3VnZ2VzdGlvbnMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmxhYmVsID09PSBzZWxlY3RlZEl0ZW0gfHwgaXRlbS52YWx1ZSA9PT0gc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGlkeCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zLnB1c2godGhpcy5fZnVsbEZsYXRTdWdnZXN0aW9uc1tpZHhdKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsRmxhdFN1Z2dlc3Rpb25zW2lkeF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgb3JpZ2luYWwgZGF0YSB0byBTZWxlY3RhYmxlT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udmVydFRvT3B0aW9uSXRlbXMoaXRlbXM6IGFueVtdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1swXTtcblxuICAgICAgICBjb25zdCBlbGVtZW50VHlwZUlzT3B0aW9uSXRlbSA9IGlzU2VsZWN0YWJsZU9wdGlvbkl0ZW0oaXRlbSk7XG4gICAgICAgIGlmIChlbGVtZW50VHlwZUlzT3B0aW9uSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zIGFzIFNlbGVjdGFibGVPcHRpb25JdGVtW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50VHlwZUlzT2JqZWN0ID0gaXNKc09iamVjdChpdGVtKTtcbiAgICAgICAgaWYgKGVsZW1lbnRUeXBlSXNPYmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvT3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGVJc1N0cmluZyA9IGlzU3RyaW5nKGl0ZW0pO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGVJc1N0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRQcmltaXRpdmVUb09wdGlvbkl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGRhdGEgdG8gU2VsZWN0YWJsZU9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbnZlcnRPYmplY3RzVG9PcHRpb25JdGVtcyhpdGVtczogVFtdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvR3JvdXBPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93U2Vjb25kYXJ5VGV4dCAmJiB0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRPYmplY3RzVG9TZWNvbmRhcnlPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydE9iamVjdHNUb0RlZmF1bHRPcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IG9iamVjdFtdIGRhdGEgdG8gR3JvdXAgT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udmVydE9iamVjdHNUb0dyb3VwT3B0aW9uSXRlbXM8SyBleHRlbmRzIFQ+KGl0ZW1zOiBLW10pOiBTZWxlY3RhYmxlT3B0aW9uSXRlbTxUPltdIHtcbiAgICAgICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEtbXT4gPSB7fTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaV07XG4gICAgICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IGl0ZW1bdGhpcy5ncm91cEtleV07XG4gICAgICAgICAgICBpZiAoIWtleVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZ3JvdXBba2V5VmFsdWVdKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBba2V5VmFsdWVdID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdyb3VwW2tleVZhbHVlXS5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGdyb3VwKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0SXRlbTogU2VsZWN0YWJsZU9wdGlvbkl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiB0cnVlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSBncm91cFtrZXldO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zaG93U2Vjb25kYXJ5VGV4dCAmJiB0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0uY2hpbGRyZW4gPSB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXMoY3VycmVudEdyb3VwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0SXRlbS5jaGlsZHJlbiA9IHRoaXMuX2NvbnZlcnRPYmplY3RzVG9EZWZhdWx0T3B0aW9uSXRlbXMoY3VycmVudEdyb3VwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgVFtdIGRhdGEgdG8gU2Vjb25kYXJ5IFNlbGVjdGFibGVPcHRpb25JdGVtczxUPiBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXM8SyBleHRlbmRzIFQ+KGl0ZW1zOiBLW10pOiBTZWxlY3RhYmxlT3B0aW9uSXRlbTxUPltdIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbXM6IFNlbGVjdGFibGVPcHRpb25JdGVtW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgc2VsZWN0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGRpc3BsYXlWYWx1ZSh2YWx1ZSwgdGhpcy5kaXNwbGF5S2V5KSxcbiAgICAgICAgICAgICAgICBpZDogbG9va3VwVmFsdWUodmFsdWUsIHRoaXMubG9va3VwS2V5KSxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiBvYmplY3RHZXQodmFsdWUsIHRoaXMuc2Vjb25kYXJ5S2V5KSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zPy5pbmNsdWRlcyh2YWx1ZSkgfHwgZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgUHJpbWl0aXZlIGRhdGEoQm9vbGVhbiwgU3RyaW5nLCBOdW1iZXIpIHRvIFNlbGVjdGFibGVPcHRpb25JdGVtcyBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb252ZXJ0UHJpbWl0aXZlVG9PcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBTZWxlY3RhYmxlT3B0aW9uSXRlbTxUPltdIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbXM6IFNlbGVjdGFibGVPcHRpb25JdGVtW10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIHNlbGVjdEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBpZDogbG9va3VwVmFsdWUodmFsdWUsIHRoaXMubG9va3VwS2V5KSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zPy5pbmNsdWRlcyh2YWx1ZSkgfHwgZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgVFtdIHRvIFNlbGVjdGFibGVPcHRpb25JdGVtczxUPiBJbnRlcmZhY2UgKERlZmF1bHQpXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udmVydE9iamVjdHNUb0RlZmF1bHRPcHRpb25JdGVtcyhpdGVtczogYW55W10pOiBTZWxlY3RhYmxlT3B0aW9uSXRlbTxUPltdIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbXM6IFNlbGVjdGFibGVPcHRpb25JdGVtW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgc2VsZWN0SXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGRpc3BsYXlWYWx1ZSh2YWx1ZSwgdGhpcy5kaXNwbGF5S2V5KSxcbiAgICAgICAgICAgICAgICBpZDogbG9va3VwVmFsdWUodmFsdWUsIHRoaXMubG9va3VwS2V5KSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zPy5pbmNsdWRlcyh2YWx1ZSkgfHwgZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdEl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9zZXRJbnZhbGlkRW50cnkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1N0YXRlIHx8IHRoaXMuX3ByZXZpb3VzU3RhdGVNZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wcmV2aW91c1N0YXRlID0gdGhpcy5fY3ZhLnN0YXRlO1xuICAgICAgICB0aGlzLl9jdmEuc3RhdGUgPSAnZXJyb3InO1xuXG4gICAgICAgIHRoaXMuX3ByZXZpb3VzU3RhdGVNZXNzYWdlID0gdGhpcy5fY3ZhLnN0YXRlTWVzc2FnZTtcbiAgICAgICAgdGhpcy5fY3ZhLnN0YXRlTWVzc2FnZSA9IHRoaXMuaW52YWxpZEVudHJ5TWVzc2FnZTtcblxuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfdW5zZXRJbnZhbGlkRW50cnkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N2YS5zdGF0ZSA9IHRoaXMuX3ByZXZpb3VzU3RhdGU7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzU3RhdGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5fY3ZhLnN0YXRlTWVzc2FnZSA9IHRoaXMuX3ByZXZpb3VzU3RhdGVNZXNzYWdlO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1N0YXRlTWVzc2FnZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZm9jdXNUb1NlYXJjaEZpZWxkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9tYXBBbmRVcGRhdGVNb2RlbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuX3NlbGVjdGVkU3VnZ2VzdGlvbnMubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKTtcblxuICAgICAgICBjb25zdCBzaG91bGRFbWl0Q2hhbmdlRXZlbnQgPSAhZXF1YWwodGhpcy5zZWxlY3RlZEl0ZW1zLCBzZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICBpZiAoIXNob3VsZEVtaXRDaGFuZ2VFdmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX2N2YS5vbkNoYW5nZShzZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUHJlcGFyZXMgdGhlIGRhdGEgc3RyZWFtIGFuZCBzdWJzY3JpYmVzIHRvIGl0LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfb3BlbkRhdGFTdHJlYW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VQcm92aWRlciA9IHRoaXMuZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlUHJvdmlkZXI7XG5cbiAgICAgICAgaWYgKCFkYXRhU291cmNlUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW2RhdGFTb3VyY2VdIHNvdXJjZSBkaWQgbm90IG1hdGNoIGFuIGFycmF5LCBPYnNlcnZhYmxlLCBvciBEYXRhU291cmNlYCk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhU291cmNlUHJvdmlkZXIubGltaXRsZXNzID0gdGhpcy5saW1pdGxlc3M7XG5cbiAgICAgICAgZGF0YVNvdXJjZVByb3ZpZGVyLmRhdGFQcm92aWRlci5zZXRMb29rdXBLZXkodGhpcy5sb29rdXBLZXkpO1xuICAgICAgICBjb25zdCBtYXRjaGluZ0J5OiBNYXRjaGluZ0J5ID0ge1xuICAgICAgICAgICAgZmlyc3RCeTogdGhpcy5fZGlzcGxheUZuXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kYXJ5S2V5KSB7XG4gICAgICAgICAgICBtYXRjaGluZ0J5LnNlY29uZGFyeUJ5ID0gdGhpcy5fc2Vjb25kYXJ5Rm47XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhU291cmNlUHJvdmlkZXIuZGF0YVByb3ZpZGVyLnNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeSk7XG4gICAgICAgIGRhdGFTb3VyY2VQcm92aWRlci5kYXRhUHJvdmlkZXIuc2V0TWF0Y2hpbmdTdHJhdGVneSh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5KTtcblxuICAgICAgICAvLyBpbml0aWFsIGRhdGEgZmV0Y2hcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICAgICAgICBtYXAuc2V0KCdxdWVyeScsICcqJyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmxpbWl0bGVzcykge1xuICAgICAgICAgICAgbWFwLnNldCgnbGltaXQnLCB0aGlzLl9tYXBMaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhU291cmNlUHJvdmlkZXIubWF0Y2gobWFwKTtcblxuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyPy5kYXRhUmVxdWVzdGVkLnN1YnNjcmliZSh0aGlzLmRhdGFSZXF1ZXN0ZWQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlUHJvdmlkZXI/LmRhdGFSZWNlaXZlZC5zdWJzY3JpYmUodGhpcy5kYXRhUmVjZWl2ZWQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlRGlyZWN0aXZlLmRhdGFTb3VyY2VDaGFuZ2VkLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhQ2hhbmdlZCQucGlwZShza2lwKDApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc2luZ0VtcHR5RGF0YSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNJbnB1dFRleHQgPSB0aGlzLmlucHV0VGV4dDtcblxuICAgICAgICAgICAgdGhpcy5fcGFyc2VEYXRhU291cmNlVmFsdWUoZGF0YSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2N2YS5zdGF0ZUNoYW5nZXMubmV4dCgnaW5pdERhdGFTb3VyY2Uub3BlbigpLicpO1xuXG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2VzIHRoZSBkYXRhIGZyb20gdGhlIGRhdGEgc3RyZWFtIGFuZCB1cGRhdGVzIHRoZSBtb2RlbCBpZiBuZWVkZWQuXG4gICAgICogQHBhcmFtIGRhdGEgYXJyYXkgb2Ygb2JqZWN0cyBmcm9tIHRoZSBkYXRhIHN0cmVhbS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3BhcnNlRGF0YVNvdXJjZVZhbHVlKGRhdGE6IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb252ZXJ0RGF0YVNvdXJjZVN1Z2dlc3Rpb25zKGRhdGEpO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU3VnZ2VzdGlvbnNMZW5ndGggPSB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKHNlbGVjdGVkU3VnZ2VzdGlvbnNMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdGVkU3VnZ2VzdGlvbnNMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU3VnZ2VzdGlvbiA9IHRoaXMuX3NlbGVjdGVkU3VnZ2VzdGlvbnNbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5fc3VnZ2VzdGlvbnMuZmluZEluZGV4KChpdGVtKSA9PiBlcXVhbChpdGVtLnZhbHVlLCBzZWxlY3RlZFN1Z2dlc3Rpb24udmFsdWUpKTtcblxuICAgICAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zW2lkeF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kYXRhU291cmNlQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fZmxhdFN1Z2dlc3Rpb25zID0gdGhpcy5pc0dyb3VwID8gZmxhdHRlbkdyb3Vwcyh0aGlzLl9zdWdnZXN0aW9ucykgOiB0aGlzLl9zdWdnZXN0aW9ucztcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxGbGF0U3VnZ2VzdGlvbnMgPSB0aGlzLl9mbGF0U3VnZ2VzdGlvbnM7XG5cbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGVkU3VnZ2VzdGlvbnMoKTtcblxuICAgICAgICAgICAgdGhpcy5fbWFwQW5kVXBkYXRlTW9kZWwoKTtcblxuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgcGxhaW4gYXJyYXkgaW50byBgU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5gXG4gICAgICogQHBhcmFtIGRhdGFcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbnZlcnREYXRhU291cmNlU3VnZ2VzdGlvbnMoZGF0YTogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gdGhpcy5fY29udmVydFRvT3B0aW9uSXRlbXMoZGF0YSkubWFwKChvcHRpb25JdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zLmZpbmQoKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmlkID09PSBvcHRpb25JdGVtLmlkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25JdGVtLnNlbGVjdGVkID0gc2VsZWN0ZWRFbGVtZW50LnNlbGVjdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbkl0ZW07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9wcm9jZXNzaW5nRW1wdHlEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuX3ByZXZpb3VzSW5wdXRUZXh0O1xuXG4gICAgICAgIHRoaXMuX3NldEludmFsaWRFbnRyeSgpO1xuXG4gICAgICAgIGlmICh0aGlzLl90aW1lclN1YiQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVyU3ViJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGltZXJTdWIkID0gdGltZXIodGhpcy5pbnZhbGlkRW50cnlEaXNwbGF5VGltZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3Vuc2V0SW52YWxpZEVudHJ5KCkpO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iXX0=
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tdWx0aS1jb21ib2JveC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL211bHRpLWNvbWJvYm94L2Jhc2UtbXVsdGktY29tYm9ib3guY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLEdBQUcsRUFDSCxRQUFRLEVBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWdCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsbUJBQW1CLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRyxPQUFPLEVBQ0gsVUFBVSxFQUNWLFlBQVksRUFFWixZQUFZLEVBQ1osc0JBQXNCLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBWSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FB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UztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNwRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RyxJQUFJLGVBQWUsRUFBRTtnQkFDakIsVUFBVSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO2FBQ2xEO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYztJQUNKLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUV6QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRWpHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0E1ZmlCLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUR0QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBTFQsXG4gICAgQkFDS1NQQUNFLFxuICAgIENPTlRST0wsXG4gICAgRE9XTl9BUlJPVyxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgTEVGVF9BUlJPVyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBTSElGVCxcbiAgICBUQUIsXG4gICAgVVBfQVJST1dcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlRGlyZWN0aXZlLCBNYXRjaGluZ0J5LCBNYXRjaGluZ1N0cmF0ZWd5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgICBDdmFDb250cm9sLFxuICAgIEN2YURpcmVjdGl2ZSxcbiAgICBGb3JtU3RhdGVzLFxuICAgIGlzT3B0aW9uSXRlbSxcbiAgICBpc1NlbGVjdGFibGVPcHRpb25JdGVtLFxuICAgIFNlbGVjdGFibGVPcHRpb25JdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUFycmF5U2FmZSwgaXNGdW5jdGlvbiwgaXNKc09iamVjdCwgaXNTdHJpbmcsIE51bGxhYmxlLCBSYW5nZVNlbGVjdG9yIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlPYnNlcnZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHNraXAsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBGZE11bHRpQ29tYm9ib3hBY2NlcHRhYmxlRGF0YVNvdXJjZSxcbiAgICBGZE11bHRpQ29tYm9Cb3hEYXRhU291cmNlXG59IGZyb20gJy4vZGF0YS1zb3VyY2UvbXVsdGktY29tYm9ib3gtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgZGlzcGxheVZhbHVlLCBmbGF0dGVuR3JvdXBzLCBsb29rdXBWYWx1ZSwgb2JqZWN0R2V0IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IE11bHRpQ29tYm9ib3hTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vbW9kZWxzL3NlbGVjdGlvbi1jaGFuZ2UuZXZlbnQnO1xuaW1wb3J0IHsgTXVsdGlDb21ib2JveENvbmZpZyB9IGZyb20gJy4vbXVsdGktY29tYm9ib3gtY29uZmlnJztcbmltcG9ydCB7IEZEX01BUF9MSU1JVCB9IGZyb20gJy4vbXVsdGktY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWdubWVudCA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNdWx0aUNvbWJvYm94PFQgPSBhbnk+IHtcbiAgICBhYnN0cmFjdCBzZWxlY3RlZEl0ZW1zOiBUW107XG4gICAgYWJzdHJhY3QgZ3JvdXA6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgZ3JvdXBLZXk6IHN0cmluZztcbiAgICBhYnN0cmFjdCBkaXNwbGF5S2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3Qgc2Vjb25kYXJ5S2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3Qgc2hvd1NlY29uZGFyeVRleHQ6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgbG9va3VwS2V5OiBzdHJpbmc7XG4gICAgYWJzdHJhY3QgaW52YWxpZEVudHJ5TWVzc2FnZTogc3RyaW5nO1xuICAgIGFic3RyYWN0IGludmFsaWRFbnRyeURpc3BsYXlUaW1lOiBudW1iZXI7XG4gICAgYWJzdHJhY3QgbGltaXRsZXNzOiBib29sZWFuO1xuICAgIGFic3RyYWN0IGlzR3JvdXA6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaW5wdXRUZXh0OiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBzZWFyY2hJbnB1dEVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuXG4gICAgYWJzdHJhY3Qgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TXVsdGlDb21ib2JveFNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcbiAgICBhYnN0cmFjdCBkYXRhUmVjZWl2ZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBkYXRhUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgLy8gSW5qZWN0aW9uIHNlY3Rpb25cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgY3ZhQ29udHJvbDogQ3ZhQ29udHJvbDxUPiA9IGluamVjdChDdmFDb250cm9sKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZGF0YVNvdXJjZURpcmVjdGl2ZTogRGF0YVNvdXJjZURpcmVjdGl2ZTxULCBGZE11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+PiA9IGluamVjdChEYXRhU291cmNlRGlyZWN0aXZlKTtcblxuICAgIC8qKiBDb250cm9sIFZhbHVlIEFjY2Vzc29yIGRpcmVjdGl2ZSBmb3IgZm9ybXMgc3VwcG9ydC4gKi9cbiAgICByZWFkb25seSBfY3ZhID0gaW5qZWN0KEN2YURpcmVjdGl2ZTxUPiwge1xuICAgICAgICBzZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogTXVsdGkgY29tYm9ib3ggY29uZmlnLiAqL1xuICAgIHJlYWRvbmx5IF9tdWx0aUNvbWJvYm94Q29uZmlnID0gaW5qZWN0KE11bHRpQ29tYm9ib3hDb25maWcsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBDb250ZW50IERlbnNpdHkgT2JzZXJ2ZXIgKi9cbiAgICByZWFkb25seSBjb250ZW50RGVuc2l0eU9ic2VydmVyID0gaW5qZWN0KENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2Ygc2VsZWN0ZWQgc3VnZ2VzdGlvbnNcbiAgICAgKi9cbiAgICBfc2VsZWN0ZWRTdWdnZXN0aW9uczogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgbWF0Y2hlZCBzdWdnZXN0aW9uc1xuICAgICAqL1xuICAgIF9zdWdnZXN0aW9uczogU2VsZWN0YWJsZU9wdGlvbkl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHcm91cGVkIHN1Z2dlc3Rpb25zIG1hcHBlZCB0byBhcnJheS5cbiAgICAgKi9cbiAgICBfZmxhdFN1Z2dlc3Rpb25zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mdWxsRmxhdFN1Z2dlc3Rpb25zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdGVkU2hvd24kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZWxtUmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfbWFwTGltaXQgPSBpbmplY3QoRkRfTUFQX0xJTUlUKTtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2U6IEZkTXVsdGlDb21ib2JveEFjY2VwdGFibGVEYXRhU291cmNlPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2lucHV0VGV4dFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcHJldmlvdXNJbnB1dFRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9tYXRjaGluZ1N0cmF0ZWd5OiBNYXRjaGluZ1N0cmF0ZWd5ID1cbiAgICAgICAgdGhpcy5fbXVsdGlDb21ib2JveENvbmZpZz8ubWF0Y2hpbmdTdHJhdGVneSA/PyBNYXRjaGluZ1N0cmF0ZWd5LkNPTlRBSU5TO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2RzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEtleXMsIHRoYXQgd29uJ3QgdHJpZ2dlciB0aGUgcG9wb3ZlcidzIG9wZW4gc3RhdGUsIHdoZW4gZGlzcGF0Y2hlZCBvbiBzZWFyY2ggaW5wdXQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9ub25PcGVuaW5nS2V5czogbnVtYmVyW10gPSBbXG4gICAgICAgIEJBQ0tTUEFDRSxcbiAgICAgICAgRVNDQVBFLFxuICAgICAgICBFTlRFUixcbiAgICAgICAgQ09OVFJPTCxcbiAgICAgICAgVEFCLFxuICAgICAgICBTSElGVCxcbiAgICAgICAgVVBfQVJST1csXG4gICAgICAgIFJJR0hUX0FSUk9XLFxuICAgICAgICBET1dOX0FSUk9XLFxuICAgICAgICBMRUZUX0FSUk9XLFxuICAgICAgICBBTFRcbiAgICBdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3RpbWVyU3ViJDogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3ByZXZpb3VzU3RhdGU/OiBGb3JtU3RhdGVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3ByZXZpb3VzU3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3JhbmdlU2VsZWN0b3IgPSBuZXcgUmFuZ2VTZWxlY3RvcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kYXRhU291cmNlQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gY29lcmNlQXJyYXlTYWZlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY3ZhLndyaXRlVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRTdWdnZXN0aW9ucygpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYSBjb250cm9sLlxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgYXBwbGllZFxuICAgICAqIEBwYXJhbSBlbWl0T25DaGFuZ2Ugd2hldGhlciB0byBlbWl0IFwib25DaGFuZ2VcIiBldmVudC5cbiAgICAgKiBTaG91bGQgYmUgXCJmYWxzZVwiLCBpZiB0aGUgY2hhbmdlIGlzIG1hZGUgcHJvZ3JhbW1hdGljYWxseSAoaW50ZXJuYWxseSkgYnkgdGhlIGNvbnRyb2wsIFwidHJ1ZVwiIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHNldFZhbHVlKHZhbHVlOiBhbnksIGVtaXRPbkNoYW5nZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gY29lcmNlQXJyYXlTYWZlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY3ZhLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcywgZW1pdE9uQ2hhbmdlKTtcbiAgICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRTdWdnZXN0aW9ucygpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGlzcGxheUZuID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4gZGlzcGxheVZhbHVlKHZhbHVlLCB0aGlzLmRpc3BsYXlLZXkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3NlY29uZGFyeUZuID0gKHZhbHVlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgICBpZiAoaXNPcHRpb25JdGVtKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNlY29uZGFyeVRleHQgPz8gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNKc09iamVjdCh2YWx1ZSkgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gb2JqZWN0R2V0KHZhbHVlLCB0aGlzLnNlY29uZGFyeUtleSk7XG5cbiAgICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1cnJlbnRJdGVtKSA/IGN1cnJlbnRJdGVtKCkgOiBjdXJyZW50SXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRvIGVtaXQgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IE11bHRpQ29tYm9ib3hTZWxlY3Rpb25DaGFuZ2VFdmVudCh0aGlzLCB0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9zZXRTZWxlY3RlZFN1Z2dlc3Rpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zID0gW107XG5cbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbaV07XG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9mdWxsRmxhdFN1Z2dlc3Rpb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gc2VsZWN0ZWRJdGVtIHx8IGl0ZW0udmFsdWUgPT09IHNlbGVjdGVkSXRlbVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTdWdnZXN0aW9ucy5wdXNoKHRoaXMuX2Z1bGxGbGF0U3VnZ2VzdGlvbnNbaWR4XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbEZsYXRTdWdnZXN0aW9uc1tpZHhdLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IG9yaWdpbmFsIGRhdGEgdG8gU2VsZWN0YWJsZU9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbnZlcnRUb09wdGlvbkl0ZW1zKGl0ZW1zOiBhbnlbXSk6IFNlbGVjdGFibGVPcHRpb25JdGVtPFQ+W10ge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbMF07XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGVJc09wdGlvbkl0ZW0gPSBpc1NlbGVjdGFibGVPcHRpb25JdGVtKGl0ZW0pO1xuICAgICAgICBpZiAoZWxlbWVudFR5cGVJc09wdGlvbkl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcyBhcyBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGVJc09iamVjdCA9IGlzSnNPYmplY3QoaXRlbSk7XG4gICAgICAgIGlmIChlbGVtZW50VHlwZUlzT2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydE9iamVjdHNUb09wdGlvbkl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRUeXBlSXNTdHJpbmcgPSBpc1N0cmluZyhpdGVtKTtcbiAgICAgICAgaWYgKGVsZW1lbnRUeXBlSXNTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0UHJpbWl0aXZlVG9PcHRpb25JdGVtcyhpdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBkYXRhIHRvIFNlbGVjdGFibGVPcHRpb25JdGVtcyBJbnRlcmZhY2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb252ZXJ0T2JqZWN0c1RvT3B0aW9uSXRlbXMoaXRlbXM6IFRbXSk6IFNlbGVjdGFibGVPcHRpb25JdGVtPFQ+W10ge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29udmVydE9iamVjdHNUb0dyb3VwT3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2hvd1NlY29uZGFyeVRleHQgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvU2Vjb25kYXJ5T3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRPYmplY3RzVG9EZWZhdWx0T3B0aW9uSXRlbXMoaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBvYmplY3RbXSBkYXRhIHRvIEdyb3VwIE9wdGlvbkl0ZW1zIEludGVyZmFjZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbnZlcnRPYmplY3RzVG9Hcm91cE9wdGlvbkl0ZW1zPEsgZXh0ZW5kcyBUPihpdGVtczogS1tdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGNvbnN0IGdyb3VwOiBSZWNvcmQ8c3RyaW5nLCBLW10+ID0ge307XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBpdGVtW3RoaXMuZ3JvdXBLZXldO1xuICAgICAgICAgICAgaWYgKCFrZXlWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWdyb3VwW2tleVZhbHVlXSkge1xuICAgICAgICAgICAgICAgIGdyb3VwW2tleVZhbHVlXSA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBncm91cFtrZXlWYWx1ZV0ucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhncm91cCkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEl0ZW06IFNlbGVjdGFibGVPcHRpb25JdGVtID0ge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBrZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogdHJ1ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gZ3JvdXBba2V5XTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd1NlY29uZGFyeVRleHQgJiYgdGhpcy5zZWNvbmRhcnlLZXkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RJdGVtLmNoaWxkcmVuID0gdGhpcy5fY29udmVydE9iamVjdHNUb1NlY29uZGFyeU9wdGlvbkl0ZW1zKGN1cnJlbnRHcm91cCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0uY2hpbGRyZW4gPSB0aGlzLl9jb252ZXJ0T2JqZWN0c1RvRGVmYXVsdE9wdGlvbkl0ZW1zKGN1cnJlbnRHcm91cCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RJdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFRbXSBkYXRhIHRvIFNlY29uZGFyeSBTZWxlY3RhYmxlT3B0aW9uSXRlbXM8VD4gSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udmVydE9iamVjdHNUb1NlY29uZGFyeU9wdGlvbkl0ZW1zPEsgZXh0ZW5kcyBUPihpdGVtczogS1tdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEl0ZW1zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIHNlbGVjdEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBkaXNwbGF5VmFsdWUodmFsdWUsIHRoaXMuZGlzcGxheUtleSksXG4gICAgICAgICAgICAgICAgaWQ6IGxvb2t1cFZhbHVlKHZhbHVlLCB0aGlzLmxvb2t1cEtleSksXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dDogb2JqZWN0R2V0KHZhbHVlLCB0aGlzLnNlY29uZGFyeUtleSksXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcz8uaW5jbHVkZXModmFsdWUpIHx8IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZWxlY3RJdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFByaW1pdGl2ZSBkYXRhKEJvb2xlYW4sIFN0cmluZywgTnVtYmVyKSB0byBTZWxlY3RhYmxlT3B0aW9uSXRlbXMgSW50ZXJmYWNlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udmVydFByaW1pdGl2ZVRvT3B0aW9uSXRlbXMoaXRlbXM6IGFueVtdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEl0ZW1zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbXNbaV07XG4gICAgICAgICAgICBzZWxlY3RJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdmFsdWUsXG4gICAgICAgICAgICAgICAgaWQ6IGxvb2t1cFZhbHVlKHZhbHVlLCB0aGlzLmxvb2t1cEtleSksXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcz8uaW5jbHVkZXModmFsdWUpIHx8IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZWxlY3RJdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFRbXSB0byBTZWxlY3RhYmxlT3B0aW9uSXRlbXM8VD4gSW50ZXJmYWNlIChEZWZhdWx0KVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbnZlcnRPYmplY3RzVG9EZWZhdWx0T3B0aW9uSXRlbXMoaXRlbXM6IGFueVtdKTogU2VsZWN0YWJsZU9wdGlvbkl0ZW08VD5bXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEl0ZW1zOiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtc1tpXTtcbiAgICAgICAgICAgIHNlbGVjdEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBkaXNwbGF5VmFsdWUodmFsdWUsIHRoaXMuZGlzcGxheUtleSksXG4gICAgICAgICAgICAgICAgaWQ6IGxvb2t1cFZhbHVlKHZhbHVlLCB0aGlzLmxvb2t1cEtleSksXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcz8uaW5jbHVkZXModmFsdWUpIHx8IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZWxlY3RJdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfc2V0SW52YWxpZEVudHJ5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTdGF0ZSB8fCB0aGlzLl9wcmV2aW91c1N0YXRlTWVzc2FnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcHJldmlvdXNTdGF0ZSA9IHRoaXMuX2N2YS5zdGF0ZTtcbiAgICAgICAgdGhpcy5fY3ZhLnN0YXRlID0gJ2Vycm9yJztcblxuICAgICAgICB0aGlzLl9wcmV2aW91c1N0YXRlTWVzc2FnZSA9IHRoaXMuX2N2YS5zdGF0ZU1lc3NhZ2U7XG4gICAgICAgIHRoaXMuX2N2YS5zdGF0ZU1lc3NhZ2UgPSB0aGlzLmludmFsaWRFbnRyeU1lc3NhZ2U7XG5cbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3Vuc2V0SW52YWxpZEVudHJ5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdmEuc3RhdGUgPSB0aGlzLl9wcmV2aW91c1N0YXRlO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1N0YXRlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuX2N2YS5zdGF0ZU1lc3NhZ2UgPSB0aGlzLl9wcmV2aW91c1N0YXRlTWVzc2FnZTtcbiAgICAgICAgdGhpcy5fcHJldmlvdXNTdGF0ZU1lc3NhZ2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzVG9TZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfbWFwQW5kVXBkYXRlTW9kZWwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSk7XG5cbiAgICAgICAgY29uc3Qgc2hvdWxkRW1pdENoYW5nZUV2ZW50ID0gIWVxdWFsKHRoaXMuc2VsZWN0ZWRJdGVtcywgc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgaWYgKCFzaG91bGRFbWl0Q2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShzZWxlY3RlZEl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9jdmEub25DaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fZW1pdENoYW5nZUV2ZW50KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFByZXBhcmVzIHRoZSBkYXRhIHN0cmVhbSBhbmQgc3Vic2NyaWJlcyB0byBpdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX29wZW5EYXRhU3RyZWFtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlUHJvdmlkZXIgPSB0aGlzLmRhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyO1xuXG4gICAgICAgIGlmICghZGF0YVNvdXJjZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtkYXRhU291cmNlXSBzb3VyY2UgZGlkIG5vdCBtYXRjaCBhbiBhcnJheSwgT2JzZXJ2YWJsZSwgb3IgRGF0YVNvdXJjZWApO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YVNvdXJjZVByb3ZpZGVyLmxpbWl0bGVzcyA9IHRoaXMubGltaXRsZXNzO1xuXG4gICAgICAgIGRhdGFTb3VyY2VQcm92aWRlci5kYXRhUHJvdmlkZXIuc2V0TG9va3VwS2V5KHRoaXMubG9va3VwS2V5KTtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSA9IHtcbiAgICAgICAgICAgIGZpcnN0Qnk6IHRoaXMuX2Rpc3BsYXlGblxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLnNlY29uZGFyeUtleSkge1xuICAgICAgICAgICAgbWF0Y2hpbmdCeS5zZWNvbmRhcnlCeSA9IHRoaXMuX3NlY29uZGFyeUZuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YVNvdXJjZVByb3ZpZGVyLmRhdGFQcm92aWRlci5zZXRNYXRjaGluZ0J5KG1hdGNoaW5nQnkpO1xuICAgICAgICBkYXRhU291cmNlUHJvdmlkZXIuZGF0YVByb3ZpZGVyLnNldE1hdGNoaW5nU3RyYXRlZ3kodGhpcy5fbWF0Y2hpbmdTdHJhdGVneSk7XG5cbiAgICAgICAgLy8gaW5pdGlhbCBkYXRhIGZldGNoXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgbWFwLnNldCgncXVlcnknLCAnKicpO1xuXG4gICAgICAgIGlmICghdGhpcy5saW1pdGxlc3MpIHtcbiAgICAgICAgICAgIG1hcC5zZXQoJ2xpbWl0JywgdGhpcy5fbWFwTGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YVNvdXJjZVByb3ZpZGVyLm1hdGNoKG1hcCk7XG5cbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlRGlyZWN0aXZlLmRhdGFTb3VyY2VQcm92aWRlcj8uZGF0YVJlcXVlc3RlZC5zdWJzY3JpYmUodGhpcy5kYXRhUmVxdWVzdGVkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9kc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyPy5kYXRhUmVjZWl2ZWQuc3Vic2NyaWJlKHRoaXMuZGF0YVJlY2VpdmVkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlQ2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YUNoYW5nZWQkLnBpcGUoc2tpcCgwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NpbmdFbXB0eURhdGEoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSW5wdXRUZXh0ID0gdGhpcy5pbnB1dFRleHQ7XG5cbiAgICAgICAgICAgIHRoaXMuX3BhcnNlRGF0YVNvdXJjZVZhbHVlKGRhdGEpO1xuXG4gICAgICAgICAgICB0aGlzLl9jdmEuc3RhdGVDaGFuZ2VzLm5leHQoJ2luaXREYXRhU291cmNlLm9wZW4oKS4nKTtcblxuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgZGF0YSBmcm9tIHRoZSBkYXRhIHN0cmVhbSBhbmQgdXBkYXRlcyB0aGUgbW9kZWwgaWYgbmVlZGVkLlxuICAgICAqIEBwYXJhbSBkYXRhIGFycmF5IG9mIG9iamVjdHMgZnJvbSB0aGUgZGF0YSBzdHJlYW0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9wYXJzZURhdGFTb3VyY2VWYWx1ZShkYXRhOiBUW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udmVydERhdGFTb3VyY2VTdWdnZXN0aW9ucyhkYXRhKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZFN1Z2dlc3Rpb25zTGVuZ3RoID0gdGhpcy5fc2VsZWN0ZWRTdWdnZXN0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChzZWxlY3RlZFN1Z2dlc3Rpb25zTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RlZFN1Z2dlc3Rpb25zTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFN1Z2dlc3Rpb24gPSB0aGlzLl9zZWxlY3RlZFN1Z2dlc3Rpb25zW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX3N1Z2dlc3Rpb25zLmZpbmRJbmRleCgoaXRlbSkgPT4gZXF1YWwoaXRlbS52YWx1ZSwgc2VsZWN0ZWRTdWdnZXN0aW9uLnZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1tpZHhdLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGF0YVNvdXJjZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsYXRTdWdnZXN0aW9ucyA9IHRoaXMuaXNHcm91cCA/IGZsYXR0ZW5Hcm91cHModGhpcy5fc3VnZ2VzdGlvbnMpIDogdGhpcy5fc3VnZ2VzdGlvbnM7XG4gICAgICAgICAgICB0aGlzLl9mdWxsRmxhdFN1Z2dlc3Rpb25zID0gdGhpcy5fZmxhdFN1Z2dlc3Rpb25zO1xuXG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZFN1Z2dlc3Rpb25zKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX21hcEFuZFVwZGF0ZU1vZGVsKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIHBsYWluIGFycmF5IGludG8gYFNlbGVjdGFibGVPcHRpb25JdGVtPFQ+YFxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jb252ZXJ0RGF0YVNvdXJjZVN1Z2dlc3Rpb25zKGRhdGE6IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWdnZXN0aW9ucyA9IHRoaXMuX2NvbnZlcnRUb09wdGlvbkl0ZW1zKGRhdGEpLm1hcCgob3B0aW9uSXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5fc2VsZWN0ZWRTdWdnZXN0aW9ucy5maW5kKChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5pZCA9PT0gb3B0aW9uSXRlbS5pZCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uSXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudC5zZWxlY3RlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHRpb25JdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcHJvY2Vzc2luZ0VtcHR5RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLl9wcmV2aW91c0lucHV0VGV4dDtcblxuICAgICAgICB0aGlzLl9zZXRJbnZhbGlkRW50cnkoKTtcblxuICAgICAgICBpZiAodGhpcy5fdGltZXJTdWIkKSB7XG4gICAgICAgICAgICB0aGlzLl90aW1lclN1YiQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RpbWVyU3ViJCA9IHRpbWVyKHRoaXMuaW52YWxpZEVudHJ5RGlzcGxheVRpbWUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91bnNldEludmFsaWRFbnRyeSgpKTtcblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIl19