@fundamental-ngx/cdk 0.42.0-rc.8 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/data-source/data-source.directive.d.ts +2 -2
  2. package/esm2020/data-source/data-source.directive.mjs +7 -3
  3. package/esm2020/forms/cva/cva.directive.mjs +3 -9
  4. package/esm2020/utils/decorators/apply-css-class.decorator.mjs +16 -15
  5. package/esm2020/utils/decorators/apply-css-style.decorator.mjs +5 -7
  6. package/esm2020/utils/directives/focusable-item/focusable-item.directive.mjs +44 -33
  7. package/esm2020/utils/directives/focusable-list/focusable-list.directive.mjs +43 -21
  8. package/esm2020/utils/directives/selectable-list/selectable-item.directive.mjs +4 -8
  9. package/esm2020/utils/directives/selectable-list/selectable-item.token.mjs +1 -1
  10. package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +7 -2
  11. package/esm2020/utils/dynamic-component/dynamic-component-container.mjs +3 -3
  12. package/esm2020/utils/helpers/get-native-element.mjs +6 -5
  13. package/esm2020/utils/index.mjs +2 -1
  14. package/esm2020/utils/interfaces/has-element-ref.interface.mjs +1 -1
  15. package/fesm2015/fundamental-ngx-cdk-data-source.mjs +6 -2
  16. package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-cdk-forms.mjs +3 -8
  18. package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-cdk-utils.mjs +117 -80
  20. package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
  21. package/fesm2020/fundamental-ngx-cdk-data-source.mjs +6 -2
  22. package/fesm2020/fundamental-ngx-cdk-data-source.mjs.map +1 -1
  23. package/fesm2020/fundamental-ngx-cdk-forms.mjs +3 -8
  24. package/fesm2020/fundamental-ngx-cdk-forms.mjs.map +1 -1
  25. package/fesm2020/fundamental-ngx-cdk-utils.mjs +117 -80
  26. package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
  27. package/forms/cva/cva.directive.d.ts +0 -2
  28. package/fundamental-ngx-cdk-v0.42.0.tgz +0 -0
  29. package/package.json +2 -2
  30. package/utils/directives/focusable-item/focusable-item.directive.d.ts +20 -15
  31. package/utils/directives/focusable-list/focusable-list.directive.d.ts +28 -12
  32. package/utils/directives/selectable-list/selectable-item.directive.d.ts +2 -4
  33. package/utils/directives/selectable-list/selectable-item.token.d.ts +1 -1
  34. package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +3 -1
  35. package/utils/dynamic-component/dynamic-component-container.d.ts +2 -2
  36. package/utils/helpers/get-native-element.d.ts +3 -3
  37. package/utils/index.d.ts +1 -0
  38. package/utils/interfaces/has-element-ref.interface.d.ts +1 -1
  39. package/fundamental-ngx-cdk-v0.42.0-rc.8.tgz +0 -0
@@ -1,4 +1,5 @@
1
- import { ContentChildren, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, QueryList, Renderer2 } from '@angular/core';
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { ContentChildren, Directive, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, QueryList, Renderer2 } from '@angular/core';
2
3
  import { finalize, map, startWith, takeUntil, tap } from 'rxjs/operators';
3
4
  import { DestroyedService } from '../../services/destroyed.service';
4
5
  import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
@@ -12,9 +13,6 @@ import { intersectionObservable, KeyUtil } from '../../functions';
12
13
  import { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';
13
14
  import { scrollIntoView } from './scroll';
14
15
  import * as i0 from "@angular/core";
15
- import * as i1 from "../../services/destroyed.service";
16
- import * as i2 from "@angular/cdk/a11y";
17
- import * as i3 from "../focusable-item";
18
16
  export class DeprecatedFocusableListDirective extends DeprecatedSelector {
19
17
  }
20
18
  DeprecatedFocusableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DeprecatedFocusableListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -48,16 +46,15 @@ export class FocusableListDirective {
48
46
  return this._focusable;
49
47
  }
50
48
  /** @hidden */
49
+ get _focusableItems() {
50
+ return this._items ? this._items : this._projectedFocusableItems;
51
+ }
52
+ /** @hidden */
51
53
  get _tabindex() {
52
54
  return this._tabbable ? 0 : -1;
53
55
  }
54
56
  /** @hidden */
55
- constructor(_renderer, _destroy$, _elementRef, _liveAnnouncer, _focusableObserver) {
56
- this._renderer = _renderer;
57
- this._destroy$ = _destroy$;
58
- this._elementRef = _elementRef;
59
- this._liveAnnouncer = _liveAnnouncer;
60
- this._focusableObserver = _focusableObserver;
57
+ constructor() {
61
58
  /** @hidden */
62
59
  this._focusable = false;
63
60
  /** Direction of navigation. Should be set to 'grid' when list is a part of grid. */
@@ -83,6 +80,20 @@ export class FocusableListDirective {
83
80
  /** @hidden */
84
81
  this._refreshItems$ = new Subject();
85
82
  /** @hidden */
83
+ this._refresh$ = new Subject();
84
+ /** @hidden */
85
+ this._renderer = inject(Renderer2);
86
+ /** @hidden */
87
+ this._destroy$ = inject(DestroyedService);
88
+ /** @hidden */
89
+ this._elementRef = inject(ElementRef);
90
+ /** @hidden */
91
+ this._liveAnnouncer = inject(LiveAnnouncer);
92
+ /** @hidden */
93
+ this._focusableObserver = inject(FocusableObserver);
94
+ /** @hidden */
95
+ this._document = inject(DOCUMENT);
96
+ /** @hidden */
86
97
  this._isVisible = false;
87
98
  intersectionObservable(this._elementRef.nativeElement, { threshold: 0.25 })
88
99
  .pipe(takeUntil(this._destroy$))
@@ -110,13 +121,24 @@ export class FocusableListDirective {
110
121
  }
111
122
  /** @hidden */
112
123
  ngAfterViewInit() {
124
+ this._listenOnItems();
125
+ }
126
+ /** Set items programmatically. */
127
+ setItems(items) {
128
+ this._items = items;
129
+ this._listenOnItems();
130
+ }
131
+ /** @hidden */
132
+ _listenOnItems() {
133
+ const refresh$ = merge(this._refresh$, this._destroy$);
134
+ this._refresh$.next();
113
135
  this._focusableItems.changes
114
- .pipe(startWith(this._focusableItems), map((queryList) => queryList.toArray()), tap((items) => {
136
+ .pipe(startWith(null), map(() => this._focusableItems.toArray()), tap((items) => {
115
137
  const focusableItems = items.map((item, index) => ({
116
138
  index,
117
139
  focusable: () => item.fdkFocusableItem,
118
- elementRef: () => item.elementRef(),
119
- focus: () => item.elementRef().nativeElement.focus(),
140
+ elementRef: item.elementRef,
141
+ focus: () => item.elementRef.nativeElement.focus(),
120
142
  keydown: item._keydown$
121
143
  }));
122
144
  const direction = this.navigationDirection === 'grid' ? 'horizontal' : this.navigationDirection;
@@ -125,7 +147,7 @@ export class FocusableListDirective {
125
147
  contentDirection: this.contentDirection,
126
148
  wrap: this.wrap
127
149
  });
128
- }), takeUntil(this._destroy$))
150
+ }), takeUntil(refresh$))
129
151
  .subscribe();
130
152
  }
131
153
  /** @hidden */
@@ -138,7 +160,7 @@ export class FocusableListDirective {
138
160
  if (event.defaultPrevented) {
139
161
  return;
140
162
  }
141
- const isFocused = document.activeElement === this._elementRef.nativeElement;
163
+ const isFocused = this._document.activeElement === this._elementRef.nativeElement;
142
164
  const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2]) && !event.shiftKey && isFocused;
143
165
  const shouldFocusList = ((KeyUtil.isKeyCode(event, F2) && event.shiftKey) || KeyUtil.isKeyCode(event, ESCAPE)) && !isFocused;
144
166
  if (shouldFocusChild) {
@@ -164,7 +186,7 @@ export class FocusableListDirective {
164
186
  return false;
165
187
  });
166
188
  if (availableIndex != null) {
167
- scrollIntoView(this._focusableItems.get(availableIndex)?.elementRef().nativeElement, scrollPosition);
189
+ scrollIntoView(this._focusableItems.get(availableIndex)?.elementRef.nativeElement, scrollPosition);
168
190
  this._keyManager?.setActiveItem(availableIndex);
169
191
  }
170
192
  }
@@ -258,14 +280,14 @@ export class FocusableListDirective {
258
280
  return `Row: ${position.rowIndex + 1} of ${position.totalRows}, use F2 button to dive in and focus list's item`;
259
281
  }
260
282
  }
261
- FocusableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FocusableListDirective, deps: [{ token: i0.Renderer2 }, { token: i1.DestroyedService }, { token: i0.ElementRef }, { token: i2.LiveAnnouncer }, { token: i3.FocusableObserver }], target: i0.ɵɵFactoryTarget.Directive });
283
+ FocusableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FocusableListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
262
284
  FocusableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: FocusableListDirective, isStandalone: true, selector: "[fdkFocusableList]", inputs: { focusable: "focusable", navigationDirection: "navigationDirection", contentDirection: "contentDirection", wrap: "wrap", listFocusedEventAnnouncer: "listFocusedEventAnnouncer" }, outputs: { itemFocused: "itemFocused" }, host: { listeners: { "keydown": "_onKeydown($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "this._tabindex" } }, providers: [
263
285
  {
264
286
  provide: FDK_FOCUSABLE_LIST_DIRECTIVE,
265
287
  useExisting: FocusableListDirective
266
288
  },
267
289
  DestroyedService
268
- ], queries: [{ propertyName: "_focusableItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], exportAs: ["fdkFocusableList"], usesOnChanges: true, ngImport: i0 });
290
+ ], queries: [{ propertyName: "_projectedFocusableItems", predicate: FDK_FOCUSABLE_ITEM_DIRECTIVE, descendants: true }], exportAs: ["fdkFocusableList"], usesOnChanges: true, ngImport: i0 });
269
291
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: FocusableListDirective, decorators: [{
270
292
  type: Directive,
271
293
  args: [{
@@ -280,7 +302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
280
302
  DestroyedService
281
303
  ]
282
304
  }]
283
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.DestroyedService }, { type: i0.ElementRef }, { type: i2.LiveAnnouncer }, { type: i3.FocusableObserver }]; }, propDecorators: { focusable: [{
305
+ }], ctorParameters: function () { return []; }, propDecorators: { focusable: [{
284
306
  type: Input
285
307
  }], navigationDirection: [{
286
308
  type: Input
@@ -292,7 +314,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
292
314
  type: Input
293
315
  }], itemFocused: [{
294
316
  type: Output
295
- }], _focusableItems: [{
317
+ }], _projectedFocusableItems: [{
296
318
  type: ContentChildren,
297
319
  args: [FDK_FOCUSABLE_ITEM_DIRECTIVE, { descendants: true }]
298
320
  }], _tabindex: [{
@@ -305,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
305
327
  type: HostListener,
306
328
  args: ['focus']
307
329
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEtB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QUMsT0FBTyxRQUFRLENBQUMsU0FBUyxrREFBa0QsQ0FBQztJQUNwSCxDQUFDOzttSEEzVFEsc0JBQXNCO3VHQUF0QixzQkFBc0IsMGFBUnBCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFdBQVcsRUFBRSxzQkFBc0I7U0FDdEM7UUFDRCxnQkFBZ0I7S0FDbkIsMERBd0NnQiw0QkFBNEI7MkZBdENwQyxzQkFBc0I7a0JBWmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLHdCQUF3Qjt5QkFDdEM7d0JBQ0QsZ0JBQWdCO3FCQUNuQjtpQkFDSjtvTkFJTyxTQUFTO3NCQURaLEtBQUs7Z0JBZU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFLTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTTtnQkFLUyxlQUFlO3NCQUQ5QixlQUFlO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkEwQmhFLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxlQUFlO2dCQWdGNUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkErRDdCLFFBQVE7c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlLCBGb2N1c2FibGVJdGVtUG9zaXRpb24gfSBmcm9tICcuLi9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rlc3Ryb3llZC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsIEZvY3VzYWJsZU9ic2VydmVyIH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSB9IGZyb20gJy4vZm9jdXNhYmxlLWxpc3QudG9rZW5zJztcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9udWxsYWJsZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPcHRpb24sIEZvY3VzS2V5TWFuYWdlciwgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGdldE5hdGl2ZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGludGVyc2VjdGlvbk9ic2VydmFibGUsIEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgRjIsIE1BQ19FTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBzY3JvbGxJbnRvVmlldywgU2Nyb2xsUG9zaXRpb24gfSBmcm9tICcuL3Njcm9sbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdFBvc2l0aW9uIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xuICAgIHRvdGFsUm93czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RJdGVtRm9jdXNlZEV2ZW50IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdEtleWRvd25FdmVudCB7XG4gICAgbGlzdDogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZTtcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudDtcbiAgICBhY3RpdmVJdGVtSW5kZXg6IE51bGxhYmxlPG51bWJlcj47XG59XG5cbmludGVyZmFjZSBGb2N1c2FibGVMaXN0Q29uZmlnIHtcbiAgICB3cmFwPzogYm9vbGVhbjtcbiAgICBkaXJlY3Rpb24/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuICAgIGNvbnRlbnREaXJlY3Rpb24/OiAnbHRyJyB8ICdydGwnIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgRm9jdXNhYmxlSXRlbSA9IEZvY3VzYWJsZU9wdGlvbiAmXG4gICAgSGFzRWxlbWVudFJlZiAmIHsgaW5kZXg6IG51bWJlcjsgZm9jdXNhYmxlOiAoKCkgPT4gYm9vbGVhbikgfCBib29sZWFuOyBrZXlkb3duOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+IH07XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZm5Gb2N1c2FibGVMaXN0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgICAgICAgICB1c2VWYWx1ZTogZ2V0RGVwcmVjYXRlZE1vZGVsKCdbZmRrRm9jdXNhYmxlTGlzdF0nLCAnW2ZuRm9jdXNhYmxlTGlzdF0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtGb2N1c2FibGVMaXN0XScsXG4gICAgZXhwb3J0QXM6ICdmZGtGb2N1c2FibGVMaXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAgRGVzdHJveWVkU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogV2hldGhlciB0aGUgd2hvbGUgbGlzdCBzaG91bGQgYmUgZm9jdXNhYmxlLCBoYW5keSBpbiBncmlkcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmb2N1c2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG4gICAgZ2V0IGZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIERpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uLiBTaG91bGQgYmUgc2V0IHRvICdncmlkJyB3aGVuIGxpc3QgaXMgYSBwYXJ0IG9mIGdyaWQuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2dyaWQnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWN0aXZlIGl0ZW0gd2lsbCB3cmFwIHRvIHRoZSBvdGhlciBlbmQgb2YgbGlzdCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwID0gZmFsc2U7XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gcm93IHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyOiAocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbikgPT4gc3RyaW5nID0gdGhpcy5fZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGxpc3QncyBpdGVtIGZvY3VzZWQsIGNvbnRhaW5zIGl0ZW0ncyBwb3NpdGlvbiBpbmZvLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGl0ZW1Gb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIHJlYWRvbmx5IF9mb2N1c2FibGVJdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgX2dyaWRJdGVtRm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVJdGVtUG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZWFkb25seSBfZ3JpZExpc3RGb2N1c2VkJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUxpc3RQb3NpdGlvbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHJlYWRvbmx5IF9rZXlkb3duJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dyaWRQb3NpdGlvbjogeyByb3dJbmRleDogbnVtYmVyOyB0b3RhbFJvd3M6IG51bWJlciB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyPzogRm9jdXNLZXlNYW5hZ2VyPEZvY3VzYWJsZUl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJiYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoSXRlbXMkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgX3RhYmluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZSA/IDAgOiAtMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgX2Rlc3Ryb3kkOiBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSBfbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlcixcbiAgICAgICAgcHJpdmF0ZSBfZm9jdXNhYmxlT2JzZXJ2ZXI6IEZvY3VzYWJsZU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIGludGVyc2VjdGlvbk9ic2VydmFibGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7IHRocmVzaG9sZDogMC4yNSB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzVmlzaWJsZSkgPT4gKHRoaXMuX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVswXT8uaXNJbnRlcnNlY3RpbmcpKTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZiwgZmFsc2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNGb2N1c2FibGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRm9jdXNhYmxlICYmIGlzRm9jdXNhYmxlICE9PSB0aGlzLmZvY3VzYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWyd3cmFwJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhXcmFwKGNoYW5nZXNbJ3dyYXAnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ25hdmlnYXRpb25EaXJlY3Rpb24nXSkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlTmF2aWdhdGlvbkRpcmVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVJdGVtcyksXG4gICAgICAgICAgICAgICAgbWFwKChxdWVyeUxpc3QpID0+IHF1ZXJ5TGlzdC50b0FycmF5KCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXRlbXM6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVbXSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2FibGVJdGVtczogRm9jdXNhYmxlSXRlbVtdID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiAoKSA9PiBpdGVtLmZka0ZvY3VzYWJsZUl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVmOiAoKSA9PiBpdGVtLmVsZW1lbnRSZWYoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOiAoKSA9PiBpdGVtLmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlkb3duOiBpdGVtLl9rZXlkb3duJFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5uYXZpZ2F0aW9uRGlyZWN0aW9uID09PSAnZ3JpZCcgPyAnaG9yaXpvbnRhbCcgOiB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb247XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUZvY3VzTWFuYWdlcihmb2N1c2FibGVJdGVtcywgdGhpcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudERpcmVjdGlvbjogdGhpcy5jb250ZW50RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JhcDogdGhpcy53cmFwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIEFscmVhZHkgaGFuZGxlZFxuICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0NoaWxkID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgTUFDX0VOVEVSLCBGMl0pICYmICFldmVudC5zaGlmdEtleSAmJiBpc0ZvY3VzZWQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzTGlzdCA9XG4gICAgICAgICAgICAoKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBGMikgJiYgZXZlbnQuc2hpZnRLZXkpIHx8IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSAmJiAhaXNGb2N1c2VkO1xuXG4gICAgICAgIGlmIChzaG91bGRGb2N1c0NoaWxkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKDApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkRm9jdXNMaXN0KSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9rZXlkb3duJC5uZXh0KHsgbGlzdDogdGhpcywgZXZlbnQsIGFjdGl2ZUl0ZW1JbmRleDogdGhpcy5fa2V5TWFuYWdlcj8uYWN0aXZlSXRlbUluZGV4ID8/IG51bGwgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBhY3RpdmUgaXRlbSBpbiBsaXN0ICovXG4gICAgc2V0QWN0aXZlSXRlbShpbmRleDogbnVtYmVyLCBzY3JvbGxQb3NpdGlvbj86IFNjcm9sbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBhdmFpbGFibGVJbmRleDtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5maW5kKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPj0gaW5kZXggJiYgaXRlbS5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF2YWlsYWJsZUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmdldChhdmFpbGFibGVJbmRleCk/LmVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LCBzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGF2YWlsYWJsZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1cyB3aG9sZSBsaXN0ICovXG4gICAgZm9jdXMoc2Nyb2xsUG9zaXRpb24/OiBTY3JvbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBhc3luYyBfb25Gb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZExpc3RGb2N1c2VkJC5uZXh0KHRoaXMuX2dyaWRQb3NpdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5saXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX2dyaWRQb3NpdGlvbikpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdXBkYXRlTmF2aWdhdGlvbkRpcmVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uRGlyZWN0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24obnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuY29udGVudERpcmVjdGlvbiB8fCAnbHRyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRJdGVtc1RhYmJhYmxlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc2V0VGFiYmFibGUoc3RhdGUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRHcmlkUG9zaXRpb24ocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncmlkUG9zaXRpb24gPSBwb3NpdGlvbjtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5fZm9jdXNhYmxlSXRlbXMpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbXMpID0+XG4gICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0uX3Bvc2l0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2dyaWRQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xJbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxDb2xzOiB0aGlzLl9mb2N1c2FibGVJdGVtcy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVGb2N1c01hbmFnZXIoXG4gICAgICAgIGl0ZW1zOiBGb2N1c2FibGVJdGVtW10sXG4gICAgICAgIGxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgICAgIGNvbmZpZzogRm9jdXNhYmxlTGlzdENvbmZpZyA9IHt9XG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hJdGVtcyQubmV4dCgpO1xuXG4gICAgICAgIGxldCBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxhbnk+KGl0ZW1zKS53aXRoSG9tZUFuZEVuZCgpO1xuXG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGNvbmZpZy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTsgLy8gc2hvdWxkIGJlIHJlcGxhY2VkXG5cbiAgICAgICAgICAgIC8vIFZlcnRpY2FsIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgc28gbGV0J3MgZGlzYWJsZSBpdCBoZXJlIGluIGNvbnNpc3RlbmN5IHB1cnBvc2VzXG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICEodHlwZW9mIGl0ZW0uZm9jdXNhYmxlID09PSAnYm9vbGVhbicgPyBpdGVtLmZvY3VzYWJsZSA6IGl0ZW0uZm9jdXNhYmxlKCkpKTtcblxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0ga2V5TWFuYWdlcjtcblxuICAgICAgICBjb25zdCBmb2N1c0xpc3RlbmVyRGVzdHJveWVycyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oZ2V0TmF0aXZlRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZUl0ZW0gPSB0aGlzLl9mb2N1c2FibGVJdGVtcy5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncmlkSXRlbUZvY3VzZWQkLm5leHQoZGlyZWN0aXZlSXRlbS5fcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUZvY3VzZWQubmV4dCh7IGluZGV4OiBpdGVtLmluZGV4LCB0b3RhbDogaXRlbXMubGVuZ3RoIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmZvckVhY2goKGkpID0+IGkuc2V0VGFiYmFibGUoaSA9PT0gZGlyZWN0aXZlSXRlbSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oaXRlbS5pbmRleCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lcmdlKC4uLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXlkb3duKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWxyZWFkeSBoYW5kbGVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLl9yZWZyZXNoSXRlbXMkLCB0aGlzLl9kZXN0cm95JCkpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzLmZvckVhY2goKGQpID0+IGQoKSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0TGlzdEZvY3VzZWRFdmVudEFubm91bmNlcihwb3NpdGlvbjogRm9jdXNhYmxlTGlzdFBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBSb3c6ICR7cG9zaXRpb24ucm93SW5kZXggKyAxfSBvZiAke3Bvc2l0aW9uLnRvdGFsUm93c30sIHVzZSBGMiBidXR0b24gdG8gZGl2ZSBpbiBhbmQgZm9jdXMgbGlzdCdzIGl0ZW1gO1xuICAgIH1cbn1cbiJdfQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQW1CLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFB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LDRCQUE0Qjs0QkFDckMsV0FBVyx3QkFBd0I7eUJBQ3RDO3dCQUNELGdCQUFnQjtxQkFDbkI7aUJBQ0o7MEVBSU8sU0FBUztzQkFEWixLQUFLO2dCQWVOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBS04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUtHLFdBQVc7c0JBRG5CLE1BQU07Z0JBS1Msd0JBQXdCO3NCQUR2QyxlQUFlO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFrRGhFLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxlQUFlO2dCQXVGNUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkErRDdCLFFBQVE7c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSwgRm9jdXNhYmxlSXRlbVBvc2l0aW9uIH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kZXN0cm95ZWQuc2VydmljZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnRva2Vucyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c0tleU1hbmFnZXIsIExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBnZXROYXRpdmVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBpbnRlcnNlY3Rpb25PYnNlcnZhYmxlLCBLZXlVdGlsIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IEVOVEVSLCBFU0NBUEUsIEYyLCBNQUNfRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgc2Nyb2xsSW50b1ZpZXcsIFNjcm9sbFBvc2l0aW9uIH0gZnJvbSAnLi9zY3JvbGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RQb3NpdGlvbiB7XG4gICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudCB7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQge1xuICAgIGxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmU7XG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ7XG4gICAgYWN0aXZlSXRlbUluZGV4OiBOdWxsYWJsZTxudW1iZXI+O1xufVxuXG5pbnRlcmZhY2UgRm9jdXNhYmxlTGlzdENvbmZpZyB7XG4gICAgd3JhcD86IGJvb2xlYW47XG4gICAgZGlyZWN0aW9uPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcbiAgICBjb250ZW50RGlyZWN0aW9uPzogJ2x0cicgfCAncnRsJyB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZUl0ZW0gPSBGb2N1c2FibGVPcHRpb24gJlxuICAgIEhhc0VsZW1lbnRSZWYgJiB7IGluZGV4OiBudW1iZXI7IGZvY3VzYWJsZTogKCgpID0+IGJvb2xlYW4pIHwgYm9vbGVhbjsga2V5ZG93bjogU3ViamVjdDxLZXlib2FyZEV2ZW50PiB9O1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZuRm9jdXNhYmxlTGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0ZvY3VzYWJsZUxpc3RdJywgJ1tmbkZvY3VzYWJsZUxpc3RdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrRm9jdXNhYmxlTGlzdF0nLFxuICAgIGV4cG9ydEFzOiAnZmRrRm9jdXNhYmxlTGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlXG4gICAgICAgIH0sXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUxpc3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIHdob2xlIGxpc3Qgc2hvdWxkIGJlIGZvY3VzYWJsZSwgaGFuZHkgaW4gZ3JpZHMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9jdXNhYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRoaXMuX2ZvY3VzYWJsZSk7XG4gICAgfVxuICAgIGdldCBmb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIERpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uLiBTaG91bGQgYmUgc2V0IHRvICdncmlkJyB3aGVuIGxpc3QgaXMgYSBwYXJ0IG9mIGdyaWQuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2dyaWQnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWN0aXZlIGl0ZW0gd2lsbCB3cmFwIHRvIHRoZSBvdGhlciBlbmQgb2YgbGlzdCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwID0gZmFsc2U7XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gcm93IHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyOiAocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbikgPT4gc3RyaW5nID0gdGhpcy5fZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGxpc3QncyBpdGVtIGZvY3VzZWQsIGNvbnRhaW5zIGl0ZW0ncyBwb3NpdGlvbiBpbmZvLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGl0ZW1Gb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIHJlYWRvbmx5IF9wcm9qZWN0ZWRGb2N1c2FibGVJdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2ZvY3VzYWJsZUl0ZW1zKCk6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcyA/IHRoaXMuX2l0ZW1zIDogdGhpcy5fcHJvamVjdGVkRm9jdXNhYmxlSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHJlYWRvbmx5IF9ncmlkSXRlbUZvY3VzZWQkID0gbmV3IFN1YmplY3Q8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgX2dyaWRMaXN0Rm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyByZWFkb25seSBfa2V5ZG93biQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0S2V5ZG93bkV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ncmlkUG9zaXRpb246IHsgcm93SW5kZXg6IG51bWJlcjsgdG90YWxSb3dzOiBudW1iZXIgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcj86IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEl0ZW1zJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpdmVBbm5vdW5jZXIgPSBpbmplY3QoTGl2ZUFubm91bmNlcik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c2FibGVPYnNlcnZlciA9IGluamVjdChGb2N1c2FibGVPYnNlcnZlcik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgeyB0aHJlc2hvbGQ6IDAuMjUgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc1Zpc2libGUpID0+ICh0aGlzLl9pc1Zpc2libGUgPSBpc1Zpc2libGVbMF0/LmlzSW50ZXJzZWN0aW5nKSk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlT2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYsIGZhbHNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRm9jdXNhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzYWJsZSAmJiBpc0ZvY3VzYWJsZSAhPT0gdGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2FibGUgPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlc1snd3JhcCddKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoV3JhcChjaGFuZ2VzWyd3cmFwJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWyduYXZpZ2F0aW9uRGlyZWN0aW9uJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25EaXJlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Pbkl0ZW1zKCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBpdGVtcyBwcm9ncmFtbWF0aWNhbGx5LiAqL1xuICAgIHNldEl0ZW1zKGl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbURpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbXMgPSBpdGVtcztcbiAgICAgICAgdGhpcy5fbGlzdGVuT25JdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25JdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVmcmVzaCQgPSBtZXJnZSh0aGlzLl9yZWZyZXNoJCwgdGhpcy5fZGVzdHJveSQpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5fZm9jdXNhYmxlSXRlbXMudG9BcnJheSgpKSxcbiAgICAgICAgICAgICAgICB0YXAoKGl0ZW1zOiBGb2N1c2FibGVJdGVtRGlyZWN0aXZlW10pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogKCkgPT4gaXRlbS5mZGtGb2N1c2FibGVJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlZjogaXRlbS5lbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM6ICgpID0+IGl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlkb3duOiBpdGVtLl9rZXlkb3duJFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5uYXZpZ2F0aW9uRGlyZWN0aW9uID09PSAnZ3JpZCcgPyAnaG9yaXpvbnRhbCcgOiB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb247XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUZvY3VzTWFuYWdlcihmb2N1c2FibGVJdGVtcywgdGhpcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudERpcmVjdGlvbjogdGhpcy5jb250ZW50RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JhcDogdGhpcy53cmFwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChyZWZyZXNoJClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIEFscmVhZHkgaGFuZGxlZFxuICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGb2N1c2VkID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0NoaWxkID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgTUFDX0VOVEVSLCBGMl0pICYmICFldmVudC5zaGlmdEtleSAmJiBpc0ZvY3VzZWQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzTGlzdCA9XG4gICAgICAgICAgICAoKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBGMikgJiYgZXZlbnQuc2hpZnRLZXkpIHx8IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBFU0NBUEUpKSAmJiAhaXNGb2N1c2VkO1xuXG4gICAgICAgIGlmIChzaG91bGRGb2N1c0NoaWxkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVJdGVtKDApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkRm9jdXNMaXN0KSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9rZXlkb3duJC5uZXh0KHsgbGlzdDogdGhpcywgZXZlbnQsIGFjdGl2ZUl0ZW1JbmRleDogdGhpcy5fa2V5TWFuYWdlcj8uYWN0aXZlSXRlbUluZGV4ID8/IG51bGwgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBhY3RpdmUgaXRlbSBpbiBsaXN0ICovXG4gICAgc2V0QWN0aXZlSXRlbShpbmRleDogbnVtYmVyLCBzY3JvbGxQb3NpdGlvbj86IFNjcm9sbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBhdmFpbGFibGVJbmRleDtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5maW5kKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPj0gaW5kZXggJiYgaXRlbS5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF2YWlsYWJsZUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmdldChhdmFpbGFibGVJbmRleCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShhdmFpbGFibGVJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRm9jdXMgd2hvbGUgbGlzdCAqL1xuICAgIGZvY3VzKHNjcm9sbFBvc2l0aW9uPzogU2Nyb2xsUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNjcm9sbFBvc2l0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldCB0YWJiYWJsZSBzdGF0ZSAqL1xuICAgIHNldFRhYmJhYmxlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmJhYmxlID0gc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgYXN5bmMgX29uRm9jdXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9ncmlkUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2dyaWRMaXN0Rm9jdXNlZCQubmV4dCh0aGlzLl9ncmlkUG9zaXRpb24pO1xuXG4gICAgICAgICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmNsZWFyKCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKHRoaXMubGlzdEZvY3VzZWRFdmVudEFubm91bmNlcih0aGlzLl9ncmlkUG9zaXRpb24pKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3VwZGF0ZU5hdmlnYXRpb25EaXJlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fa2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbkRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLmNvbnRlbnREaXJlY3Rpb24gfHwgJ2x0cicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0SXRlbXNUYWJiYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLnNldFRhYmJhYmxlKHN0YXRlKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0R3JpZFBvc2l0aW9uKHBvc2l0aW9uOiBGb2N1c2FibGVMaXN0UG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZFBvc2l0aW9uID0gcG9zaXRpb247XG5cbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLl9wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sczogdGhpcy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKFxuICAgICAgICBpdGVtczogRm9jdXNhYmxlSXRlbVtdLFxuICAgICAgICBsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLFxuICAgICAgICBjb25maWc6IEZvY3VzYWJsZUxpc3RDb25maWcgPSB7fVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZWZyZXNoSXRlbXMkLm5leHQoKTtcblxuICAgICAgICBsZXQga2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXI8YW55PihpdGVtcykud2l0aEhvbWVBbmRFbmQoKTtcblxuICAgICAgICBpZiAoY29uZmlnLndyYXAgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoV3JhcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAga2V5TWFuYWdlciA9IGtleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihjb25maWcuY29udGVudERpcmVjdGlvbiB8fCAnbHRyJyk7IC8vIHNob3VsZCBiZSByZXBsYWNlZFxuXG4gICAgICAgICAgICAvLyBWZXJ0aWNhbCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHNvIGxldCdzIGRpc2FibGUgaXQgaGVyZSBpbiBjb25zaXN0ZW5jeSBwdXJwb3Nlc1xuICAgICAgICAgICAga2V5TWFuYWdlciA9IGtleU1hbmFnZXIud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAga2V5TWFuYWdlci5za2lwUHJlZGljYXRlKChpdGVtKSA9PiAhKHR5cGVvZiBpdGVtLmZvY3VzYWJsZSA9PT0gJ2Jvb2xlYW4nID8gaXRlbS5mb2N1c2FibGUgOiBpdGVtLmZvY3VzYWJsZSgpKSk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IGtleU1hbmFnZXI7XG5cbiAgICAgICAgY29uc3QgZm9jdXNMaXN0ZW5lckRlc3Ryb3llcnMgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIubGlzdGVuKGdldE5hdGl2ZUVsZW1lbnQoaXRlbSksICdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVJdGVtID0gdGhpcy5fZm9jdXNhYmxlSXRlbXMuZ2V0KGluZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAoIWRpcmVjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ncmlkUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ3JpZEl0ZW1Gb2N1c2VkJC5uZXh0KGRpcmVjdGl2ZUl0ZW0uX3Bvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLm5leHQoeyBpbmRleDogaXRlbS5pbmRleCwgdG90YWw6IGl0ZW1zLmxlbmd0aCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChpKSA9PiBpLnNldFRhYmJhYmxlKGkgPT09IGRpcmVjdGl2ZUl0ZW0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGl0ZW0uaW5kZXgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBtZXJnZSguLi5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5ZG93bikpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFscmVhZHkgaGFuZGxlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwobWVyZ2UodGhpcy5fcmVmcmVzaEl0ZW1zJCwgdGhpcy5fZGVzdHJveSQpKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiBmb2N1c0xpc3RlbmVyRGVzdHJveWVycy5mb3JFYWNoKChkKSA9PiBkKCkpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXIocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgUm93OiAke3Bvc2l0aW9uLnJvd0luZGV4ICsgMX0gb2YgJHtwb3NpdGlvbi50b3RhbFJvd3N9LCB1c2UgRjIgYnV0dG9uIHRvIGRpdmUgaW4gYW5kIGZvY3VzIGxpc3QncyBpdGVtYDtcbiAgICB9XG59XG4iXX0=
@@ -40,12 +40,12 @@ export class SelectableItemDirective {
40
40
  (!this.readonly$ || !this.readonly$?.fdkReadonly));
41
41
  }
42
42
  /** @hidden */
43
- constructor(provider, disabled$, readonly$, selectionService, _elementRef, _cd, _clicked) {
43
+ constructor(provider, disabled$, readonly$, selectionService, elementRef, _cd, _clicked) {
44
44
  this.provider = provider;
45
45
  this.disabled$ = disabled$;
46
46
  this.readonly$ = readonly$;
47
47
  this.selectionService = selectionService;
48
- this._elementRef = _elementRef;
48
+ this.elementRef = elementRef;
49
49
  this._cd = _cd;
50
50
  /** Event emitted when selection state being changed for selectable item. */
51
51
  this.selected = new EventEmitter();
@@ -70,7 +70,7 @@ export class SelectableItemDirective {
70
70
  }
71
71
  else {
72
72
  this._selected = isSelected;
73
- const htmlElement = this._elementRef.nativeElement;
73
+ const htmlElement = this.elementRef.nativeElement;
74
74
  const { classList } = htmlElement;
75
75
  if (isSelected) {
76
76
  classList.add('is-selected');
@@ -83,10 +83,6 @@ export class SelectableItemDirective {
83
83
  this.selected.emit(isSelected);
84
84
  }
85
85
  /** @hidden */
86
- elementRef() {
87
- return this._elementRef;
88
- }
89
- /** @hidden */
90
86
  _listenToDisablingEvents() {
91
87
  const disablingEvents$ = [];
92
88
  if (this.disabled$) {
@@ -149,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
149
145
  }], selected: [{
150
146
  type: Output
151
147
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWxpc3Qvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBZ0I1RSxNQUFNLE9BQU8sdUJBQXVCO0lBR2hDLGNBQWM7SUFDZCxJQUNJLEtBQUssQ0FBQyxHQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUss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bUI7NEJBQzVCLFdBQVcseUJBQXlCO3lCQUN2Qzt3QkFDRCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNyQjtpQkFDSjs7MEJBc0RRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNEJBQTRCO3lPQWpEcEMsS0FBSztzQkFEUixLQUFLO2dCQWFGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFzQk4sT0FBTztzQkFETixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtVG9rZW4gfSBmcm9tICcuL3NlbGVjdGFibGUtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBGREtfU0VMRUNUQUJMRV9JVEVNX1BST1ZJREVSIH0gZnJvbSAnLi9zZWxlY3RhYmxlLWxpc3QudG9rZW5zJztcbmltcG9ydCB7IEZka0Rpc2FibGVkUHJvdmlkZXIgfSBmcm9tICcuLi9kaXNhYmxlZCc7XG5pbXBvcnQgeyBGZGtSZWFkb25seVByb3ZpZGVyIH0gZnJvbSAnLi4vcmVhZG9ubHknO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmRrQ2xpY2tlZFByb3ZpZGVyIH0gZnJvbSAnLi4vY2xpY2tlZCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1NlbGVjdGFibGVJdGVtXScsXG4gICAgZXhwb3J0QXM6ICdmZGtTZWxlY3RhYmxlSXRlbScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2VsZWN0YWJsZUl0ZW1Ub2tlbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZVxuICAgICAgICB9LFxuICAgICAgICBGZGtSZWFkb25seVByb3ZpZGVyLFxuICAgICAgICBGZGtEaXNhYmxlZFByb3ZpZGVyLFxuICAgICAgICBGZGtDbGlja2VkUHJvdmlkZXJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlPEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCA9IEhUTUxFbGVtZW50LCBWYWx1ZVR5cGUgPSBhbnk+XG4gICAgaW1wbGVtZW50cyBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+XG57XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWw6IFZhbHVlVHlwZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IFZhbHVlVHlwZSB7XG4gICAgICAgIGlmICh0aGlzLnByb3ZpZGVyICYmIHRoaXMucHJvdmlkZXIudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka1NlbGVjdGFibGVJdGVtKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0YWJsZSAhPT0gdGhpcy5fc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0YWJsZSA9IGlzU2VsZWN0YWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBmZGtTZWxlY3RhYmxlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IHNlbGVjdGFibGUgPSB0aGlzLl9zZWxlY3RhYmxlO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvdmlkZXI/LmZka1NlbGVjdGFibGVJdGVtICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgc2VsZWN0YWJsZSA9IHRoaXMucHJvdmlkZXIuZmRrU2VsZWN0YWJsZUl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHNlbGVjdGFibGUgJiZcbiAgICAgICAgICAgICghdGhpcy5kaXNhYmxlZCQgfHwgIXRoaXMuZGlzYWJsZWQkPy5mZGtEaXNhYmxlZCkgJiZcbiAgICAgICAgICAgICghdGhpcy5yZWFkb25seSQgfHwgIXRoaXMucmVhZG9ubHkkPy5mZGtSZWFkb25seSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsaWNrZWQ6IE9ic2VydmFibGU8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBzZWxlY3Rpb24gc3RhdGUgYmVpbmcgY2hhbmdlZCBmb3Igc2VsZWN0YWJsZSBpdGVtLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZSE6IFZhbHVlVHlwZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGVkID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUilcbiAgICAgICAgcHJpdmF0ZSBwcm92aWRlcjogUGFydGlhbDxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+PixcbiAgICAgICAgcHJpdmF0ZSBkaXNhYmxlZCQ6IEZka0Rpc2FibGVkUHJvdmlkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkkOiBGZGtSZWFkb25seVByb3ZpZGVyLFxuICAgICAgICBwcml2YXRlIHNlbGVjdGlvblNlcnZpY2U6IFNlbGVjdGlvblNlcnZpY2U8RWxlbWVudFR5cGUsIFZhbHVlVHlwZT4sXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudFR5cGU+LFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIF9jbGlja2VkOiBGZGtDbGlja2VkUHJvdmlkZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5jbGlja2VkID0gdGhpcy5wcm92aWRlcj8uY2xpY2tlZCB8fCBfY2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9EaXNhYmxpbmdFdmVudHMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5wcm92aWRlcj8uZ2V0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLmdldFNlbGVjdGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcm92aWRlcj8uc2V0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvdmlkZXIuc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGlzU2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NMaXN0IH0gPSBodG1sRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LmFkZCgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZSgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGAke2lzU2VsZWN0ZWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaXNTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8RWxlbWVudFR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0Rpc2FibGluZ0V2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlzYWJsaW5nRXZlbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPltdID0gW107XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJCkge1xuICAgICAgICAgICAgZGlzYWJsaW5nRXZlbnRzJC5wdXNoKHRoaXMuZGlzYWJsZWQkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSQpIHtcbiAgICAgICAgICAgIGRpc2FibGluZ0V2ZW50cyQucHVzaCh0aGlzLnJlYWRvbmx5JCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2UoLi4uZGlzYWJsaW5nRXZlbnRzJCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVNlbGVjdGlvbkFuZFNlbGVjdGFibGVXYXRjaGVyKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlU2VsZWN0aW9uQW5kU2VsZWN0YWJsZVdhdGNoZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJD8uZmRrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdEl0ZW0odGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0YWJsZVdhdGNoZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGFibGVXYXRjaGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2UubGlzdGVuVG9JdGVtSW50ZXJhY3Rpb25zKCk7XG4gICAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWxpc3Qvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBZ0I1RSxNQUFNLE9BQU8sdUJBQXVCO0lBR2hDLGNBQWM7SUFDZCxJQUNJLEtBQUssQ0FBQyxHQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUss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LGtCQUFrQjtxQkFDckI7aUJBQ0o7OzBCQXNEUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLDRCQUE0Qjt5T0FqRHBDLEtBQUs7c0JBRFIsS0FBSztnQkFhRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBc0JOLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlSXRlbVRva2VuIH0gZnJvbSAnLi9zZWxlY3RhYmxlLWl0ZW0udG9rZW4nO1xuaW1wb3J0IHsgRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUiB9IGZyb20gJy4vc2VsZWN0YWJsZS1saXN0LnRva2Vucyc7XG5pbXBvcnQgeyBGZGtEaXNhYmxlZFByb3ZpZGVyIH0gZnJvbSAnLi4vZGlzYWJsZWQnO1xuaW1wb3J0IHsgRmRrUmVhZG9ubHlQcm92aWRlciB9IGZyb20gJy4uL3JlYWRvbmx5JztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZka0NsaWNrZWRQcm92aWRlciB9IGZyb20gJy4uL2NsaWNrZWQnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtTZWxlY3RhYmxlSXRlbV0nLFxuICAgIGV4cG9ydEFzOiAnZmRrU2VsZWN0YWJsZUl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNlbGVjdGFibGVJdGVtVG9rZW4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAgRmRrUmVhZG9ubHlQcm92aWRlcixcbiAgICAgICAgRmRrRGlzYWJsZWRQcm92aWRlcixcbiAgICAgICAgRmRrQ2xpY2tlZFByb3ZpZGVyXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZTxFbGVtZW50VHlwZSBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudCwgVmFsdWVUeXBlID0gYW55PlxuICAgIGltcGxlbWVudHMgU2VsZWN0YWJsZUl0ZW1Ub2tlbjxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPlxue1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsOiBWYWx1ZVR5cGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWw7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBWYWx1ZVR5cGUge1xuICAgICAgICBpZiAodGhpcy5wcm92aWRlciAmJiB0aGlzLnByb3ZpZGVyLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmZGtTZWxlY3RhYmxlSXRlbSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGlmIChpc1NlbGVjdGFibGUgIT09IHRoaXMuX3NlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGFibGUgPSBpc1NlbGVjdGFibGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZmRrU2VsZWN0YWJsZUl0ZW0oKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBzZWxlY3RhYmxlID0gdGhpcy5fc2VsZWN0YWJsZTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3ZpZGVyPy5mZGtTZWxlY3RhYmxlSXRlbSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNlbGVjdGFibGUgPSB0aGlzLnByb3ZpZGVyLmZka1NlbGVjdGFibGVJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzZWxlY3RhYmxlICYmXG4gICAgICAgICAgICAoIXRoaXMuZGlzYWJsZWQkIHx8ICF0aGlzLmRpc2FibGVkJD8uZmRrRGlzYWJsZWQpICYmXG4gICAgICAgICAgICAoIXRoaXMucmVhZG9ubHkkIHx8ICF0aGlzLnJlYWRvbmx5JD8uZmRrUmVhZG9ubHkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbGlja2VkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50PjtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gc2VsZWN0aW9uIHN0YXRlIGJlaW5nIGNoYW5nZWQgZm9yIHNlbGVjdGFibGUgaXRlbS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmFsdWUhOiBWYWx1ZVR5cGU7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0YWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KEZES19TRUxFQ1RBQkxFX0lURU1fUFJPVklERVIpXG4gICAgICAgIHByaXZhdGUgcHJvdmlkZXI6IFBhcnRpYWw8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPj4sXG4gICAgICAgIHByaXZhdGUgZGlzYWJsZWQkOiBGZGtEaXNhYmxlZFByb3ZpZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5JDogRmRrUmVhZG9ubHlQcm92aWRlcixcbiAgICAgICAgcHJpdmF0ZSBzZWxlY3Rpb25TZXJ2aWNlOiBTZWxlY3Rpb25TZXJ2aWNlPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxFbGVtZW50VHlwZT4sXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgX2NsaWNrZWQ6IEZka0NsaWNrZWRQcm92aWRlclxuICAgICkge1xuICAgICAgICB0aGlzLmNsaWNrZWQgPSB0aGlzLnByb3ZpZGVyPy5jbGlja2VkIHx8IF9jbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Rpc2FibGluZ0V2ZW50cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnByb3ZpZGVyPy5nZXRTZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIuZ2V0U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRTZWxlY3RlZChpc1NlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByb3ZpZGVyPy5zZXRTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5wcm92aWRlci5zZXRTZWxlY3RlZChpc1NlbGVjdGVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gaXNTZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCB7IGNsYXNzTGlzdCB9ID0gaHRtbEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5hZGQoJ2lzLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoJ2lzLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBodG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHtpc1NlbGVjdGVkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGlzU2VsZWN0ZWQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9EaXNhYmxpbmdFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpc2FibGluZ0V2ZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCQpIHtcbiAgICAgICAgICAgIGRpc2FibGluZ0V2ZW50cyQucHVzaCh0aGlzLmRpc2FibGVkJCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkkKSB7XG4gICAgICAgICAgICBkaXNhYmxpbmdFdmVudHMkLnB1c2godGhpcy5yZWFkb25seSQpO1xuICAgICAgICB9XG4gICAgICAgIG1lcmdlKC4uLmRpc2FibGluZ0V2ZW50cyQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl91cGRhdGVTZWxlY3Rpb25BbmRTZWxlY3RhYmxlV2F0Y2hlcigpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGlvbkFuZFNlbGVjdGFibGVXYXRjaGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCQ/LmZka0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2UuZGVzZWxlY3RJdGVtKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGFibGVXYXRjaGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVTZWxlY3RhYmxlV2F0Y2hlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmxpc3RlblRvSXRlbUludGVyYWN0aW9ucygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export class SelectableItemToken {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3NlbGVjdGFibGUtbGlzdC9zZWxlY3RhYmxlLWl0ZW0udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFnQixtQkFBbUI7Q0FheEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9oYXMtZWxlbWVudC1yZWYuaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUgZXh0ZW5kcyBFbGVtZW50ID0gSFRNTEVsZW1lbnQsIFRWYWx1ZSA9IEVsZW1lbnRUeXBlPlxuICAgIGltcGxlbWVudHMgSGFzRWxlbWVudFJlZjxFbGVtZW50VHlwZT5cbntcbiAgICBhYnN0cmFjdCB2YWx1ZTogVFZhbHVlO1xuICAgIGFic3RyYWN0IGZka1NlbGVjdGFibGVJdGVtPzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxFbGVtZW50VHlwZT47XG5cbiAgICBhYnN0cmFjdCBzZXRTZWxlY3RlZChpc1NlbGVjdGVkOiBib29sZWFuKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGdldFNlbGVjdGVkKCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBjbGlja2VkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3NlbGVjdGFibGUtbGlzdC9zZWxlY3RhYmxlLWl0ZW0udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFnQixtQkFBbUI7Q0FheEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9oYXMtZWxlbWVudC1yZWYuaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUgZXh0ZW5kcyBFbGVtZW50ID0gSFRNTEVsZW1lbnQsIFRWYWx1ZSA9IEVsZW1lbnRUeXBlPlxuICAgIGltcGxlbWVudHMgSGFzRWxlbWVudFJlZjxFbGVtZW50VHlwZT5cbntcbiAgICBhYnN0cmFjdCB2YWx1ZTogVFZhbHVlO1xuICAgIGFic3RyYWN0IGZka1NlbGVjdGFibGVJdGVtPzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudFR5cGU+O1xuXG4gICAgYWJzdHJhY3Qgc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBnZXRTZWxlY3RlZCgpOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgY2xpY2tlZDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD47XG59XG4iXX0=