@coolon/angular-ui-powerups 16.1.0-aplpha.146 → 16.1.0-aplpha.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, HostBinding, Input, Optional, ViewChild } from "@angular/core";
2
+ import { Component, HostBinding, Input, ViewChild } from "@angular/core";
3
3
  import { Command, proxify, Proxify } from '@coolon/pectin';
4
4
  import { Enum } from 'typescript-string-enums';
5
5
  import { CommandFace } from '../../../components/commands/command-face';
@@ -7,9 +7,8 @@ import { CommandComponent } from "../../../components/commands/command/command.c
7
7
  import { DisposableComponent } from '../../../components/disposable-component';
8
8
  import { ActivityContext } from "../../activity-context";
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "../../activity-context";
11
- import * as i2 from "@angular/common";
12
- import * as i3 from "../../../components/commands/command/command.component";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "../../../components/commands/command/command.component";
13
12
  /**
14
13
  * @example
15
14
  * <aup-activity-actions [confirmFace]="saveFace" [cancelFace]="cancelFace">
@@ -32,7 +31,6 @@ import * as i3 from "../../../components/commands/command/command.component";
32
31
  * </aup-activity-actions>
33
32
  */
34
33
  export class ActivityActionsComponent extends DisposableComponent {
35
- activityContext;
36
34
  confirmCommandComponent;
37
35
  cancelCommandComponent;
38
36
  #confirmCommand_accessor_storage = proxify((Command));
@@ -62,13 +60,14 @@ export class ActivityActionsComponent extends DisposableComponent {
62
60
  layout = ActivityActionsComponent.Layout.BLOCK;
63
61
  align = ActivityActionsComponent.Align.STRETCH;
64
62
  alignContent = ActivityActionsComponent.AlignContent.CENTER;
65
- constructor(activityContext) {
63
+ activityContext = this.inject(ActivityContext, {
64
+ optional: true
65
+ });
66
+ constructor() {
66
67
  super();
67
- this.activityContext = activityContext;
68
- console.log(activityContext);
69
- if (activityContext) {
70
- this.confirmCommand = activityContext.confirmCommand;
71
- this.cancelCommand = activityContext.cancelCommand;
68
+ if (this.activityContext) {
69
+ this.confirmCommand = this.activityContext.confirmCommand;
70
+ this.cancelCommand = this.activityContext.cancelCommand;
72
71
  }
73
72
  }
74
73
  hasConfirmFace() {
@@ -83,8 +82,8 @@ export class ActivityActionsComponent extends DisposableComponent {
83
82
  focusCancel() {
84
83
  this.cancelCommandComponent.requestFocus();
85
84
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [{ token: i1.ActivityContext, optional: true }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align", alignContent: "alignContent" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align", "attr.align-content": "this.alignContent" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align", alignContent: "alignContent" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align", "attr.align-content": "this.alignContent" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
88
87
  }
89
88
  __decorate([
90
89
  Proxify(),
@@ -97,9 +96,7 @@ __decorate([
97
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
98
97
  type: Component,
99
98
  args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"] }]
100
- }], ctorParameters: function () { return [{ type: i1.ActivityContext, decorators: [{
101
- type: Optional
102
- }] }]; }, propDecorators: { confirmCommandComponent: [{
99
+ }], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
103
100
  type: ViewChild,
104
101
  args: ["confirmCommandComponent"]
105
102
  }], cancelCommandComponent: [{
@@ -149,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
149
146
  END: 'end'
150
147
  });
151
148
  })(ActivityActionsComponent || (ActivityActionsComponent = {}));
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN4RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBRXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQU1ILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFxRHBCO0lBbERqQyx1QkFBdUIsQ0FBa0I7SUFHekMsc0JBQXNCLENBQWtCO0lBTXpDLG1DQUFpQixPQUFPLENBQUMsQ0FBQSxPQUFZLENBQUEsQ0FBQyxDQUFDO0lBSmhEOztPQUVH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LEVBQUUsUUFBUTtRQUNoQixHQUFHLEVBQUUsS0FBSztLQUNYLENBQUMsQ0FBQztBQVFMLENBQUMsRUEzQmdCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUEyQnhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbWFuZCwgcHJveGlmeSwgUHJveGlmeX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2NvbmZpcm1GYWNlXT1cInNhdmVGYWNlXCIgW2NhbmNlbEZhY2VdPVwiY2FuY2VsRmFjZVwiPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAgPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtmYWNlc109XCJ7Y29uZmlybTogc2F2ZUZhY2UsIGNhbmNlbDogY2FuY2VsRmFjZX1cIj5cbiAqICA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqIC8vIFJ1bm5pbmcgYG5nIGcgQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzOmF1cC1pMThuYCB3aWxsIGluc3RhbGwgZGVmYXVsdFxuICogLy8gc3R5bGUgZGVmaW5pdGlvbnNcbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbZmFjZXNdPVwiSTE4bi5hdXAuY29tcG9uZW50cy5hY3Rpdml0eUFjdGlvbnMuc3R5bGVzLm9rQ2FuY2VsSWNvbnNcIj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogLy8geW91IGNhbiBhbHNvIGFkZCBhZGRpdGlvbmFsIGNvbnRlbnQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBhbG9uZyB3aXRoIHRoZSBidXR0b25zLlxuICogLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGRlcGVuZHMgb24gdGhlIGFsaWdubWVudCBhdHRyaWJ1dGUuXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnNcbiAqICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICogICAgIFtmYWNlc109XCJJMThuLmF1cC5jb21wb25lbnRzLmFjdGl2aXR5QWN0aW9ucy5zdHlsZXMub2tDYW5jZWxJY29uc1wiPlxuICogICAgIDxzcGFuPlRoaXMgY29udGVudCB3aWxsIGJlIGJldHdlZW4gdGhlIHR3byBjb21tYW5kczwvc3Bhbj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChcImNvbmZpcm1Db21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjb25maXJtQ29tbWFuZENvbXBvbmVudDogQ29tbWFuZENvbXBvbmVudFxuXG4gIEBWaWV3Q2hpbGQoXCJjYW5jZWxDb21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjYW5jZWxDb21tYW5kQ29tcG9uZW50OiBDb21tYW5kQ29tcG9uZW50XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGFjdGl2aXR5IGFjdGlvbnMgbm93IHVzZSB0aGUgY29uZmlybSBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbmZpcm1Db21tYW5kID0gcHJveGlmeShDb21tYW5kPGFueT4pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBhY3Rpdml0eSBhY3Rpb25zIG5vdyB1c2UgdGhlIGNhbmNlbCBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNhbmNlbENvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgQElucHV0KClcbiAgc2V0IGZhY2VzKGZhY2VzOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuU3R5bGUpIHtcbiAgICB0aGlzLmNvbmZpcm1GYWNlID0gZmFjZXMuY29uZmlybTtcbiAgICB0aGlzLmNhbmNlbEZhY2UgPSBmYWNlcy5jYW5jZWw7XG4gIH1cblxuICBASW5wdXQoKVxuICBjb25maXJtRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjZmFjZXMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdHlsZShzdHlsZTogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5mYWNlcyA9IHN0eWxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmxheW91dCcpXG4gIGxheW91dDogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkxheW91dCA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQuQkxPQ0s7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFsaWduJylcbiAgYWxpZ246IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbiA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbi5TVFJFVENIO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbi1jb250ZW50JylcbiAgYWxpZ25Db250ZW50OiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ25Db250ZW50ID0gQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkFsaWduQ29udGVudC5DRU5URVI7XG5cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZpdHlDb250ZXh0OiBBY3Rpdml0eUNvbnRleHQpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnNvbGUubG9nKGFjdGl2aXR5Q29udGV4dCk7XG4gICAgaWYgKGFjdGl2aXR5Q29udGV4dCkge1xuICAgICAgdGhpcy5jb25maXJtQ29tbWFuZCA9IGFjdGl2aXR5Q29udGV4dC5jb25maXJtQ29tbWFuZDtcbiAgICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IGFjdGl2aXR5Q29udGV4dC5jYW5jZWxDb21tYW5kO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NvbmZpcm1GYWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlybUZhY2U7XG4gIH1cblxuICBoYXNDYW5jZWxGYWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMuY2FuY2VsRmFjZTtcbiAgfVxuXG4gIGZvY3VzQ29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG5cbiAgZm9jdXNDYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IHtcblxuICBleHBvcnQgY29uc3QgTGF5b3V0ID0gRW51bSh7XG4gICAgSU5MSU5FOiAnaW5saW5lJyxcbiAgICBCTE9DSzogJ2Jsb2NrJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgTGF5b3V0ID0gRW51bTx0eXBlb2YgTGF5b3V0PjtcblxuICBleHBvcnQgY29uc3QgQWxpZ24gPSBFbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBTVFJFVENIOiAnc3RyZXRjaCcsXG4gICAgRU5EOiAnZW5kJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgQWxpZ24gPSBFbnVtPHR5cGVvZiBBbGlnbj47XG5cbiAgZXhwb3J0IGNvbnN0IEFsaWduQ29udGVudCA9IEVudW0oe1xuICAgIFNUQVJUOiAnc3RhcnQnLFxuICAgIENFTlRFUjogJ2NlbnRlcicsXG4gICAgRU5EOiAnZW5kJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgQWxpZ25Db250ZW50ID0gRW51bTx0eXBlb2YgQWxpZ25Db250ZW50PjtcblxuICBleHBvcnQgaW50ZXJmYWNlIFN0eWxlIHtcbiAgICBjb25maXJtOiBDb21tYW5kRmFjZTtcbiAgICBjYW5jZWw6IENvbW1hbmRGYWNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0NhbmNlbEZhY2UoKVwiPlxuICA8YXVwLWNvbW1hbmQgI2NhbmNlbENvbW1hbmRDb21wb25lbnQgY2xhc3M9XCJjYW5jZWxcIiBbY29tbWFuZF09XCJjYW5jZWxDb21tYW5kXCIgW2ZhY2VdPVwiY2FuY2VsRmFjZVwiIGRhdGEtY3k9XCJjYW5jZWwtY29tbWFuZFwiPjwvYXVwLWNvbW1hbmQ+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDb25maXJtRmFjZSgpXCI+XG4gIDxhdXAtY29tbWFuZCAjY29uZmlybUNvbW1hbmRDb21wb25lbnQgY2xhc3M9XCJjb25maXJtXCIgW2NvbW1hbmRdPVwiY29uZmlybUNvbW1hbmRcIiBbZmFjZV09XCJjb25maXJtRmFjZVwiIGRhdGEtY3k9XCJjb25maXJtLWNvbW1hbmRcIj48L2F1cC1jb21tYW5kPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUV2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBR3JELHVCQUF1QixDQUFrQjtJQUd6QyxzQkFBc0IsQ0FBa0I7SUFNekMsbUNBQWlCLE9BQU8sQ0FBQyxDQUFBLE9BQVksQ0FBQSxDQUFDLENBQUM7SUFKaEQ7O09BRUc7SUFFTSxJQUFBLGNBQWMsb0RBQXlCO0lBQXZDLElBQUEsY0FBYywwREFBeUI7SUFNdkMsa0NBQWdCLE9BQU8sQ0FBQyxDQUFBLE9BQVksQ0FBQSxDQUFDLENBQUM7SUFKL0M7O09BRUc7SUFFTSxJQUFBLGFBQWEsbURBQXlCO0lBQXRDLElBQUEsYUFBYSx5REFBeUI7SUFFL0MsSUFDSSxLQUFLLENBQUMsS0FBcUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBR0QsV0FBVyxDQUFjO0lBR3pCLFVBQVUsQ0FBYztJQUV4Qjs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQXFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFJRCxNQUFNLEdBQW9DLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFJaEYsS0FBSyxHQUFtQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBSS9FLFlBQVksR0FBMEMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUVoRixlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7UUFDaEUsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDLENBQUM7SUFHSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQzt1R0EvRVUsd0JBQXdCOzJGQUF4Qix3QkFBd0IsNnFCQ25DckMsc2VBU0E7O0FEc0NXO0lBREMsT0FBTyxFQUFFOzs4REFDNkI7QUFNdkM7SUFEQyxPQUFPLEVBQUU7OzZEQUM0QjsyRkFsQnBDLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7MEVBT3RCLHVCQUF1QjtzQkFEaEMsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBSTFCLHNCQUFzQjtzQkFEL0IsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBTzFCLGNBQWM7c0JBRHRCLEtBQUs7Z0JBT0csYUFBYTtzQkFEckIsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBT04sTUFBTTtzQkFGTCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGFBQWE7Z0JBSzFCLEtBQUs7c0JBRkosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxZQUFZO2dCQUt6QixZQUFZO3NCQUZYLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsb0JBQW9COztBQWlDbkMsV0FBaUIsd0JBQXdCO0lBRTFCLCtCQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEtBQUssRUFBRSxPQUFPO0tBQ2YsQ0FBQyxDQUFDO0lBR1UsOEJBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixHQUFHLEVBQUUsS0FBSztLQUNYLENBQUMsQ0FBQztJQUdVLHFDQUFZLEdBQUcsSUFBSSxDQUFDO1FBQy9CLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLEtBQUs7S0FDWCxDQUFDLENBQUM7QUFRTCxDQUFDLEVBM0JnQix3QkFBd0IsS0FBeEIsd0JBQXdCLFFBMkJ4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbWFuZCwgcHJveGlmeSwgUHJveGlmeX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2NvbmZpcm1GYWNlXT1cInNhdmVGYWNlXCIgW2NhbmNlbEZhY2VdPVwiY2FuY2VsRmFjZVwiPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAgPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtmYWNlc109XCJ7Y29uZmlybTogc2F2ZUZhY2UsIGNhbmNlbDogY2FuY2VsRmFjZX1cIj5cbiAqICA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqIC8vIFJ1bm5pbmcgYG5nIGcgQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzOmF1cC1pMThuYCB3aWxsIGluc3RhbGwgZGVmYXVsdFxuICogLy8gc3R5bGUgZGVmaW5pdGlvbnNcbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbZmFjZXNdPVwiSTE4bi5hdXAuY29tcG9uZW50cy5hY3Rpdml0eUFjdGlvbnMuc3R5bGVzLm9rQ2FuY2VsSWNvbnNcIj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogLy8geW91IGNhbiBhbHNvIGFkZCBhZGRpdGlvbmFsIGNvbnRlbnQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBhbG9uZyB3aXRoIHRoZSBidXR0b25zLlxuICogLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGRlcGVuZHMgb24gdGhlIGFsaWdubWVudCBhdHRyaWJ1dGUuXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnNcbiAqICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICogICAgIFtmYWNlc109XCJJMThuLmF1cC5jb21wb25lbnRzLmFjdGl2aXR5QWN0aW9ucy5zdHlsZXMub2tDYW5jZWxJY29uc1wiPlxuICogICAgIDxzcGFuPlRoaXMgY29udGVudCB3aWxsIGJlIGJldHdlZW4gdGhlIHR3byBjb21tYW5kczwvc3Bhbj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChcImNvbmZpcm1Db21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjb25maXJtQ29tbWFuZENvbXBvbmVudDogQ29tbWFuZENvbXBvbmVudFxuXG4gIEBWaWV3Q2hpbGQoXCJjYW5jZWxDb21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjYW5jZWxDb21tYW5kQ29tcG9uZW50OiBDb21tYW5kQ29tcG9uZW50XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGFjdGl2aXR5IGFjdGlvbnMgbm93IHVzZSB0aGUgY29uZmlybSBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbmZpcm1Db21tYW5kID0gcHJveGlmeShDb21tYW5kPGFueT4pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBhY3Rpdml0eSBhY3Rpb25zIG5vdyB1c2UgdGhlIGNhbmNlbCBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNhbmNlbENvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgQElucHV0KClcbiAgc2V0IGZhY2VzKGZhY2VzOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuU3R5bGUpIHtcbiAgICB0aGlzLmNvbmZpcm1GYWNlID0gZmFjZXMuY29uZmlybTtcbiAgICB0aGlzLmNhbmNlbEZhY2UgPSBmYWNlcy5jYW5jZWw7XG4gIH1cblxuICBASW5wdXQoKVxuICBjb25maXJtRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjZmFjZXMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdHlsZShzdHlsZTogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5mYWNlcyA9IHN0eWxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmxheW91dCcpXG4gIGxheW91dDogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkxheW91dCA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQuQkxPQ0s7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFsaWduJylcbiAgYWxpZ246IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbiA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbi5TVFJFVENIO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbi1jb250ZW50JylcbiAgYWxpZ25Db250ZW50OiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ25Db250ZW50ID0gQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkFsaWduQ29udGVudC5DRU5URVI7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGl2aXR5Q29udGV4dCA9IHRoaXMuaW5qZWN0KEFjdGl2aXR5Q29udGV4dCwge1xuICAgIG9wdGlvbmFsOiB0cnVlXG4gIH0pO1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29uZmlybUNvbW1hbmQgPSB0aGlzLmFjdGl2aXR5Q29udGV4dC5jb25maXJtQ29tbWFuZDtcbiAgICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IHRoaXMuYWN0aXZpdHlDb250ZXh0LmNhbmNlbENvbW1hbmQ7XG4gICAgfVxuICB9XG5cbiAgaGFzQ29uZmlybUZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jb25maXJtRmFjZTtcbiAgfVxuXG4gIGhhc0NhbmNlbEZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jYW5jZWxGYWNlO1xuICB9XG5cbiAgZm9jdXNDb25maXJtKCkge1xuICAgIHRoaXMuY29uZmlybUNvbW1hbmRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0NhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbENvbW1hbmRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQge1xuXG4gIGV4cG9ydCBjb25zdCBMYXlvdXQgPSBFbnVtKHtcbiAgICBJTkxJTkU6ICdpbmxpbmUnLFxuICAgIEJMT0NLOiAnYmxvY2snXG4gIH0pO1xuICBleHBvcnQgdHlwZSBMYXlvdXQgPSBFbnVtPHR5cGVvZiBMYXlvdXQ+O1xuXG4gIGV4cG9ydCBjb25zdCBBbGlnbiA9IEVudW0oe1xuICAgIFNUQVJUOiAnc3RhcnQnLFxuICAgIFNUUkVUQ0g6ICdzdHJldGNoJyxcbiAgICBFTkQ6ICdlbmQnXG4gIH0pO1xuICBleHBvcnQgdHlwZSBBbGlnbiA9IEVudW08dHlwZW9mIEFsaWduPjtcblxuICBleHBvcnQgY29uc3QgQWxpZ25Db250ZW50ID0gRW51bSh7XG4gICAgU1RBUlQ6ICdzdGFydCcsXG4gICAgQ0VOVEVSOiAnY2VudGVyJyxcbiAgICBFTkQ6ICdlbmQnXG4gIH0pO1xuICBleHBvcnQgdHlwZSBBbGlnbkNvbnRlbnQgPSBFbnVtPHR5cGVvZiBBbGlnbkNvbnRlbnQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgU3R5bGUge1xuICAgIGNvbmZpcm06IENvbW1hbmRGYWNlO1xuICAgIGNhbmNlbDogQ29tbWFuZEZhY2U7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2FuY2VsRmFjZSgpXCI+XG4gIDxhdXAtY29tbWFuZCAjY2FuY2VsQ29tbWFuZENvbXBvbmVudCBjbGFzcz1cImNhbmNlbFwiIFtjb21tYW5kXT1cImNhbmNlbENvbW1hbmRcIiBbZmFjZV09XCJjYW5jZWxGYWNlXCIgZGF0YS1jeT1cImNhbmNlbC1jb21tYW5kXCI+PC9hdXAtY29tbWFuZD5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0NvbmZpcm1GYWNlKClcIj5cbiAgPGF1cC1jb21tYW5kICNjb25maXJtQ29tbWFuZENvbXBvbmVudCBjbGFzcz1cImNvbmZpcm1cIiBbY29tbWFuZF09XCJjb25maXJtQ29tbWFuZFwiIFtmYWNlXT1cImNvbmZpcm1GYWNlXCIgZGF0YS1jeT1cImNvbmZpcm0tY29tbWFuZFwiPjwvYXVwLWNvbW1hbmQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -27,7 +27,7 @@ class ActivityContextImpl extends ActivityContext {
27
27
  return this.activityContainer;
28
28
  }
29
29
  getInteractionContext() {
30
- return this.interactionContext;
30
+ return this.activityContainer;
31
31
  }
32
32
  onActivityReady(callback) {
33
33
  if (this.activity) {
@@ -67,12 +67,12 @@ export class ActivityOutletComponent {
67
67
  }
68
68
  loadActivity(activityRef) {
69
69
  this.viewContainerRef.clear();
70
- const activityContext = new ActivityContextImpl(this.interactionContext);
70
+ const activityContext = new ActivityContextImpl(this.nestedInteractionContext);
71
71
  const injector = Injector.create({
72
72
  providers: [
73
73
  { provide: ACTIVITY_DATA, useValue: activityRef.activityData },
74
74
  { provide: ActivityContext, useValue: activityContext },
75
- { provide: INTERACTION_CONTEXT, useValue: this.interactionContext },
75
+ { provide: INTERACTION_CONTEXT, useValue: this.nestedInteractionContext },
76
76
  { provide: InteractionContextProvider, useValue: activityContext },
77
77
  ],
78
78
  parent: this.injector
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
98
98
  }], activityRef: [{
99
99
  type: Input
100
100
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWdCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRCxPQUFPLEVBQVcsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDckYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7O0FBR2pGLE1BQU0sbUJBQW9CLFNBQVEsZUFBZTtJQVMzQjtJQVBaLGNBQWMsR0FBa0QsRUFBRSxDQUFDO0lBRWxFLGNBQWMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7SUFDeEMsYUFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtJQUV4QyxRQUFRLENBQXFCO0lBRXJDLFlBQW9CLGlCQUFxQztRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7SUFFekQsQ0FBQztJQUVELElBQUksQ0FBQyxRQUE0QjtR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QUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7dUdBN0NVLHVCQUF1QixrQkFzQmQsbUJBQW1COzJGQXRCNUIsdUJBQXVCLHlKQUh4QixFQUFFOzsyRkFHRCx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCLEVBQUU7OzBCQXlCQyxNQUFNOzJCQUFDLG1CQUFtQjtrR0FqQnZDLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFNRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RlbGVnYXRpbmdDb21tYW5kfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7bGFuZ30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQge0FjdGl2aXR5LCBBQ1RJVklUWV9EQVRBfSBmcm9tICcuLi8uLi8uLi9hY3Rpdml0eSc7XG5pbXBvcnQge0FjdGl2aXR5Q29udGV4dH0gZnJvbSBcIi4uLy4uLy4uL2FjdGl2aXR5LWNvbnRleHRcIjtcbmltcG9ydCB7QWN0aXZpdHlSZWZ9IGZyb20gJy4uLy4uLy4uL2FjdGl2aXR5LXJlZic7XG5pbXBvcnQge0lOVEVSQUNUSU9OX0NPTlRFWFQsIEludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dFByb3ZpZGVyfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dC1wcm92aWRlclwiO1xuXG5cbmNsYXNzIEFjdGl2aXR5Q29udGV4dEltcGwgZXh0ZW5kcyBBY3Rpdml0eUNvbnRleHQge1xuXG4gIHByaXZhdGUgcmVhZHlMaXN0ZW5lcnM6IEFycmF5PChhY3Rpdml0eTogQWN0aXZpdHk8YW55LCBhbnk+KSA9PiB2b2lkPiA9IFtdO1xuXG4gIHJlYWRvbmx5IGNvbmZpcm1Db21tYW5kID0gbmV3IERlbGVnYXRpbmdDb21tYW5kKClcbiAgcmVhZG9ubHkgY2FuY2VsQ29tbWFuZCA9IG5ldyBEZWxlZ2F0aW5nQ29tbWFuZCgpXG5cbiAgcHJpdmF0ZSBhY3Rpdml0eTogQWN0aXZpdHk8YW55LCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZpdHlDb250YWluZXI6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBpbml0KGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT4pIHtcbiAgICB0aGlzLmFjdGl2aXR5ID0gYWN0aXZpdHk7XG4gICAgdGhpcy5jb25maXJtQ29tbWFuZC5zZXREZWxlZ2F0ZShhY3Rpdml0eS5jb25maXJtQ29tbWFuZCk7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kLnNldERlbGVnYXRlKGFjdGl2aXR5LmNhbmNlbENvbW1hbmQpO1xuICAgIHRoaXMucmVhZHlMaXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IGxpc3RlbmVyKHRoaXMuYWN0aXZpdHkpKTtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eUNvbnRhaW5lcjtcbiAgfVxuXG4gIGdldEludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmludGVyYWN0aW9uQ29udGV4dDtcbiAgfVxuXG4gIG9uQWN0aXZpdHlSZWFkeShjYWxsYmFjazogKGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eSkge1xuICAgICAgdGhpcy5hY3Rpdml0eS5vbkFjdGl2aXR5UmVhZHkoY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWR5TGlzdGVuZXJzLnB1c2goY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qKlxuICogQWN0aXZpdHlPdXRsZXRDb21wb25lbnQgY3JlYXRlcyBhbmQgZGlzcGxheXMgYW4gYWN0aXZpdHkgYW5kIGRlbGVnYXRlcyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBmdW5jdGlvbmFsaXR5IHRvIGFuXG4gKiBleHRlcm5hbCBzZXJ2aWNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYWN0aXZpdHktb3V0bGV0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eU91dGxldENvbXBvbmVudDxELCBSLCBFPiB7XG5cbiAgcHJpdmF0ZSBhY3Rpdml0eUNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEFjdGl2aXR5PEQsIFIsIEU+PjtcblxuICBASW5wdXQoKVxuICBuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBwcml2YXRlIF9hY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT47XG5cbiAgQElucHV0KClcbiAgc2V0IGFjdGl2aXR5UmVmKGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxELCBSLCBFPikge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5UmVmICYmICF0aGlzLmFjdGl2aXR5UmVmLmlzQ29tcGxldGUoKSkge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoJ2NoYW5naW5nIGFjdGl2aXR5IGJlZm9yZSBwcmV2aW91cyBvbmUgaGFzIGNvbXBsZXRlZCcpO1xuICAgIH1cbiAgICB0aGlzLl9hY3Rpdml0eVJlZiA9IGFjdGl2aXR5UmVmO1xuICAgIHRoaXMubG9hZEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcbiAgfTtcblxuICBnZXQgYWN0aXZpdHlSZWYoKTogQWN0aXZpdHlSZWY8RCwgUiwgRT4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eVJlZjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoSU5URVJBQ1RJT05fQ09OVEVYVCkgcHJpdmF0ZSBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgbG9hZEFjdGl2aXR5KGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxELCBSLCBFPikge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGNvbnN0IGFjdGl2aXR5Q29udGV4dCA9IG5ldyBBY3Rpdml0eUNvbnRleHRJbXBsKHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IEFDVElWSVRZX0RBVEEsIHVzZVZhbHVlOiBhY3Rpdml0eVJlZi5hY3Rpdml0eURhdGF9LFxuICAgICAgICB7cHJvdmlkZTogQWN0aXZpdHlDb250ZXh0LCB1c2VWYWx1ZTogYWN0aXZpdHlDb250ZXh0fSxcbiAgICAgICAge3Byb3ZpZGU6IElOVEVSQUNUSU9OX0NPTlRFWFQsIHVzZVZhbHVlOiB0aGlzLmludGVyYWN0aW9uQ29udGV4dH0sXG4gICAgICAgIHtwcm92aWRlOiBJbnRlcmFjdGlvbkNvbnRleHRQcm92aWRlciwgdXNlVmFsdWU6IGFjdGl2aXR5Q29udGV4dH0sXG4gICAgICBdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yXG4gICAgfSk7XG5cbiAgICB0aGlzLmFjdGl2aXR5Q29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChhY3Rpdml0eVJlZi5hY3Rpdml0eUNsYXNzLCB7aW5kZXg6IDAsIGluamVjdG9yfSk7XG4gICAgYWN0aXZpdHlDb250ZXh0LmluaXQodGhpcy5hY3Rpdml0eUNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XG4gICAgdGhpcy5hY3Rpdml0eVJlZi5ub3RpZnlBY3Rpdml0eUNyZWF0ZWQodGhpcy5hY3Rpdml0eUNvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5uZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQpO1xuICB9XG5cbiAgZ2V0IGNvbXBvbmVudCgpOiBBY3Rpdml0eTxELCBSLCBFPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIH1cblxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWdCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRCxPQUFPLEVBQVcsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDckYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7O0FBR2pGLE1BQU0sbUJBQW9CLFNBQVEsZUFBZTtJQVNsQjtJQVByQixjQUFjLEdBQWtELEVBQUUsQ0FBQztJQUVsRSxjQUFjLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFBO0lBQ3hDLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7SUFFeEMsUUFBUSxDQUFxQjtJQUVyQyxZQUE2QixpQkFBcUM7UUFDaEUsS0FBSyxFQUFFLENBQUM7UUFEbUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtJQUVsRSxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQTRC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Q0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7SUFDNUMsQ0FBQzt1R0E3Q1UsdUJBQXVCLGtCQXNCZCxtQkFBbUI7MkZBdEI1Qix1QkFBdUIseUpBSHhCLEVBQUU7OzJGQUdELHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckIsRUFBRTs7MEJBeUJDLE1BQU07MkJBQUMsbUJBQW1CO2tHQWpCdkMsd0JBQXdCO3NCQUR2QixLQUFLO2dCQU1GLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGVsZWdhdGluZ0NvbW1hbmR9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtsYW5nfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7QWN0aXZpdHksIEFDVElWSVRZX0RBVEF9IGZyb20gJy4uLy4uLy4uL2FjdGl2aXR5JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuaW1wb3J0IHtBY3Rpdml0eVJlZn0gZnJvbSAnLi4vLi4vLi4vYWN0aXZpdHktcmVmJztcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVCwgSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tICcuLi8uLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXJ9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0LXByb3ZpZGVyXCI7XG5cblxuY2xhc3MgQWN0aXZpdHlDb250ZXh0SW1wbCBleHRlbmRzIEFjdGl2aXR5Q29udGV4dCB7XG5cbiAgcHJpdmF0ZSByZWFkeUxpc3RlbmVyczogQXJyYXk8KGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT4pID0+IHZvaWQ+ID0gW107XG5cbiAgcmVhZG9ubHkgY29uZmlybUNvbW1hbmQgPSBuZXcgRGVsZWdhdGluZ0NvbW1hbmQoKVxuICByZWFkb25seSBjYW5jZWxDb21tYW5kID0gbmV3IERlbGVnYXRpbmdDb21tYW5kKClcblxuICBwcml2YXRlIGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eUNvbnRhaW5lcjogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGluaXQoYWN0aXZpdHk6IEFjdGl2aXR5PGFueSwgYW55Pikge1xuICAgIHRoaXMuYWN0aXZpdHkgPSBhY3Rpdml0eTtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kLnNldERlbGVnYXRlKGFjdGl2aXR5LmNvbmZpcm1Db21tYW5kKTtcbiAgICB0aGlzLmNhbmNlbENvbW1hbmQuc2V0RGVsZWdhdGUoYWN0aXZpdHkuY2FuY2VsQ29tbWFuZCk7XG4gICAgdGhpcy5yZWFkeUxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIodGhpcy5hY3Rpdml0eSkpO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyO1xuICB9XG5cbiAgZ2V0SW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXI7XG4gIH1cblxuICBvbkFjdGl2aXR5UmVhZHkoY2FsbGJhY2s6IChhY3Rpdml0eTogQWN0aXZpdHk8YW55LCBhbnk+KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHkpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHkub25BY3Rpdml0eVJlYWR5KGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWFkeUxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50IGNyZWF0ZXMgYW5kIGRpc3BsYXlzIGFuIGFjdGl2aXR5IGFuZCBkZWxlZ2F0ZXMgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgZnVuY3Rpb25hbGl0eSB0byBhblxuICogZXh0ZXJuYWwgc2VydmljZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWFjdGl2aXR5LW91dGxldCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlPdXRsZXRDb21wb25lbnQ8RCwgUiwgRT4ge1xuXG4gIHByaXZhdGUgYWN0aXZpdHlDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxBY3Rpdml0eTxELCBSLCBFPj47XG5cbiAgQElucHV0KClcbiAgbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG5cbiAgcHJpdmF0ZSBfYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPEQsIFIsIEU+O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhY3Rpdml0eVJlZihhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVJlZiAmJiAhdGhpcy5hY3Rpdml0eVJlZi5pc0NvbXBsZXRlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKCdjaGFuZ2luZyBhY3Rpdml0eSBiZWZvcmUgcHJldmlvdXMgb25lIGhhcyBjb21wbGV0ZWQnKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZpdHlSZWYgPSBhY3Rpdml0eVJlZjtcbiAgICB0aGlzLmxvYWRBY3Rpdml0eShhY3Rpdml0eVJlZik7XG4gIH07XG5cbiAgZ2V0IGFjdGl2aXR5UmVmKCk6IEFjdGl2aXR5UmVmPEQsIFIsIEU+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHlSZWY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KElOVEVSQUNUSU9OX0NPTlRFWFQpIHByaXZhdGUgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGxvYWRBY3Rpdml0eShhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBhY3Rpdml0eUNvbnRleHQgPSBuZXcgQWN0aXZpdHlDb250ZXh0SW1wbCh0aGlzLm5lc3RlZEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBBQ1RJVklUWV9EQVRBLCB1c2VWYWx1ZTogYWN0aXZpdHlSZWYuYWN0aXZpdHlEYXRhfSxcbiAgICAgICAge3Byb3ZpZGU6IEFjdGl2aXR5Q29udGV4dCwgdXNlVmFsdWU6IGFjdGl2aXR5Q29udGV4dH0sXG4gICAgICAgIHtwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhULCB1c2VWYWx1ZTogdGhpcy5uZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHR9LFxuICAgICAgICB7cHJvdmlkZTogSW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXIsIHVzZVZhbHVlOiBhY3Rpdml0eUNvbnRleHR9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvclxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3Rpdml0eUNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoYWN0aXZpdHlSZWYuYWN0aXZpdHlDbGFzcywge2luZGV4OiAwLCBpbmplY3Rvcn0pO1xuICAgIGFjdGl2aXR5Q29udGV4dC5pbml0KHRoaXMuYWN0aXZpdHlDb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWYubm90aWZ5QWN0aXZpdHlDcmVhdGVkKHRoaXMuYWN0aXZpdHlDb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMubmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgfVxuXG4gIGdldCBjb21wb25lbnQoKTogQWN0aXZpdHk8RCwgUiwgRT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29tcG9uZW50UmVmLmluc3RhbmNlO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  export class InteractionServiceRoutingAdapter {
2
2
  activeInteractionContextIds;
3
3
  activeModalContext;
4
- createExclusiveInteractionContext;
5
- constructor(activeInteractionContextIds, activeModalContext, createExclusiveInteractionContext) {
4
+ createNavigationSessionInteractionContext;
5
+ constructor(activeInteractionContextIds, activeModalContext, createNavigationSessionInteractionContext) {
6
6
  this.activeInteractionContextIds = activeInteractionContextIds;
7
7
  this.activeModalContext = activeModalContext;
8
- this.createExclusiveInteractionContext = createExclusiveInteractionContext;
8
+ this.createNavigationSessionInteractionContext = createNavigationSessionInteractionContext;
9
9
  }
10
10
  isActive() {
11
11
  return this.getActiveInteractionContextIds().length > 0;
@@ -29,4 +29,4 @@ export class InteractionServiceRoutingAdapter {
29
29
  return component.interactionContext.cancelActiveActivity();
30
30
  }
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tc2VydmljZS1yb3V0aW5nLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sZ0NBQWdDO0lBRWQ7SUFDQTtJQUNSO0lBRnJCLFlBQTZCLDJCQUE4QyxFQUM5QyxrQkFBa0QsRUFDMUQsaUNBQTJEO1FBRm5ELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBbUI7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQUMxRCxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQTBCO0lBQ2hGLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQixDQUFDLFNBQXlCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztJQUNYLDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztJQUNYLDBCQUEwQixDQUFDLFNBQXlCO1FBQ2xELE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDN0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0TW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4uLy4uL3BsYWNlL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbDxzdHJpbmc+LFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZU1vZGFsQ29udGV4dDogVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBjcmVhdGVFeGNsdXNpdmVJbnRlcmFjdGlvbkNvbnRleHQ6ICgpID0+IEludGVyYWN0aW9uQ29udGV4dCkge1xuICB9XG5cbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGlzTW9kYWxBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5hY3RpdmVNb2RhbENvbnRleHQudmFsdWU7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBpc0NvbXBvbmVudEludGVyYWN0aW5nKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dCAmJiBjb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCk7XG4gIH1cblxuICBnZXRBY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGNhbmNlbEN1cnJlbnRNb2RhbEludGVyYWN0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZU1vZGFsQ29udGV4dC52YWx1ZS5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgY2FuY2VsQ29tcG9uZW50SW50ZXJhY3Rpb24oY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gIH1cblxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tc2VydmljZS1yb3V0aW5nLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sZ0NBQWdDO0lBRWQ7SUFDQTtJQUNSO0lBRnJCLFlBQTZCLDJCQUE4QyxFQUM5QyxrQkFBa0QsRUFDMUQseUNBQW1FO1FBRjNELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBbUI7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQUMxRCw4Q0FBeUMsR0FBekMseUNBQXlDLENBQTBCO0lBQ3hGLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQixDQUFDLFNBQXlCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztJQUNYLDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztJQUNYLDBCQUEwQixDQUFDLFNBQXlCO1FBQ2xELE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDN0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0TW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4uLy4uL3BsYWNlL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbDxzdHJpbmc+LFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZU1vZGFsQ29udGV4dDogVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBjcmVhdGVOYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uQ29udGV4dDogKCkgPT4gSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgaXNNb2RhbEFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZU1vZGFsQ29udGV4dC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGlzQ29tcG9uZW50SW50ZXJhY3RpbmcoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmIGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcbiAgfVxuXG4gIGdldEFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcygpOiByZWFkb25seSBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgY2FuY2VsQ3VycmVudE1vZGFsSW50ZXJhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LnZhbHVlLmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBjYW5jZWxDb21wb25lbnRJbnRlcmFjdGlvbihjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgfVxuXG59XG4iXX0=
@@ -15,7 +15,7 @@ export class InteractionService {
15
15
  // private readonly _activeContext: ValueModelChain<InteractionContext>;
16
16
  _navigationInProgress = new DelegatingValueModel().withDefault(false);
17
17
  placeRouter;
18
- exclusiveInteractionRegistry;
18
+ navigationSessionInteractionRegistry;
19
19
  modalInteractionRegistry;
20
20
  inPlaceInteractionRegistry;
21
21
  activeModalContext;
@@ -24,11 +24,11 @@ export class InteractionService {
24
24
  constructor(modelInteractionContextFactory) {
25
25
  this.modelInteractionContextFactory = modelInteractionContextFactory;
26
26
  const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);
27
- this.exclusiveInteractionRegistry = new InteractionService.ContextRegistry();
27
+ this.navigationSessionInteractionRegistry = new InteractionService.ContextRegistry();
28
28
  this.modalInteractionRegistry = new InteractionService.ContextRegistry();
29
29
  this.inPlaceInteractionRegistry = new InteractionService.ContextRegistry();
30
- this.modalInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy());
31
- this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active, this.inPlaceInteractionRegistry.active).areTruthy());
30
+ this.modalInteractionRegistry.disableWhen(valueOf.any(this.navigationSessionInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy());
31
+ this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.navigationSessionInteractionRegistry.active, this.modalInteractionRegistry.active, this.inPlaceInteractionRegistry.active).areTruthy());
32
32
  this.active = valueOf.any(this.inPlaceInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy();
33
33
  // TODO: chain.concat(listOrValueModels) would be nice.
34
34
  this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)
@@ -39,6 +39,18 @@ export class InteractionService {
39
39
  isActive() {
40
40
  return this.active.value;
41
41
  }
42
+ cancelAllActivities() {
43
+ this.modalInteractionRegistry.interactionContexts.value.forEach(async (interaction) => {
44
+ while (interaction.isActive()) {
45
+ await interaction.cancelActiveActivity();
46
+ }
47
+ });
48
+ this.inPlaceInteractionRegistry.interactionContexts.value.forEach(async (interaction) => {
49
+ while (interaction.isActive()) {
50
+ await interaction.cancelActiveActivity();
51
+ }
52
+ });
53
+ }
42
54
  /**
43
55
  * @deprecated use #createModalInteractionContextDisposedWith instead.
44
56
  * @param disposable
@@ -73,7 +85,7 @@ export class InteractionService {
73
85
  this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress$);
74
86
  // const self = this;
75
87
  return new InteractionServiceRoutingAdapter(this.activeInteractionContextIds, this.activeModalContext, () => {
76
- return this.modelInteractionContextFactory.createInteractionContext("exclusive", new InteractionService.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));
88
+ return this.modelInteractionContextFactory.createInteractionContext("exclusive", new InteractionService.ApiAdapter(this.placeRouter, this.navigationSessionInteractionRegistry));
77
89
  });
78
90
  }
79
91
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionService, deps: [{ token: i1.ModalInteractionContextFactory }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -154,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
154
166
  }
155
167
  InteractionService.ApiAdapter = ApiAdapter;
156
168
  })(InteractionService || (InteractionService = {}));
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFbkYsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFLNUIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CUjtJQWpCSixPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBeUI7SUFFeEMsc0ZBQXNGO0lBQ3RGLHVGQUF1RjtJQUN2Rix3RUFBd0U7SUFDdkQscUJBQXFCLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixXQUFXLENBQWM7SUFDekIsNEJBQTRCLENBQXFDO0lBQ2pFLHdCQUF3QixDQUFxQztJQUM3RCwwQkFBMEIsQ0FBcUM7SUFDL0Qsa0JBQWtCLENBQXNDO0lBRXZELDJCQUEyQixDQUF5QjtJQUNwRCxrQkFBa0IsQ0FBeUI7SUFFcEQsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDakYsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFF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LENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBRUQsV0FBVztRQUNYLGNBQWMsQ0FBQyxPQUEyQjtZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxrQkFBa0I7WUFDbEIsOEdBQThHO1lBQzlHLHdGQUF3RjtZQUN4Rix5R0FBeUc7WUFDekcsMkVBQTJFO1lBQzNFLGlHQUFpRztZQUNqRyxpRkFBaUY7WUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzNELENBQUM7S0FDRjtJQWhDWSw2QkFBVSxhQWdDdEIsQ0FBQTtBQUVILENBQUMsRUEvRmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUErRmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0luUGxhY2VJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSBcIi4uL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXJ9IGZyb20gXCIuL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5cbmltcG9ydCB7TW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5fSBmcm9tIFwiLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnlcIjtcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZU1vZGFsQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUlubGluZUNvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkluUHJvZ3Jlc3MgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXI7XG4gIHByaXZhdGUgZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBtb2RhbEludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgYWN0aXZlTW9kYWxDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcblxuICByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGluTW9kYWxJbnRlcmFjdGlvbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnk6IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSkge1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcy5nYXJiYWdlKTtcblxuICAgIHRoaXMuZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeSA9IG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5KCk7XG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuXG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuZGlzYWJsZVdoZW4odmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5leGNsdXNpdmVJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmUsXG4gICAgICB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmVcbiAgICApLmFyZVRydXRoeSgpO1xuXG5cbiAgICAvLyBUT0RPOiBjaGFpbi5jb25jYXQobGlzdE9yVmFsdWVNb2RlbHMpIHdvdWxkIGJlIG5pY2UuXG4gICAgdGhpcy5hY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dElkcylcbiAgICAgIC5jb25jYXQodGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0SWRzKTtcblxuICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0ID0gY2hhaW4odGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0cykuZmlyc3QoKTtcbiAgICB0aGlzLmluTW9kYWxJbnRlcmFjdGlvbiA9IGNoYWluKHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0KS5pc05vdE5pbCgpO1xuXG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGb3IoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgYmUgZGlzcG9zZWQgYWxvbmcgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgcmV0dXJuIHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dChcIm1vZGFsXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgLy8gVG9kbzogY2hlY2sgZm9yIGRvdWJsZSByZWdpc3RyYXRpb24uXG4gICAgLy8gVG9kbzogYWxsb3cgbXVsdGlwbGUgaW5wbGFjZSBpbnRlcmFjdGlvbnMuLlxuICAgIGludGVyYWN0aW9uQ29udGV4dC5vbklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRSZWdpc3RlcmVkKGBpcCR7KytpbnBsYWNlTW9uaXRvckNvdW50fWAsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGludGVyYWN0aW9uIGNvbnRleHQgdGhhdCB3aWxsIHByZXZlbnQgYW55IG90aGVyIGNvbnRleHRzIGZyb20gc3RhcnRpbmcgYW5cbiAgICogYWN0aXZpdHkgdW50aWwgaXQgaXMgZGlzcG9zZWQuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkgdGhlIHJvdXRlciBmb3IgcGFzc2luZ1xuICAgKiB0byBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkuICBUaGlzIGVuc3VyZXMgY29tcG9uZW50cyBkb24ndFxuICAgKiB0cnkgYW5kIGludGVyYWN0IGluIGEgd2F5IHRoYXQgd2UgY2FuJ3QgdHJhY2sgYW5kIHN5bmNocm9uaXNlIHdpdGggdGhlIGJyb3dzZXIgYmFja1xuICAgKiBidXR0b24uXG4gICAqL1xuICByZWdpc3RlclBsYWNlUm91dGVyKHJvdXRlcjogUGxhY2VSb3V0ZXIpOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMucGxhY2VSb3V0ZXIpO1xuICAgIHRoaXMucGxhY2VSb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0RGVsZWdhdGUodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuICAgIC8vIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIoXG4gICAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyxcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KFwiZXhjbHVzaXZlXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkpKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBJbnRlcmFjdGlvblNlcnZpY2Uge1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBpIHtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGFjdGl2ZS4gVGhlIGludGVyYWN0aW9uXG4gICAgICogc2VydmljZXMgd2lsbCB0aGVuIHB1c2ggY2hhbmdlcyB0byB0aGUgcm91dGVyIHRvIHRyYWNrIHN0YXRlLiAgSWYgdGhlIHJvdXRlciBpcyBpZGxlLCB0aGUgcHJvbWlzZSB3aWxsXG4gICAgICogcmVzb2x2ZSB3aGVuIHRoZSByb3V0aW5nIGhhcyBmaW5pc2hlZCB1cGRhdGluZy4gIE90aGVyd2lzZSBpdCB3aWxsIHJldHVybiBpbW1lZGlhdGVseS5cbiAgICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAgICovXG4gICAgbm90aWZ5QWN0aXZlKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGlkbGUuIFRoZSBpbnRlcmFjdGlvblxuICAgICAqIHNlcnZpY2VzIHdpbGwgdGhlbiBwdXNoIGNoYW5nZXMgdG8gdGhlIHJvdXRlciB0byB0cmFjayBzdGF0ZS4gIElmIHRoZSByb3V0ZXIgaXMgaWRsZSwgdGhlIHByb21pc2Ugd2lsbFxuICAgICAqIHJlc29sdmUgd2hlbiB0aGUgcm91dGluZyBoYXMgZmluaXNoZWQgdXBkYXRpbmcuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlGaW5pc2hlZChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj47XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBzZXJ2aWNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB0aGUgQVBJIGFkYXB0ZXJzIGFyZSBkb2luZyB0b1xuICAgKiBlbnN1cmUgdGhlIHJ1bGVzIGFyZSBmb2xsb3dlZCwgaS5lLiBtb2RhbCBvciBpbi1wbGFjZSBpbnRlcmFjdGlvbiBhcmVuJ3Qgc3RhcnRlZCB3aGlsZVxuICAgKiBhbiBleGNsdXNpdmUgcm91dGluZyBpbnRlcmFjdGlvbiBpcyBhY3RpdmUuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgQ29udGV4dFJlZ2lzdHJ5IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgICBwcml2YXRlIF9pbnRlcmFjdGlvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWREZWxlZ2F0ZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gICAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykuaXNOb3RFbXB0eSgpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLl9pbnRlcmFjdGlvbnMpLnBsdWNrKFwiaWRlbnRpZmllclwiKTtcbiAgICB9XG5cbiAgICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0cygpOiBMaXN0TW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PiB7XG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJhY3Rpb25zLnJlYWRvbmx5JDtcbiAgICB9XG5cbiAgICBzdGFydChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9ucy5wdXNoKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZpbmlzaChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9ucy5yZW1vdmUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgaXNBY3RpdmUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gICAgfVxuXG4gICAgZGlzYWJsZVdoZW4oZGlzYWJsZWQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkRGVsZWdhdGUuc2V0RGVsZWdhdGUoZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBcGlBZGFwdGVyIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIEFwaSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlciwgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0UmVnaXN0cnk6IENvbnRleHRSZWdpc3RyeSkge1xuICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyBAVHJhY2UoKVxuICAgIG5vdGlmeUFjdGl2ZShjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGFueT4ge1xuICAgICAgYXNzZXJ0LmlzVHJ1dGh5KGNvbnRleHQuaWRlbnRpZmllcik7XG4gICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeS5zdGFydChjb250ZXh0KTtcbiAgICAgIHJldHVybiB0aGlzLmlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSA/IFByb21pc2UucmVzb2x2ZSgpIDogdGhpcy5wbGFjZVJvdXRlci5zeW5jSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlcigpO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgcHJpdmF0ZSBpc05hdmlnYXRpb25JblByb2dyZXNzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvbkluUHJvZ3Jlc3MkLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgbm90aWZ5RmluaXNoZWQoY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5LmZpbmlzaChjb250ZXh0KTtcbiAgICAgIC8vIDo6IEltcG9ydGFudCA6OlxuICAgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBiZSB0cmF2ZXJzZWQgYnkgYm90aCB0aGUgcGxhY2Ugcm91dGVyIChkdXJpbmcgY2FuIGNhbkRlYWN0aXZhdGUgZ3VhcmRzKSBhbmQgdXNlciBsYW5kIGNvZGVcbiAgICAgIC8vIChib3RoIHdoZW4gcm91dGluZyBpcyBpZGxlIGFuZCB3aGlsZSBpdCBpcyBhY3RpdmUgaW4gUGxhY2VDb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpKS5cbiAgICAgIC8vIFRoZSByZXN1bHQgb2YgcHVzaEludGVyYWN0aW9uSWRzVG9Sb3V0ZSB3aWxsIG5vdCBzdGFydCB1bnRpbCBhZnRlciB0aGUgY3VycmVudCByb3V0ZSBmaW5pc2hlcywgYW5kIHRoZVxuICAgICAgLy8gY3VycmVudCByb3V0ZSB3b24ndCBmaW5pc2ggdW50aWwgYWZ0ZXIgdGhpcyBwcm9taXNlIHJldHVybnMuLi4gRGVhZGxvY2suXG4gICAgICAvLyBTbyBpbiBvcmRlciB0byBrZWVwIHRoaXMgbG9naWMgb3V0IG9mIHRoZSBhY3Rpdml0aWVzIHdlIHBlcmZvcm0gdGhlIGNoZWNrIGhlcmUgYW5kIGVuc3VyZSB0aGF0XG4gICAgICAvLyBhbnkgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGNvbnRleHQgd2hpbGUgcm91dGluZyBpcyBhY3RpdmUgcmV0dXJucyBpbW1lZGlhdGVseS5cbiAgICAgIHJldHVybiB0aGlzLmlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSA/XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpIDpcbiAgICAgICAgdGhpcy5wbGFjZVJvdXRlci5zeW5jSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlcigpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFbkYsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFLNUIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CUjtJQWpCSixPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBeUI7SUFFeEMsc0ZBQXNGO0lBQ3RGLHVGQUF1RjtJQUN2Rix3RUFBd0U7SUFDdkQscUJBQXFCLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixXQUFXLENBQWM7SUFDekIsb0NBQW9DLENBQXFDO0lBQ3pFLHdCQUF3QixDQUFxQztJQUM3RCwwQkFBMEIsQ0FBcUM7SUFDL0Qsa0JBQWtCLENBQXNDO0lBRXZELDJCQUEyQixDQUF5QjtJQUNwRCxrQkFBa0IsQ0FBeUI7SUFFcEQsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDakYsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFF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QUFnQztZQUN0RyxLQUFLLEVBQUUsQ0FBQztZQURtQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtZQUFtQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFeEcsQ0FBQztRQUVELFdBQVc7UUFDWCxZQUFZLENBQUMsT0FBMkI7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1DQUFtQyxFQUFFLENBQUM7UUFDcEgsQ0FBQztRQUVELFdBQVc7UUFDSCxzQkFBc0I7WUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBRUQsV0FBVztRQUNYLGNBQWMsQ0FBQyxPQUEyQjtZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxrQkFBa0I7WUFDbEIsOEdBQThHO1lBQzlHLHdGQUF3RjtZQUN4Rix5R0FBeUc7WUFDekcsMkVBQTJFO1lBQzNFLGlHQUFpRztZQUNqRyxpRkFBaUY7WUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzNELENBQUM7S0FDRjtJQWhDWSw2QkFBVSxhQWdDdEIsQ0FBQTtBQUVILENBQUMsRUEvRmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUErRmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0luUGxhY2VJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSBcIi4uL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXJ9IGZyb20gXCIuL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5cbmltcG9ydCB7TW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5fSBmcm9tIFwiLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnlcIjtcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZU1vZGFsQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUlubGluZUNvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkluUHJvZ3Jlc3MgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXI7XG4gIHByaXZhdGUgbmF2aWdhdGlvblNlc3Npb25JbnRlcmFjdGlvblJlZ2lzdHJ5OiBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5O1xuICBwcml2YXRlIG1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBpblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBhY3RpdmVNb2RhbENvbnRleHQ6IFZhbHVlTW9kZWxDaGFpbjxJbnRlcmFjdGlvbkNvbnRleHQ+O1xuXG4gIHJlYWRvbmx5IGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcbiAgcmVhZG9ubHkgaW5Nb2RhbEludGVyYWN0aW9uOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG1vZGVsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeTogTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5KSB7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzLmdhcmJhZ2UpO1xuXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcblxuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmVcbiAgICApLmFyZVRydXRoeSgpKTtcblxuICAgIHRoaXMuYWN0aXZlID0gdmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZVxuICAgICkuYXJlVHJ1dGh5KCk7XG5cblxuICAgIC8vIFRPRE86IGNoYWluLmNvbmNhdChsaXN0T3JWYWx1ZU1vZGVscykgd291bGQgYmUgbmljZS5cbiAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyA9IGNoYWluKHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0SWRzKVxuICAgICAgLmNvbmNhdCh0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5pbnRlcmFjdGlvbkNvbnRleHRJZHMpO1xuXG4gICAgdGhpcy5hY3RpdmVNb2RhbENvbnRleHQgPSBjaGFpbih0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5pbnRlcmFjdGlvbkNvbnRleHRzKS5maXJzdCgpO1xuICAgIHRoaXMuaW5Nb2RhbEludGVyYWN0aW9uID0gY2hhaW4odGhpcy5hY3RpdmVNb2RhbENvbnRleHQpLmlzTm90TmlsKCk7XG5cbiAgfVxuXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgfVxuXG4gIGNhbmNlbEFsbEFjdGl2aXRpZXMoKSB7XG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0cy52YWx1ZS5mb3JFYWNoKGFzeW5jIChpbnRlcmFjdGlvbikgPT4ge1xuICAgICAgd2hpbGUoaW50ZXJhY3Rpb24uaXNBY3RpdmUoKSkge1xuICAgICAgICBhd2FpdCBpbnRlcmFjdGlvbi5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dHMudmFsdWUuZm9yRWFjaChhc3luYyAoaW50ZXJhY3Rpb24pID0+IHtcbiAgICAgIHdoaWxlKGludGVyYWN0aW9uLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgYXdhaXQgaW50ZXJhY3Rpb24uY2FuY2VsQWN0aXZlQWN0aXZpdHkoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGb3IoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgYmUgZGlzcG9zZWQgYWxvbmcgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgcmV0dXJuIHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dChcIm1vZGFsXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgLy8gVG9kbzogY2hlY2sgZm9yIGRvdWJsZSByZWdpc3RyYXRpb24uXG4gICAgLy8gVG9kbzogYWxsb3cgbXVsdGlwbGUgaW5wbGFjZSBpbnRlcmFjdGlvbnMuLlxuICAgIGludGVyYWN0aW9uQ29udGV4dC5vbklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRSZWdpc3RlcmVkKGBpcCR7KytpbnBsYWNlTW9uaXRvckNvdW50fWAsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGludGVyYWN0aW9uIGNvbnRleHQgdGhhdCB3aWxsIHByZXZlbnQgYW55IG90aGVyIGNvbnRleHRzIGZyb20gc3RhcnRpbmcgYW5cbiAgICogYWN0aXZpdHkgdW50aWwgaXQgaXMgZGlzcG9zZWQuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkgdGhlIHJvdXRlciBmb3IgcGFzc2luZ1xuICAgKiB0byBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkuICBUaGlzIGVuc3VyZXMgY29tcG9uZW50cyBkb24ndFxuICAgKiB0cnkgYW5kIGludGVyYWN0IGluIGEgd2F5IHRoYXQgd2UgY2FuJ3QgdHJhY2sgYW5kIHN5bmNocm9uaXNlIHdpdGggdGhlIGJyb3dzZXIgYmFja1xuICAgKiBidXR0b24uXG4gICAqL1xuICByZWdpc3RlclBsYWNlUm91dGVyKHJvdXRlcjogUGxhY2VSb3V0ZXIpOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMucGxhY2VSb3V0ZXIpO1xuICAgIHRoaXMucGxhY2VSb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0RGVsZWdhdGUodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuICAgIC8vIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIoXG4gICAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyxcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KFwiZXhjbHVzaXZlXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm5hdmlnYXRpb25TZXNzaW9uSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICAgICAgfSk7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGkge1xuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhlIGludGVyYWN0aW9uIHNlcnZpY2UgdGhhdCBhIHBhcnRpY3VsYXIgaW50ZXJhY3Rpb25Db250ZXh0IGhhcyBiZWNvbWUgYWN0aXZlLiBUaGUgaW50ZXJhY3Rpb25cbiAgICAgKiBzZXJ2aWNlcyB3aWxsIHRoZW4gcHVzaCBjaGFuZ2VzIHRvIHRoZSByb3V0ZXIgdG8gdHJhY2sgc3RhdGUuICBJZiB0aGUgcm91dGVyIGlzIGlkbGUsIHRoZSBwcm9taXNlIHdpbGxcbiAgICAgKiByZXNvbHZlIHdoZW4gdGhlIHJvdXRpbmcgaGFzIGZpbmlzaGVkIHVwZGF0aW5nLiAgT3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlBY3RpdmUoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPHVua25vd24+O1xuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhlIGludGVyYWN0aW9uIHNlcnZpY2UgdGhhdCBhIHBhcnRpY3VsYXIgaW50ZXJhY3Rpb25Db250ZXh0IGhhcyBiZWNvbWUgaWRsZS4gVGhlIGludGVyYWN0aW9uXG4gICAgICogc2VydmljZXMgd2lsbCB0aGVuIHB1c2ggY2hhbmdlcyB0byB0aGUgcm91dGVyIHRvIHRyYWNrIHN0YXRlLiAgSWYgdGhlIHJvdXRlciBpcyBpZGxlLCB0aGUgcHJvbWlzZSB3aWxsXG4gICAgICogcmVzb2x2ZSB3aGVuIHRoZSByb3V0aW5nIGhhcyBmaW5pc2hlZCB1cGRhdGluZy4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkuXG4gICAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgICAqL1xuICAgIG5vdGlmeUZpbmlzaGVkKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgdGhlIHNlcnZpY2UgdG8ga2VlcCB0cmFjayBvZiB3aGF0IHRoZSBBUEkgYWRhcHRlcnMgYXJlIGRvaW5nIHRvXG4gICAqIGVuc3VyZSB0aGUgcnVsZXMgYXJlIGZvbGxvd2VkLCBpLmUuIG1vZGFsIG9yIGluLXBsYWNlIGludGVyYWN0aW9uIGFyZW4ndCBzdGFydGVkIHdoaWxlXG4gICAqIGFuIGV4Y2x1c2l2ZSByb3V0aW5nIGludGVyYWN0aW9uIGlzIGFjdGl2ZS5cbiAgICovXG4gIGV4cG9ydCBjbGFzcyBDb250ZXh0UmVnaXN0cnkgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICAgIHByaXZhdGUgX2ludGVyYWN0aW9ucyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPEludGVyYWN0aW9uQ29udGV4dD4oKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZERlbGVnYXRlID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcbiAgICByZWFkb25seSBhY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gICAgcmVhZG9ubHkgaW50ZXJhY3Rpb25Db250ZXh0SWRzOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuYWN0aXZlID0gY2hhaW4odGhpcy5faW50ZXJhY3Rpb25zKS5pc05vdEVtcHR5KCk7XG4gICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dElkcyA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykucGx1Y2soXCJpZGVudGlmaWVyXCIpO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGlvbkNvbnRleHRzKCk6IExpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbnMucmVhZG9ubHkkO1xuICAgIH1cblxuICAgIHN0YXJ0KGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgdGhpcy5faW50ZXJhY3Rpb25zLnB1c2goY29udGV4dCk7XG4gICAgfVxuXG4gICAgZmluaXNoKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgdGhpcy5faW50ZXJhY3Rpb25zLnJlbW92ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpc0FjdGl2ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBkaXNhYmxlV2hlbihkaXNhYmxlZDogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgICAgdGhpcy5fZGlzYWJsZWREZWxlZ2F0ZS5zZXREZWxlZ2F0ZShkaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFwaUFkYXB0ZXIgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIGltcGxlbWVudHMgQXBpIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLCBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRSZWdpc3RyeTogQ29udGV4dFJlZ2lzdHJ5KSB7XG4gICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgbm90aWZ5QWN0aXZlKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8YW55PiB7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkoY29udGV4dC5pZGVudGlmaWVyKTtcbiAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5LnN0YXJ0KGNvbnRleHQpO1xuICAgICAgcmV0dXJuIHRoaXMuaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpID8gUHJvbWlzZS5yZXNvbHZlKCkgOiB0aGlzLnBsYWNlUm91dGVyLnN5bmNJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGVyKCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBwcml2YXRlIGlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBub3RpZnlGaW5pc2hlZChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGFueT4ge1xuICAgICAgdGhpcy5jb250ZXh0UmVnaXN0cnkuZmluaXNoKGNvbnRleHQpO1xuICAgICAgLy8gOjogSW1wb3J0YW50IDo6XG4gICAgICAvLyBUaGlzIG1ldGhvZCB3aWxsIGJlIHRyYXZlcnNlZCBieSBib3RoIHRoZSBwbGFjZSByb3V0ZXIgKGR1cmluZyBjYW4gY2FuRGVhY3RpdmF0ZSBndWFyZHMpIGFuZCB1c2VyIGxhbmQgY29kZVxuICAgICAgLy8gKGJvdGggd2hlbiByb3V0aW5nIGlzIGlkbGUgYW5kIHdoaWxlIGl0IGlzIGFjdGl2ZSBpbiBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKCkpLlxuICAgICAgLy8gVGhlIHJlc3VsdCBvZiBwdXNoSW50ZXJhY3Rpb25JZHNUb1JvdXRlIHdpbGwgbm90IHN0YXJ0IHVudGlsIGFmdGVyIHRoZSBjdXJyZW50IHJvdXRlIGZpbmlzaGVzLCBhbmQgdGhlXG4gICAgICAvLyBjdXJyZW50IHJvdXRlIHdvbid0IGZpbmlzaCB1bnRpbCBhZnRlciB0aGlzIHByb21pc2UgcmV0dXJucy4uLiBEZWFkbG9jay5cbiAgICAgIC8vIFNvIGluIG9yZGVyIHRvIGtlZXAgdGhpcyBsb2dpYyBvdXQgb2YgdGhlIGFjdGl2aXRpZXMgd2UgcGVyZm9ybSB0aGUgY2hlY2sgaGVyZSBhbmQgZW5zdXJlIHRoYXRcbiAgICAgIC8vIGFueSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgY29udGV4dCB3aGlsZSByb3V0aW5nIGlzIGFjdGl2ZSByZXR1cm5zIGltbWVkaWF0ZWx5LlxuICAgICAgcmV0dXJuIHRoaXMuaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpID9cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkgOlxuICAgICAgICB0aGlzLnBsYWNlUm91dGVyLnN5bmNJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGVyKCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -17,7 +17,7 @@ export class NavigationSession extends GarbageCollector {
17
17
  this.startingUrl = startingUrl;
18
18
  // console.log(`new ${this.constructor.name}`)
19
19
  // TODO: can I get away without creating one every time?
20
- this._interactionContext = this.context.routerInteractionAdapter.createExclusiveInteractionContext();
20
+ this._interactionContext = this.context.routerInteractionAdapter.createNavigationSessionInteractionContext();
21
21
  this.onDispose(() => {
22
22
  // the interaction context can be detached during the back button cancellation state transition
23
23
  // as the transition is synchronous and activityCancellation isn't. Otherwise dispose will be
@@ -173,4 +173,4 @@ export class NavigationSession extends GarbageCollector {
173
173
  return context;
174
174
  }
175
175
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVFeGNsdXNpdmVJbnRlcmFjdGlvbkNvbnRleHQoKTtcbiAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICAvLyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBjYW4gYmUgZGV0YWNoZWQgZHVyaW5nIHRoZSBiYWNrIGJ1dHRvbiBjYW5jZWxsYXRpb24gc3RhdGUgdHJhbnNpdGlvblxuICAgICAgLy8gYXMgdGhlIHRyYW5zaXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGFjdGl2aXR5Q2FuY2VsbGF0aW9uIGlzbid0LiAgT3RoZXJ3aXNlIGRpc3Bvc2Ugd2lsbCBiZVxuICAgICAgLy8gY2FsbGVkIGJlZm9yZSB0aGUgY29udGV4dCBoYXMgYmVlbiBjYW5jZWxsZWQuICBJdCBtaWdodCBiZSB3b3JrIGhhdmluZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dFxuICAgICAgLy8gYXV0b21hdGljYWxseSBjYW5jZWwgaWYgdGhlIGNvbnRleHQgaXMgZGlzcG9zZWQgc28gd2UgZG9uJ3QgaGF2ZSB3b3JyeSBhYm91dCBkZXRhY2hpbmcgZXRjLlxuICAgICAgaWYgKHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQuZGlzcG9zZSgpOyAvLyBvciBkbyBzb21ldGhpbmcgbGlrZSBjYW5jZWxBbmREaXNwb3NlP1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzSW50ZXJhY3Rpb25TeW5jKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIGdldCB1cmxTZXJ2aWNlKCk6IFVybFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQudXJsU2VydmljZTtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyKCk6IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlcjtcbiAgfVxuXG4gIGluaXRpYWxpc2VWaXNpdFNlZ21lbnRzKHZpc2l0OiBWaXNpdCkge1xuICAgIHZpc2l0LnNlZ21lbnRzLmZvckVhY2goaXQgPT4gdGhpcy51cGRhdGVWaXNpdFNlZ21lbnQoaXQpKVxuICB9XG5cbiAgdXBkYXRlVmlzaXRTZWdtZW50KHNlZ21lbnQ6IFZpc2l0U2VnbWVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGB1cGRhdGVWaXNpdFNlZ21lbnRgLCBzZWdtZW50LnRvRGVidWdTdHJpbmcoKSk7XG4gICAgdGhpcy5fdmlzaXRTZWdtZW50cy5zZXQoc2VnbWVudC5wbGFjZURlZmluaXRpb24sIHNlZ21lbnQpO1xuICB9XG5cblxuICBnZXRWaXNpdFNlZ21lbnRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy5fdmlzaXRTZWdtZW50cy5nZXQocGxhY2VEZWYpO1xuICAgIC8vIGNvbnNvbGUubG9nKGBHZXR0aW5nIHZpc2l0IGZvciAke3BsYWNlRGVmLmNvbXBvbmVudC5uYW1lfWAsIHt2aXNpdH0pO1xuICAgIHJldHVybiB2aXNpdDtcbiAgfVxuXG4gIGNyZWF0ZVVwZGF0ZWRWaXNpdCh1cmw6IHN0cmluZykgOlZpc2l0IHtcbiAgICAvLyBUaGUgdmlzaXQgc2VnbWVudHMgY2FuIGhhdmUgYXJiaXJhcnkgcGxhY2VzIGluIHRoZW0gYWZ0ZXIgcmVkaXJlY3RzXG4gICAgLy8gc28gd2UgaGF2ZSB0byBmaWx0ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZmluYWwgdXJsLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgZmlsdGVyZWRTZWdtZW50cyA9IEFycmF5LmZyb20odGhpcy5fdmlzaXRTZWdtZW50cy52YWx1ZXMoKSlcbiAgICAgIC5maWx0ZXIoaXQgPT4gc25hcHNob3QuY29udGFpbnNWaXNpdFNlZ21lbnQoaXQpKTtcbiAgICByZXR1cm4gVmlzaXQuZnJvbVNlZ21lbnRzKGZpbHRlcmVkU2VnbWVudHMpO1xuICB9XG5cbiAgZ2V0IGNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICB9XG5cbiAgbm90aWZ5QWN0aXZlKCkge1xuICAgIC8vIG5vb3AuXG4gIH1cblxuICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbnMgY2FuIGhhdmUgbWFueSBjYW5jZWwgc3RhcnQgY3ljbGVzIGR1ZSB0byBwbGFjZSBndWFyZCByZWRpcmVjdHNcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIC8vIE5vcm1hbGx5IHdlIGp1c3QgaWdub3JlIHRoZXNlIGJ1dCB0aGV5IGFyZSB0aGUgb25seSB3YXkgb2YgZGV0ZWN0aW5nIGlmIHRoZSBiYWNrIGJ1dHRvblxuICAgIC8vIHdhcyBjbGlja2VkIGR1cmluZyBhIGNhbkRlYWN0aXZhdGUgcHJvbWlzZS5cbiAgICAvLyAxLiBhIHJvdXRlIGlzIGluIHByb2dyZXNzIGFuZCBhd2FpdGluZyBhIGNhbkRlYWN0aXZhdGVHdWFyZFxuICAgIC8vIDIuIHRoZSB1c2VyIHRoZSBjbGlja3MgdGhlIGJhY2sgYnV0dG9uLlxuICAgIC8vIFNvIHRvIGhhbmRsZSB0aGF0IHNjZW5hcmlvIHdlIG5lZWQgdG8gY2hlY2sgaWYgd2UndmUgZ290IGEgY2FuIGRlYWN0aXZhdGUgaW50ZXJhY3Rpb24gaW5cbiAgICAvLyBwcm9ncmVzcyBhbmQgdGhlIGRvIHRoZSBhcHByb3ByaWF0ZSBjbGVhbiB1cC5cbiAgICBpZiAodGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbih1cmwpO1xuICAgIH1cbiAgfVxuXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBnZXRWaXNpdFNlZ21lbnRzKCk6IFZpc2l0U2VnbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbGxlZ2FsVHJhbnNpdGlvbjxSPihtZXNzYWdlOiBzdHJpbmcgfCBSb3V0ZXJFdmVudCk6IFIge1xuICAgIHJldHVybiBsYW5nLmlsbGVnYWxTdGF0ZShgJHttZXNzYWdlLnRvU3RyaW5nKCl9IG5vdCBzdXBwb3J0ZWQgYnkgJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudFJvdXRlclVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclVybCgpO1xuICB9XG5cbiAgcmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCBvcHRpb25zOiB7IHJlcGxhY2VDdXJyZW50OiBib29sZWFuIH0gPSB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KSB7XG4gICAgLy8gY29uc29sZS5sb2coYC0tLT4gcmVzZXR0aW5nIGJyb3dzZXIgbG9jYXRpb24gdG86ICR7dXJsfWApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIHJlcGFpckJyb3dzZXJIaXN0b3J5QW5kVXJsQWZ0ZXJHdWFyZENhbmNlbGxhdGlvbihwb3BwZWRIaXN0b3J5VG9SZXBsYWNlOiBzdHJpbmcsIGFjdGl2ZVVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW1wb3J0YW50OiBJIHRyaWVkIHRvIHBlcmZvcm0gdGhpcyBmaXggYXQgYSBsYXRlciBwb2ludCBpbnQgaGUgcm91dGluZyBjeWNsZSBidXQgaXQgY3JlYXRlZCBhbGwga2luZHMgb2ZcbiAgICAvLyBzdHJhbmdlbmVzcy5cbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oXCJXT1JLLUFST1VORDogVXBkYXRpbmcgYnJvd3NlciBsb2NhdGlvbiBhZnRlciBwb3Agc3RhdGUgLSBzZWUgYW5ndWxhciBpc3N1ZSAjMTM1ODZcIik7XG4gICAgLy8gY29uc29sZS5sb2coYHJlcGxhY2luZyAke3RoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmxTbmFwc2hvdCgpLnVybH0gd2l0aCAke3BvcHBlZEhpc3RvcnlUb1JlcGxhY2V9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2UsIHsgcmVwbGFjZUN1cnJlbnQ6IHRydWUgfSk7XG4gICAgLy8gY29uc29sZS5sb2coYHB1c2hpbmcgJHthY3RpdmVVcmx9IGJhY2sgb250byB0aGUgaGlzdG9yeS5gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24oYWN0aXZlVXJsLCB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KTtcbiAgfVxuXG5cbiAgaWdub3JlKGV2ZW50OiBSb3V0ZXJFdmVudCwgcmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgcmVhc29uID0gcmVhc29uID8gYCAtPiAke3JlYXNvbn1gIDogXCJcIjtcbiAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYElnbm9yaW5nIHJvdXRlciBldmVudCR7cmVhc29ufTogJHtldmVudC5jb25zdHJ1Y3Rvci5uYW1lfSAtPiAke2V2ZW50LnVybH0gOjogJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9KCR7dGhpcy5kZWJ1Z1N0YXRlKCl9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVidWdTdGF0ZShwcm9wZXJ0aWVzPzogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gKHByb3BlcnRpZXMgfHwgdGhpcy5kZWJ1Z1Byb3BlcnR5S2V5cykubWFwKHAgPT4ge1xuICAgICAgcmV0dXJuIGAke3B9OiAke3RoaXNbcF19YDtcbiAgICB9KS5qb2luKFwiLCBcIik7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiBjYW5EZWFjdGl2YXRlUGxhY2UoJHtjb21wb25lbnQucGxhY2VEZWZpbml0aW9uLnBhdGh9LCAke2N1cnJlbnRVcmwudXJsfSAtPiAke25leHRVcmwudXJsfSlgKTtcbiAgICAvLyBsb29rdXAgdGhlIGhhbmRsZXIgYW5kIGNyZWF0ZSBpdCBpZiB3ZSd2ZSBub3Qgc2VlbiBpdCB5ZXRcbiAgICBsZXQgaGFuZGxlciA9IHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc1ByaW1hcnlIYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zaXplID09PSAwOyAvLyBvbmx5IHByaW1hcnkgaGFuZGxlciBjYW5jZWxzIHRoZSBhcHAgbW9kZWwgaW50ZXJhdGlvbnNcbiAgICAgIGhhbmRsZXIgPSBuZXcgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyKGNvbXBvbmVudCwgdGhpcywgaXNQcmltYXJ5SGFuZGxlcik7XG4gICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci5jYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmwsIG5leHRVcmwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGA8LS0tIGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0pOiAke3Jlc3VsdH1gKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWxDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb24obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGJhY2sgYnV0dG9uIHByZXNzZWQgZHVyaW5nIG5hdmlnYXRpb24gc2Vzc2lvbiBpbnRlcmFjdGlvbiBwcm9taXNlYCk7XG4gICAgLy8gZGV0YWNoIHRoZSBpbnRlcmFjdGlvbiBmcm9tIHRoZSBzZXNzaW9uIHNvIGl0IGRvZXNuJ3QgZ2V0IGRpc3Bvc2VkIHVudGlsIHRoZSBhY3Rpdml0eSBoYXMgZmluaXNoZWRcbiAgICAvLyBhbGwgaXQncyB0aGluZ3MuXG4gICAgY29uc3QgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCA9IHRoaXMuZGV0YWNoQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIC8vIFRPRE86IEkgbmVlZCB0byBtYWtlIHRoZSBleGNsdXNpdmUgaW50ZXJhY3Rpb24gY29udGV4dCBkaXNhbGxvdyBuZXN0ZWQgYWN0aXZpdGllcyBvclxuICAgIC8vICAgICAgIHRoYXQgd291bGQgbWVzcyB0aGluZ3MgdXAgZW50aXJlbHkuIE9yLCBjYW4gSSBkbyBhIGNvbnRleHQuYWJvcnRBbGwoKS50aGVuKC4uKVxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcImNhbmNlbGxpbmcgY3VycmVudCBuYXZpZ2F0aW9uIGFjdGl2aXR5Li5cIik7XG4gICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpLnRoZW4oKCkgPT4ge1xuICAgICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybCk7XG4gIH1cblxuICBhYnN0cmFjdCBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhuZXdVcmw6IHN0cmluZyk6IHZvaWRcblxuICBwcm90ZWN0ZWQgcmVpbnN0YXRlVXJsQWZ0ZXJBbmd1bGFyQ2hhbmdlZEl0T25DYW5jZWxsYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAvLyBBbmd1bGFyIGNhbGxzIF90aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpIG9uIGNhbmNlbGxpbmcgYW5kIGZ1Y2tzIG91ciBoaXN0b3J5LlxuICAgIC8vIFNvIHRoaXMgbWVhbnMgdGhhdCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0aGUgdXJsIHdlIHdhbnQgdG8gZ28gYmFjayB0bywgYW5kIG5vdCB0aGUgb25lIHRoYXQgd2FzIG9uXG4gICAgLy8gaXQgYmVmb3JlIHRoZSBjYW5jZWwgZXZlbnQgZmlyZWQuXG4gICAgLy8gU28gd2UgbmVlZCB0bzpcbiAgICAvLyAtIHJlcGxhY2UgdGhlIGp1c3QgaW5zZXJ0ZWQgdXJsIHdpdGggdGhlIG9uZSB0aGF0IHVzZWQgdG8gYmUgdGhlcmUuXG4gICAgLy8gLSBwdXNoIG91ciBhY3R1YWwgdXJsIGJhY2sgb250byB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICB0aGlzLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHlDQUF5QyxFQUFFLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVOYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgIC8vIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGNhbiBiZSBkZXRhY2hlZCBkdXJpbmcgdGhlIGJhY2sgYnV0dG9uIGNhbmNlbGxhdGlvbiBzdGF0ZSB0cmFuc2l0aW9uXG4gICAgICAvLyBhcyB0aGUgdHJhbnNpdGlvbiBpcyBzeW5jaHJvbm91cyBhbmQgYWN0aXZpdHlDYW5jZWxsYXRpb24gaXNuJ3QuICBPdGhlcndpc2UgZGlzcG9zZSB3aWxsIGJlXG4gICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IGNhbmNlbCBpZiB0aGUgY29udGV4dCBpcyBkaXNwb3NlZCBzbyB3ZSBkb24ndCBoYXZlIHdvcnJ5IGFib3V0IGRldGFjaGluZyBldGMuXG4gICAgICBpZiAodGhpcy5faW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKTogVXJsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIoKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyO1xuICB9XG5cbiAgaW5pdGlhbGlzZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KSB7XG4gICAgdmlzaXQuc2VnbWVudHMuZm9yRWFjaChpdCA9PiB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudChpdCkpXG4gIH1cblxuICB1cGRhdGVWaXNpdFNlZ21lbnQoc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coYHVwZGF0ZVZpc2l0U2VnbWVudGAsIHNlZ21lbnQudG9EZWJ1Z1N0cmluZygpKTtcbiAgICB0aGlzLl92aXNpdFNlZ21lbnRzLnNldChzZWdtZW50LnBsYWNlRGVmaW5pdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuXG4gIGdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgdmlzaXQgPSB0aGlzLl92aXNpdFNlZ21lbnRzLmdldChwbGFjZURlZik7XG4gICAgLy8gY29uc29sZS5sb2coYEdldHRpbmcgdmlzaXQgZm9yICR7cGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCwge3Zpc2l0fSk7XG4gICAgcmV0dXJuIHZpc2l0O1xuICB9XG5cbiAgY3JlYXRlVXBkYXRlZFZpc2l0KHVybDogc3RyaW5nKSA6VmlzaXQge1xuICAgIC8vIFRoZSB2aXNpdCBzZWdtZW50cyBjYW4gaGF2ZSBhcmJpcmFyeSBwbGFjZXMgaW4gdGhlbSBhZnRlciByZWRpcmVjdHNcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGZpbHRlciB0aGVtIGJhc2VkIG9uIHRoZSBmaW5hbCB1cmwuXG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlZ21lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKVxuICAgICAgLmZpbHRlcihpdCA9PiBzbmFwc2hvdC5jb250YWluc1Zpc2l0U2VnbWVudChpdCkpO1xuICAgIHJldHVybiBWaXNpdC5mcm9tU2VnbWVudHMoZmlsdGVyZWRTZWdtZW50cyk7XG4gIH1cblxuICBnZXQgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBub3RpZnlBY3RpdmUoKSB7XG4gICAgLy8gbm9vcC5cbiAgfVxuXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9ucyBjYW4gaGF2ZSBtYW55IGNhbmNlbCBzdGFydCBjeWNsZXMgZHVlIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgLy8gTm9ybWFsbHkgd2UganVzdCBpZ25vcmUgdGhlc2UgYnV0IHRoZXkgYXJlIHRoZSBvbmx5IHdheSBvZiBkZXRlY3RpbmcgaWYgdGhlIGJhY2sgYnV0dG9uXG4gICAgLy8gd2FzIGNsaWNrZWQgZHVyaW5nIGEgY2FuRGVhY3RpdmF0ZSBwcm9taXNlLlxuICAgIC8vIDEuIGEgcm91dGUgaXMgaW4gcHJvZ3Jlc3MgYW5kIGF3YWl0aW5nIGEgY2FuRGVhY3RpdmF0ZUd1YXJkXG4gICAgLy8gMi4gdGhlIHVzZXIgdGhlIGNsaWNrcyB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gU28gdG8gaGFuZGxlIHRoYXQgc2NlbmFyaW8gd2UgbmVlZCB0byBjaGVjayBpZiB3ZSd2ZSBnb3QgYSBjYW4gZGVhY3RpdmF0ZSBpbnRlcmFjdGlvbiBpblxuICAgIC8vIHByb2dyZXNzIGFuZCB0aGUgZG8gdGhlIGFwcHJvcHJpYXRlIGNsZWFuIHVwLlxuICAgIGlmICh0aGlzLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uKHVybCk7XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZpc2l0U2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0U2VnbWVudHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlsbGVnYWxUcmFuc2l0aW9uPFI+KG1lc3NhZ2U6IHN0cmluZyB8IFJvdXRlckV2ZW50KTogUiB7XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGAke21lc3NhZ2UudG9TdHJpbmcoKX0gbm90IHN1cHBvcnRlZCBieSAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGVyVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICByZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnM6IHsgcmVwbGFjZUN1cnJlbnQ6IGJvb2xlYW4gfSA9IHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiByZXNldHRpbmcgYnJvd3NlciBsb2NhdGlvbiB0bzogJHt1cmx9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgcmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2U6IHN0cmluZywgYWN0aXZlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBvcnRhbnQ6IEkgdHJpZWQgdG8gcGVyZm9ybSB0aGlzIGZpeCBhdCBhIGxhdGVyIHBvaW50IGludCBoZSByb3V0aW5nIGN5Y2xlIGJ1dCBpdCBjcmVhdGVkIGFsbCBraW5kcyBvZlxuICAgIC8vIHN0cmFuZ2VuZXNzLlxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcIldPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlwiKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcmVwbGFjaW5nICR7dGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkudXJsfSB3aXRoICR7cG9wcGVkSGlzdG9yeVRvUmVwbGFjZX1gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24ocG9wcGVkSGlzdG9yeVRvUmVwbGFjZSwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcHVzaGluZyAke2FjdGl2ZVVybH0gYmFjayBvbnRvIHRoZSBoaXN0b3J5LmApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbihhY3RpdmVVcmwsIHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pO1xuICB9XG5cblxuICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiBcIlwiO1xuICAgIC8vIExvZ2dlci5nZXQodGhpcykuaW5mbyhgSWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfSA6OiAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0oJHt0aGlzLmRlYnVnU3RhdGUoKX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWJ1Z1N0YXRlKHByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiAocHJvcGVydGllcyB8fCB0aGlzLmRlYnVnUHJvcGVydHlLZXlzKS5tYXAocCA9PiB7XG4gICAgICByZXR1cm4gYCR7cH06ICR7dGhpc1twXX1gO1xuICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0sICR7Y3VycmVudFVybC51cmx9IC0+ICR7bmV4dFVybC51cmx9KWApO1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIoY29tcG9uZW50LCB0aGlzLCBpc1ByaW1hcnlIYW5kbGVyKTtcbiAgICAgIHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuc2V0KGNvbXBvbmVudCwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLmNhbkRlYWN0aXZhdGUoY3VycmVudFVybCwgbmV4dFVybCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYDwtLS0gY2FuRGVhY3RpdmF0ZVBsYWNlKCR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofSk6ICR7cmVzdWx0fWApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbihuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2VgKTtcbiAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBmaW5pc2hlZFxuICAgIC8vIGFsbCBpdCdzIHRoaW5ncy5cbiAgICBjb25zdCBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5kZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgLy8gVE9ETzogSSBuZWVkIHRvIG1ha2UgdGhlIGV4Y2x1c2l2ZSBpbnRlcmFjdGlvbiBjb250ZXh0IGRpc2FsbG93IG5lc3RlZCBhY3Rpdml0aWVzIG9yXG4gICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKFwiY2FuY2VsbGluZyBjdXJyZW50IG5hdmlnYXRpb24gYWN0aXZpdHkuLlwiKTtcbiAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCkudGhlbigoKSA9PiB7XG4gICAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZFxuXG4gIHByb3RlY3RlZCByZWluc3RhdGVVcmxBZnRlckFuZ3VsYXJDaGFuZ2VkSXRPbkNhbmNlbGxhdGlvbih1cmw6IHN0cmluZykge1xuICAgIC8vIEFuZ3VsYXIgY2FsbHMgX3RoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkgb24gY2FuY2VsbGluZyBhbmQgZnVja3Mgb3VyIGhpc3RvcnkuXG4gICAgLy8gU28gdGhpcyBtZWFucyB0aGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRoZSB1cmwgd2Ugd2FudCB0byBnbyBiYWNrIHRvLCBhbmQgbm90IHRoZSBvbmUgdGhhdCB3YXMgb25cbiAgICAvLyBpdCBiZWZvcmUgdGhlIGNhbmNlbCBldmVudCBmaXJlZC5cbiAgICAvLyBTbyB3ZSBuZWVkIHRvOlxuICAgIC8vIC0gcmVwbGFjZSB0aGUganVzdCBpbnNlcnRlZCB1cmwgd2l0aCB0aGUgb25lIHRoYXQgdXNlZCB0byBiZSB0aGVyZS5cbiAgICAvLyAtIHB1c2ggb3VyIGFjdHVhbCB1cmwgYmFjayBvbnRvIHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCB7IHJlcGxhY2VDdXJyZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRldGFjaENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==