@ks89/angular-modal-gallery 11.1.0 → 11.1.1

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 11.1.1
2
+
3
+ ### Refactor
4
+
5
+ - remove circular dependency between ModalGalleryService and ModalGalleryComponent #262 (implemented by @StenCalDabran)
6
+
7
+
1
8
  # 11.1.0
2
9
 
3
10
  ### Features
package/README.md CHANGED
@@ -72,7 +72,7 @@ Despite its name, this library is more than for modal galleries, because I'm int
72
72
  6. **[News](#fire-news-fire)**
73
73
  7. **[FAQS](#question-faqs-question)**
74
74
  8. **[Contributing](#computer-contributing-computer)**
75
- 9. **[A big thank you to](#sparkling_heart-a-big-thank-you-to-sparkling_heart)**
75
+ 9. **[A big 'thank you' to](#sparkling_heart-a-big-thank-you-to-sparkling_heart)**
76
76
  10. **[License](#copyright-license-copyright)**
77
77
 
78
78
  <br>
@@ -166,22 +166,18 @@ From version @ks89/angular-modal-gallery >= 11.0.0, **mousetrap and hammerjs hav
166
166
  | Angular 10 | = 7.2.7 | optional |
167
167
  | Angular 11 | = 7.2.7 | optional |
168
168
  | Angular 12 | = 8.0.1 | optional |
169
- | Angular 13 | &gt;= 9.0.0 | optional |
170
- | Angular 14 | &gt;= 9.0.0 | optional |
171
- | Angular 15 | &gt;= 10.0.0 | optional |
169
+ | Angular 13 | = 9.1.0 | optional |
170
+ | Angular 14 | = 9.1.0 | optional |
171
+ | Angular 15 | = 10.0.1 | optional |
172
172
  | Angular 16 | &gt;= 11.0.0 | optional |
173
173
 
174
- *Version 8.0.0 requires at least Angular 12.*
175
- *Version 9.0.0 requires at least Angular 13.*
176
- *Version 10.0.0 requires at least Angular 15.*
177
- *Version 11.0.0 requires at least Angular 16.*
178
-
179
174
  <br>
180
175
 
181
176
  ## :fire: News :fire:
182
177
 
183
178
  **More than 100 releases in two years**, and more to come... :)
184
179
 
180
+ - 09/12/2023 - 11.1.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
185
181
  - 08/16/2023 - 11.1.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
186
182
  - 08/06/2023 - 11.1.0-rc.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
187
183
  - 07/08/2023 - 11.0.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
@@ -196,12 +192,7 @@ From version @ks89/angular-modal-gallery >= 11.0.0, **mousetrap and hammerjs hav
196
192
  - 11/06/2021 - 9.0.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
197
193
  - 09/27/2021 - 8.0.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
198
194
  - 07/10/2021 - 8.0.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
199
- - 06/13/2021 - 8.0.0-rc.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
200
- - 11/22/2020 - 8.0.0-beta.5 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
201
- - 08/14/2020 - 8.0.0-beta.4 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
202
- - 08/12/2020 - 8.0.0-beta.3 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
203
- - 06/02/2020 - 8.0.0-beta.2 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
204
- - 05/02/2020 - 8.0.0-beta.1 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
195
+ - - ... (many beta 8.x.x versions)
205
196
  - 12/05/2020 - 7.2.7 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
206
197
  - - ... (many minor 7.x.x versions)
207
198
  - 12/06/2018 - 7.0.0 - @ks89/angular-modal-gallery - [HERE](https://github.com/Ks89/angular-modal-gallery/releases)
@@ -0,0 +1,43 @@
1
+ import { Injectable, Injector } from '@angular/core';
2
+ import { ModalGalleryRef } from './modal-gallery-ref';
3
+ import { ModalGalleryComponent } from './modal-gallery.component';
4
+ import { DIALOG_DATA } from './modal-gallery.tokens';
5
+ import { ComponentPortal } from '@angular/cdk/portal';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./modal-gallery.service";
8
+ class AttachToOverlayService {
9
+ constructor(injector, modalGalleryService) {
10
+ this.injector = injector;
11
+ this.modalGalleryService = modalGalleryService;
12
+ }
13
+ /**
14
+ * To be called by a provider with the APP_INITIALIZER token.
15
+ */
16
+ initialize() {
17
+ this.modalGalleryService.triggerAttachToOverlay.subscribe(payload => this.attachToOverlay(payload));
18
+ }
19
+ /**
20
+ * Private method to attach ModalGalleryComponent to the overlay.
21
+ * @param payload {@link AttachToOverlayPayload} with all necessary information
22
+ * @private
23
+ */
24
+ attachToOverlay(payload) {
25
+ const injector = Injector.create({
26
+ parent: this.injector,
27
+ providers: [
28
+ { provide: ModalGalleryRef, useValue: payload.dialogRef },
29
+ { provide: DIALOG_DATA, useValue: payload.config }
30
+ ]
31
+ });
32
+ const containerPortal = new ComponentPortal(ModalGalleryComponent, null, injector);
33
+ payload.overlayRef.attach(containerPortal);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AttachToOverlayService, deps: [{ token: i0.Injector }, { token: i1.ModalGalleryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AttachToOverlayService, providedIn: 'root' }); }
37
+ }
38
+ export { AttachToOverlayService };
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AttachToOverlayService, decorators: [{
40
+ type: Injectable,
41
+ args: [{ providedIn: 'root' }]
42
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ModalGalleryService }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLXRvLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC1nYWxsZXJ5L2F0dGFjaC10by1vdmVybGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUd0RCxNQUNhLHNCQUFzQjtJQUNqQyxZQUFvQixRQUFrQixFQUFVLG1CQUF3QztRQUFwRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFFNUY7O09BRUc7SUFDSSxVQUFVO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FBQyxPQUErQjtRQUNyRCxNQUFNLFFBQVEsR0FBYSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN6RCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUU7YUFDbkQ7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs4R0ExQlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVCxNQUFNOztTQUNuQixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxHYWxsZXJ5UmVmIH0gZnJvbSAnLi9tb2RhbC1nYWxsZXJ5LXJlZic7XG5pbXBvcnQgeyBNb2RhbEdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWdhbGxlcnkuY29tcG9uZW50JztcbmltcG9ydCB7IERJQUxPR19EQVRBIH0gZnJvbSAnLi9tb2RhbC1nYWxsZXJ5LnRva2Vucyc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEF0dGFjaFRvT3ZlcmxheVBheWxvYWQsIE1vZGFsR2FsbGVyeVNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWdhbGxlcnkuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXR0YWNoVG9PdmVybGF5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIG1vZGFsR2FsbGVyeVNlcnZpY2U6IE1vZGFsR2FsbGVyeVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIFRvIGJlIGNhbGxlZCBieSBhIHByb3ZpZGVyIHdpdGggdGhlIEFQUF9JTklUSUFMSVpFUiB0b2tlbi5cbiAgICovXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxHYWxsZXJ5U2VydmljZS50cmlnZ2VyQXR0YWNoVG9PdmVybGF5LnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuYXR0YWNoVG9PdmVybGF5KHBheWxvYWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byBhdHRhY2ggTW9kYWxHYWxsZXJ5Q29tcG9uZW50IHRvIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcGF5bG9hZCB7QGxpbmsgQXR0YWNoVG9PdmVybGF5UGF5bG9hZH0gd2l0aCBhbGwgbmVjZXNzYXJ5IGluZm9ybWF0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGF0dGFjaFRvT3ZlcmxheShwYXlsb2FkOiBBdHRhY2hUb092ZXJsYXlQYXlsb2FkKTogdm9pZCB7XG4gICAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE1vZGFsR2FsbGVyeVJlZiwgdXNlVmFsdWU6IHBheWxvYWQuZGlhbG9nUmVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRElBTE9HX0RBVEEsIHVzZVZhbHVlOiBwYXlsb2FkLmNvbmZpZyB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE1vZGFsR2FsbGVyeUNvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuICAgIHBheWxvYWQub3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcbiAgfVxufVxuIl19
@@ -1,9 +1,6 @@
1
- import { Injectable, Injector } from '@angular/core';
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
2
  import { OverlayConfig } from '@angular/cdk/overlay';
3
- import { ComponentPortal } from '@angular/cdk/portal';
4
3
  import { Subject } from 'rxjs';
5
- import { DIALOG_DATA } from './modal-gallery.tokens';
6
- import { ModalGalleryComponent } from './modal-gallery.component';
7
4
  import { ModalGalleryRef } from './modal-gallery-ref';
8
5
  import * as i0 from "@angular/core";
9
6
  import * as i1 from "@angular/cdk/overlay";
@@ -14,12 +11,12 @@ const DEFAULT_DIALOG_CONFIG = {
14
11
  panelClass: 'ks-modal-gallery-panel'
15
12
  };
16
13
  class ModalGalleryService {
17
- constructor(injector, overlay, configService) {
18
- this.injector = injector;
14
+ constructor(overlay, configService) {
19
15
  this.overlay = overlay;
20
16
  this.configService = configService;
21
17
  this.updateImages = new Subject();
22
18
  this.updateImages$ = this.updateImages.asObservable();
19
+ this.triggerAttachToOverlay = new EventEmitter();
23
20
  }
24
21
  /**
25
22
  * Method to open modal gallery passing the configuration
@@ -32,7 +29,11 @@ class ModalGalleryService {
32
29
  // Instantiate a reference to the dialog
33
30
  this.dialogRef = new ModalGalleryRef(overlayRef);
34
31
  // Attach dialog container
35
- const overlayComponent = this.attachDialogContainer(overlayRef, config, this.dialogRef);
32
+ this.triggerAttachToOverlay.emit({
33
+ overlayRef,
34
+ config,
35
+ dialogRef: this.dialogRef
36
+ });
36
37
  overlayRef.backdropClick().subscribe(() => {
37
38
  if (this.dialogRef) {
38
39
  this.dialogRef.closeModal();
@@ -143,46 +144,26 @@ class ModalGalleryService {
143
144
  const overlayConfig = this.getOverlayConfig();
144
145
  return this.overlay.create(overlayConfig);
145
146
  }
146
- /**
147
- * Private method to attach ModalGalleryComponent to the overlay.
148
- * @param overlayRef OverlayRef is the Overlay object created using Angular CDK APIs
149
- * @param config ModalGalleryConfig that contains: id, array of images, current image and optionally the configuration object
150
- * @param dialogRef ModalGalleryRef is the object to control the dialog instance
151
- * @private
152
- */
153
- attachDialogContainer(overlayRef, config, dialogRef) {
154
- const injector = Injector.create({
155
- parent: this.injector,
156
- providers: [
157
- { provide: ModalGalleryRef, useValue: dialogRef },
158
- { provide: DIALOG_DATA, useValue: config }
159
- ]
160
- });
161
- const containerPortal = new ComponentPortal(ModalGalleryComponent, null, injector);
162
- const containerRef = overlayRef.attach(containerPortal);
163
- return containerRef.instance;
164
- }
165
147
  /**
166
148
  * Private method to create an OverlayConfig instance
167
149
  * @private
168
150
  */
169
151
  getOverlayConfig() {
170
152
  const positionStrategy = this.overlay.position().global().centerHorizontally().centerVertically();
171
- const overlayConfig = new OverlayConfig({
153
+ return new OverlayConfig({
172
154
  hasBackdrop: DEFAULT_DIALOG_CONFIG.hasBackdrop,
173
155
  backdropClass: DEFAULT_DIALOG_CONFIG.backdropClass,
174
156
  panelClass: DEFAULT_DIALOG_CONFIG.panelClass,
175
157
  scrollStrategy: this.overlay.scrollStrategies.block(),
176
158
  positionStrategy
177
159
  });
178
- return overlayConfig;
179
160
  }
180
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModalGalleryService, deps: [{ token: i0.Injector }, { token: i1.Overlay }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModalGalleryService, deps: [{ token: i1.Overlay }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
181
162
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModalGalleryService, providedIn: 'root' }); }
182
163
  }
183
164
  export { ModalGalleryService };
184
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModalGalleryService, decorators: [{
185
166
  type: Injectable,
186
167
  args: [{ providedIn: 'root' }]
187
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Overlay }, { type: i2.ConfigService }]; } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZ2FsbGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsLWdhbGxlcnkvbW9kYWwtZ2FsbGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQW1DLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFjdEQsTUFBTSxxQkFBcUIsR0FBc0I7SUFDL0MsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLDJCQUEyQjtJQUMxQyxVQUFVLEVBQUUsd0JBQXdCO0NBQ3JDLENBQUM7QUFFRixNQUNhLG1CQUFtQjtJQU05QixZQUFvQixRQUFrQixFQUFVLE9BQWdCLEVBQVUsYUFBNEI7UUFBbEYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUw5RixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBSXdELENBQUM7SUFFMUc7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxNQUEwQjtRQUM3Qiw4Q0FBOEM7UUFDOUMsTUFBTSxVQUFVLEdBQWUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BELHdDQUF3QztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELDBCQUEwQjtRQUMxQixNQUFNLGdCQUFnQixHQUEwQixJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0csVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsRUFBVSxFQUFFLFlBQXFCO1FBQ3JDLE1BQU0sU0FBUyxHQUEwQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3QjtTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUFlO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBc0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLEtBQXNCO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsS0FBa0I7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBa0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssYUFBYTtRQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxxQkFBcUIsQ0FBQyxVQUFzQixFQUFFLE1BQTBCLEVBQUUsU0FBMEI7UUFDMUcsTUFBTSxRQUFRLEdBQWEsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO2dCQUNqRCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTthQUMzQztTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRixNQUFNLFlBQVksR0FBd0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU3RixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLGdCQUFnQixHQUEyQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUxSCxNQUFNLGFBQWEsR0FBa0IsSUFBSSxhQUFhLENBQUM7WUFDckQsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7WUFDOUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLGFBQWE7WUFDbEQsVUFBVSxFQUFFLHFCQUFxQixDQUFDLFVBQVU7WUFDNUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQjtTQUNqQixDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOzhHQWxMVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07O1NBQ25CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERJQUxPR19EQVRBIH0gZnJvbSAnLi9tb2RhbC1nYWxsZXJ5LnRva2Vucyc7XG5pbXBvcnQgeyBNb2RhbEdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWdhbGxlcnkuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsR2FsbGVyeVJlZiB9IGZyb20gJy4vbW9kYWwtZ2FsbGVyeS1yZWYnO1xuaW1wb3J0IHsgSW1hZ2UsIEltYWdlTW9kYWxFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2ltYWdlLmNsYXNzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBCdXR0b25FdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2J1dHRvbnMtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb2RhbEdhbGxlcnlDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbC9tb2RhbC1nYWxsZXJ5LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvbGliLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vLyBwcml2YXRlIGludGVyZmFjZSB1c2VkIG9ubHkgaW4gdGhpcyBmaWxlXG5pbnRlcmZhY2UgTW9kYWxEaWFsb2dDb25maWcge1xuICBwYW5lbENsYXNzOiBzdHJpbmc7XG4gIGhhc0JhY2tkcm9wOiBib29sZWFuO1xuICBiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG59XG5cbmNvbnN0IERFRkFVTFRfRElBTE9HX0NPTkZJRzogTW9kYWxEaWFsb2dDb25maWcgPSB7XG4gIGhhc0JhY2tkcm9wOiB0cnVlLFxuICBiYWNrZHJvcENsYXNzOiAna3MtbW9kYWwtZ2FsbGVyeS1iYWNrZHJvcCcsXG4gIHBhbmVsQ2xhc3M6ICdrcy1tb2RhbC1nYWxsZXJ5LXBhbmVsJ1xufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNb2RhbEdhbGxlcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1cGRhdGVJbWFnZXMgPSBuZXcgU3ViamVjdDxJbWFnZVtdPigpO1xuICB1cGRhdGVJbWFnZXMkID0gdGhpcy51cGRhdGVJbWFnZXMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1vZGFsR2FsbGVyeVJlZiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBvcGVuIG1vZGFsIGdhbGxlcnkgcGFzc2luZyB0aGUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gY29uZmlnIE1vZGFsR2FsbGVyeUNvbmZpZyB0aGF0IGNvbnRhaW5zOiBpZCwgYXJyYXkgb2YgaW1hZ2VzLCBjdXJyZW50IGltYWdlIGFuZCBvcHRpb25hbGx5IHRoZSBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKiBAcmV0dXJuIE1vZGFsR2FsbGVyeVJlZiB8IHVuZGVmaW5lZCBpcyB0aGUgb2JqZWN0IHVzZWQgdG8gbGlzdGVuIGZvciBldmVudHMuXG4gICAqL1xuICBvcGVuKGNvbmZpZzogTW9kYWxHYWxsZXJ5Q29uZmlnKTogTW9kYWxHYWxsZXJ5UmVmIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBSZXR1cm5zIGFuIE92ZXJsYXlSZWYgd2hpY2ggaXMgYSBQb3J0YWxIb3N0XG4gICAgY29uc3Qgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgIC8vIEluc3RhbnRpYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBkaWFsb2dcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IG5ldyBNb2RhbEdhbGxlcnlSZWYob3ZlcmxheVJlZik7XG4gICAgLy8gQXR0YWNoIGRpYWxvZyBjb250YWluZXJcbiAgICBjb25zdCBvdmVybGF5Q29tcG9uZW50OiBNb2RhbEdhbGxlcnlDb21wb25lbnQgPSB0aGlzLmF0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcsIHRoaXMuZGlhbG9nUmVmKTtcbiAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGNsb3NlIGEgbW9kYWwgZ2FsbGVyeSBwcmV2aW91c2x5IG9wZW5lZC5cbiAgICogQHBhcmFtIGlkIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBtb2RhbCBnYWxsZXJ5XG4gICAqIEBwYXJhbSBjbGlja091dHNpZGUgYm9vbGVhbiBpcyB0cnVlIGlmIGNsb3NlZCBjbGlja2luZyBvbiB0aGUgbW9kYWwgYmFja2Ryb3AsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGNsb3NlKGlkOiBudW1iZXIsIGNsaWNrT3V0c2lkZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyhpZCk7XG4gICAgaWYgKGNsaWNrT3V0c2lkZSkge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmICYmIGxpYkNvbmZpZyAmJiBsaWJDb25maWcuZW5hYmxlQ2xvc2VPdXRzaWRlKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIHVwZGF0ZSBpbWFnZXMgYXJyYXkuXG4gICAqIEBwYXJhbSBpbWFnZXMgSW1hZ2VbXSB1cGRhdGVkIGFycmF5IG9mIGltYWdlc1xuICAgKi9cbiAgdXBkYXRlTW9kYWxJbWFnZXMoaW1hZ2VzOiBJbWFnZVtdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVJbWFnZXMubmV4dChpbWFnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBlbWl0IGNsb3NlIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0Q2xvc2UoZXZlbnQ6IEltYWdlTW9kYWxFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dSZWYuZW1pdENsb3NlKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBzaG93IGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0U2hvdyhldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0U2hvdyhldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGVtaXQgZmlyc3RJbWFnZSBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEltYWdlTW9kYWxFdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdEZpcnN0SW1hZ2UoZXZlbnQ6IEltYWdlTW9kYWxFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dSZWYuZW1pdEZpcnN0SW1hZ2UoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBlbWl0IGxhc3RJbWFnZSBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEltYWdlTW9kYWxFdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdExhc3RJbWFnZShldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0TGFzdEltYWdlKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBoYXNEYXRhIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0SGFzRGF0YShldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0SGFzRGF0YShldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGVtaXQgYnV0dG9uQmVmb3JlSG9vayBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEJ1dHRvbkV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0QnV0dG9uQmVmb3JlSG9vayhldmVudDogQnV0dG9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmVtaXRCdXR0b25CZWZvcmVIb29rKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBidXR0b25BZnRlckhvb2sgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBCdXR0b25FdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdEJ1dHRvbkFmdGVySG9vayhldmVudDogQnV0dG9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmVtaXRCdXR0b25BZnRlckhvb2soZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgbWV0aG9kIHRvIGNyZWF0ZSBhbiBPdmVybGF5IHVzaW5nIEFuZ3VsYXIgQ0RLIEFQSXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKCk7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gYXR0YWNoIE1vZGFsR2FsbGVyeUNvbXBvbmVudCB0byB0aGUgb3ZlcmxheS5cbiAgICogQHBhcmFtIG92ZXJsYXlSZWYgT3ZlcmxheVJlZiBpcyB0aGUgT3ZlcmxheSBvYmplY3QgY3JlYXRlZCB1c2luZyBBbmd1bGFyIENESyBBUElzXG4gICAqIEBwYXJhbSBjb25maWcgTW9kYWxHYWxsZXJ5Q29uZmlnIHRoYXQgY29udGFpbnM6IGlkLCBhcnJheSBvZiBpbWFnZXMsIGN1cnJlbnQgaW1hZ2UgYW5kIG9wdGlvbmFsbHkgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqIEBwYXJhbSBkaWFsb2dSZWYgTW9kYWxHYWxsZXJ5UmVmIGlzIHRoZSBvYmplY3QgdG8gY29udHJvbCB0aGUgZGlhbG9nIGluc3RhbmNlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGF0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBjb25maWc6IE1vZGFsR2FsbGVyeUNvbmZpZywgZGlhbG9nUmVmOiBNb2RhbEdhbGxlcnlSZWYpOiBNb2RhbEdhbGxlcnlDb21wb25lbnQge1xuICAgIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNb2RhbEdhbGxlcnlSZWYsIHVzZVZhbHVlOiBkaWFsb2dSZWYgfSxcbiAgICAgICAgeyBwcm92aWRlOiBESUFMT0dfREFUQSwgdXNlVmFsdWU6IGNvbmZpZyB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE1vZGFsR2FsbGVyeUNvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE1vZGFsR2FsbGVyeUNvbXBvbmVudD4gPSBvdmVybGF5UmVmLmF0dGFjaChjb250YWluZXJQb3J0YWwpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byBjcmVhdGUgYW4gT3ZlcmxheUNvbmZpZyBpbnN0YW5jZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3k6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCk7XG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IERFRkFVTFRfRElBTE9HX0NPTkZJRy5oYXNCYWNrZHJvcCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IERFRkFVTFRfRElBTE9HX0NPTkZJRy5iYWNrZHJvcENsYXNzLFxuICAgICAgcGFuZWxDbGFzczogREVGQVVMVF9ESUFMT0dfQ09ORklHLnBhbmVsQ2xhc3MsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3lcbiAgICB9KTtcblxuICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xuICB9XG59XG4iXX0=
168
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i2.ConfigService }]; } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZ2FsbGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsLWdhbGxlcnkvbW9kYWwtZ2FsbGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBbUMsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFrQ3RELE1BQU0scUJBQXFCLEdBQXNCO0lBQy9DLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSwyQkFBMkI7SUFDMUMsVUFBVSxFQUFFLHdCQUF3QjtDQUNyQyxDQUFDO0FBRUYsTUFDYSxtQkFBbUI7SUFROUIsWUFBb0IsT0FBZ0IsRUFBVSxhQUE0QjtRQUF0RCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQbEUsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUkxQywyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUczRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxNQUEwQjtRQUM3Qiw4Q0FBOEM7UUFDOUMsTUFBTSxVQUFVLEdBQWUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BELHdDQUF3QztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FB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UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFILE9BQU8sSUFBSSxhQUFhLENBQUM7WUFDdkIsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFdBQVc7WUFDOUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLGFBQWE7WUFDbEQsVUFBVSxFQUFFLHFCQUFxQixDQUFDLFVBQVU7WUFDNUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQjtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhLVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQURQLE1BQU07O1NBQ2xCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTW9kYWxHYWxsZXJ5UmVmIH0gZnJvbSAnLi9tb2RhbC1nYWxsZXJ5LXJlZic7XG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VNb2RhbEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvaW1hZ2UuY2xhc3MnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1dHRvbkV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvYnV0dG9ucy1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vZGFsR2FsbGVyeUNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL21vZGFsLWdhbGxlcnktY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaWJDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbC9saWItY29uZmlnLmludGVyZmFjZSc7XG5cbi8vIHByaXZhdGUgaW50ZXJmYWNlIHVzZWQgb25seSBpbiB0aGlzIGZpbGVcbmludGVyZmFjZSBNb2RhbERpYWxvZ0NvbmZpZyB7XG4gIHBhbmVsQ2xhc3M6IHN0cmluZztcbiAgaGFzQmFja2Ryb3A6IGJvb2xlYW47XG4gIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXlsb2FkIHRvIGJlIGVtaXR0ZWQgdmlhIHtAbGluayB0cmlnZ2VyQXR0YWNoVG9PdmVybGF5fSB0byBlbmFibGUge0BsaW5rIEF0dGFjaFRvT3ZlcmxheVNlcnZpY2V9XG4gKiB0byBhdHRhY2ggdGhlIHtAbGluayBNb2RhbEdhbGxlcnlDb21wb25lbnR9IHRvIHRoZSBvdmVybGF5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNoVG9PdmVybGF5UGF5bG9hZCB7XG4gIC8qKlxuICAgKiBPdmVybGF5IG9iamVjdCBjcmVhdGVkIHVzaW5nIEFuZ3VsYXIgQ0RLIEFQSXNcbiAgICovXG4gIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIC8qKlxuICAgKiBEaWFsb2cgZGF0YSB0byBiZSBpbmplY3RlZCBpbnRvIHRoZSB7QGxpbmsgTW9kYWxHYWxsZXJ5Q29tcG9uZW50fVxuICAgKiBjb250YWluczogaWQsIGFycmF5IG9mIGltYWdlcywgY3VycmVudCBpbWFnZSBhbmQgb3B0aW9uYWxseSB0aGUgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICovXG4gIGNvbmZpZzogTW9kYWxHYWxsZXJ5Q29uZmlnO1xuICAvKipcbiAgICogT2JqZWN0IHRvIGNvbnRyb2wgdGhlIGRpYWxvZyBpbnN0YW5jZVxuICAgKi9cbiAgZGlhbG9nUmVmOiBNb2RhbEdhbGxlcnlSZWY7XG59XG5cbmNvbnN0IERFRkFVTFRfRElBTE9HX0NPTkZJRzogTW9kYWxEaWFsb2dDb25maWcgPSB7XG4gIGhhc0JhY2tkcm9wOiB0cnVlLFxuICBiYWNrZHJvcENsYXNzOiAna3MtbW9kYWwtZ2FsbGVyeS1iYWNrZHJvcCcsXG4gIHBhbmVsQ2xhc3M6ICdrcy1tb2RhbC1nYWxsZXJ5LXBhbmVsJ1xufTtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTW9kYWxHYWxsZXJ5U2VydmljZSB7XG4gIHByaXZhdGUgdXBkYXRlSW1hZ2VzID0gbmV3IFN1YmplY3Q8SW1hZ2VbXT4oKTtcbiAgdXBkYXRlSW1hZ2VzJCA9IHRoaXMudXBkYXRlSW1hZ2VzLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgZGlhbG9nUmVmOiBNb2RhbEdhbGxlcnlSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHRyaWdnZXJBdHRhY2hUb092ZXJsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPEF0dGFjaFRvT3ZlcmxheVBheWxvYWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gb3BlbiBtb2RhbCBnYWxsZXJ5IHBhc3NpbmcgdGhlIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGNvbmZpZyBNb2RhbEdhbGxlcnlDb25maWcgdGhhdCBjb250YWluczogaWQsIGFycmF5IG9mIGltYWdlcywgY3VycmVudCBpbWFnZSBhbmQgb3B0aW9uYWxseSB0aGUgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICogQHJldHVybiBNb2RhbEdhbGxlcnlSZWYgfCB1bmRlZmluZWQgaXMgdGhlIG9iamVjdCB1c2VkIHRvIGxpc3RlbiBmb3IgZXZlbnRzLlxuICAgKi9cbiAgb3Blbihjb25maWc6IE1vZGFsR2FsbGVyeUNvbmZpZyk6IE1vZGFsR2FsbGVyeVJlZiB8IHVuZGVmaW5lZCB7XG4gICAgLy8gUmV0dXJucyBhbiBPdmVybGF5UmVmIHdoaWNoIGlzIGEgUG9ydGFsSG9zdFxuICAgIGNvbnN0IG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICAvLyBJbnN0YW50aWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgZGlhbG9nXG4gICAgdGhpcy5kaWFsb2dSZWYgPSBuZXcgTW9kYWxHYWxsZXJ5UmVmKG92ZXJsYXlSZWYpO1xuICAgIC8vIEF0dGFjaCBkaWFsb2cgY29udGFpbmVyXG4gICAgdGhpcy50cmlnZ2VyQXR0YWNoVG9PdmVybGF5LmVtaXQoe1xuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRpYWxvZ1JlZjogdGhpcy5kaWFsb2dSZWZcbiAgICB9KTtcbiAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGNsb3NlIGEgbW9kYWwgZ2FsbGVyeSBwcmV2aW91c2x5IG9wZW5lZC5cbiAgICogQHBhcmFtIGlkIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBtb2RhbCBnYWxsZXJ5XG4gICAqIEBwYXJhbSBjbGlja091dHNpZGUgYm9vbGVhbiBpcyB0cnVlIGlmIGNsb3NlZCBjbGlja2luZyBvbiB0aGUgbW9kYWwgYmFja2Ryb3AsIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIGNsb3NlKGlkOiBudW1iZXIsIGNsaWNrT3V0c2lkZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyhpZCk7XG4gICAgaWYgKGNsaWNrT3V0c2lkZSkge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmICYmIGxpYkNvbmZpZyAmJiBsaWJDb25maWcuZW5hYmxlQ2xvc2VPdXRzaWRlKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlTW9kYWwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIHVwZGF0ZSBpbWFnZXMgYXJyYXkuXG4gICAqIEBwYXJhbSBpbWFnZXMgSW1hZ2VbXSB1cGRhdGVkIGFycmF5IG9mIGltYWdlc1xuICAgKi9cbiAgdXBkYXRlTW9kYWxJbWFnZXMoaW1hZ2VzOiBJbWFnZVtdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVJbWFnZXMubmV4dChpbWFnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBlbWl0IGNsb3NlIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0Q2xvc2UoZXZlbnQ6IEltYWdlTW9kYWxFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dSZWYuZW1pdENsb3NlKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBzaG93IGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0U2hvdyhldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0U2hvdyhldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGVtaXQgZmlyc3RJbWFnZSBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEltYWdlTW9kYWxFdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdEZpcnN0SW1hZ2UoZXZlbnQ6IEltYWdlTW9kYWxFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dSZWYuZW1pdEZpcnN0SW1hZ2UoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBlbWl0IGxhc3RJbWFnZSBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEltYWdlTW9kYWxFdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdExhc3RJbWFnZShldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0TGFzdEltYWdlKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBoYXNEYXRhIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgSW1hZ2VNb2RhbEV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0SGFzRGF0YShldmVudDogSW1hZ2VNb2RhbEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5lbWl0SGFzRGF0YShldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGVtaXQgYnV0dG9uQmVmb3JlSG9vayBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IEJ1dHRvbkV2ZW50IGlzIHRoZSBldmVudCBwYXlsb2FkXG4gICAqL1xuICBlbWl0QnV0dG9uQmVmb3JlSG9vayhldmVudDogQnV0dG9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmVtaXRCdXR0b25CZWZvcmVIb29rKGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZW1pdCBidXR0b25BZnRlckhvb2sgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBCdXR0b25FdmVudCBpcyB0aGUgZXZlbnQgcGF5bG9hZFxuICAgKi9cbiAgZW1pdEJ1dHRvbkFmdGVySG9vayhldmVudDogQnV0dG9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nUmVmLmVtaXRCdXR0b25BZnRlckhvb2soZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgbWV0aG9kIHRvIGNyZWF0ZSBhbiBPdmVybGF5IHVzaW5nIEFuZ3VsYXIgQ0RLIEFQSXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKCk7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gY3JlYXRlIGFuIE92ZXJsYXlDb25maWcgaW5zdGFuY2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5OiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpO1xuICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogREVGQVVMVF9ESUFMT0dfQ09ORklHLmhhc0JhY2tkcm9wLFxuICAgICAgYmFja2Ryb3BDbGFzczogREVGQVVMVF9ESUFMT0dfQ09ORklHLmJhY2tkcm9wQ2xhc3MsXG4gICAgICBwYW5lbENsYXNzOiBERUZBVUxUX0RJQUxPR19DT05GSUcucGFuZWxDbGFzcyxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -21,12 +21,13 @@
21
21
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  SOFTWARE.
23
23
  */
24
- import { NgModule } from '@angular/core';
24
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
25
25
  import { CommonModule } from '@angular/common';
26
26
  import { OverlayModule } from '@angular/cdk/overlay';
27
27
  import { COMPONENTS, CarouselComponent } from './components/components';
28
28
  import { PlainGalleryComponent } from './components/plain-gallery/plain-gallery.component';
29
29
  import { DIRECTIVES } from './directives/directives';
30
+ import { AttachToOverlayService } from './components/modal-gallery/attach-to-overlay.service';
30
31
  import * as i0 from "@angular/core";
31
32
  import * as i1 from "./components/plain-gallery/plain-gallery.component";
32
33
  import * as i2 from "./components/carousel/carousel.component";
@@ -55,7 +56,16 @@ import * as i21 from "./directives/swipe.directive";
55
56
  class GalleryModule {
56
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GalleryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
57
58
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: GalleryModule, declarations: [i1.PlainGalleryComponent, i2.CarouselComponent, i3.CarouselPreviewsComponent, i4.UpperButtonsComponent, i5.DotsComponent, i6.PreviewsComponent, i7.CurrentImageComponent, i8.LoadingSpinnerComponent, i9.AccessibleComponent, i10.ModalGalleryComponent, i11.ClickOutsideDirective, i12.SizeDirective, i13.KeyboardNavigationDirective, i14.WrapDirective, i15.DirectionDirective, i16.ATagBgImageDirective, i17.DescriptionDirective, i18.MarginDirective, i19.MaxSizeDirective, i20.FallbackImageDirective, i21.SwipeDirective], imports: [CommonModule, OverlayModule], exports: [PlainGalleryComponent, CarouselComponent] }); }
58
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GalleryModule, imports: [CommonModule, OverlayModule] }); }
59
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GalleryModule, providers: [
60
+ {
61
+ provide: APP_INITIALIZER,
62
+ multi: true,
63
+ deps: [AttachToOverlayService],
64
+ useFactory: (service) => {
65
+ return () => service.initialize();
66
+ }
67
+ }
68
+ ], imports: [CommonModule, OverlayModule] }); }
59
69
  }
60
70
  export { GalleryModule };
61
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GalleryModule, decorators: [{
@@ -63,7 +73,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
63
73
  args: [{
64
74
  imports: [CommonModule, OverlayModule],
65
75
  declarations: [COMPONENTS, DIRECTIVES],
76
+ providers: [
77
+ {
78
+ provide: APP_INITIALIZER,
79
+ multi: true,
80
+ deps: [AttachToOverlayService],
81
+ useFactory: (service) => {
82
+ return () => service.initialize();
83
+ }
84
+ }
85
+ ],
66
86
  exports: [PlainGalleryComponent, CarouselComponent]
67
87
  }]
68
88
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL21vZGFsLWdhbGxlcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJEOztHQUVHO0FBQ0gsTUFLYSxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSw4aEJBSmQsWUFBWSxFQUFFLGFBQWEsYUFFM0IscUJBQXFCLEVBQUUsaUJBQWlCOytHQUV2QyxhQUFhLFlBSmQsWUFBWSxFQUFFLGFBQWE7O1NBSTFCLGFBQWE7MkZBQWIsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUN0QyxZQUFZLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuXG4gQ29weXJpZ2h0IChDKSAyMDE3LTIwMjMgU3RlZmFubyBDYXBwYSAoS3M4OSlcblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OIElORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IENPTVBPTkVOVFMsIENhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgUGxhaW5HYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsYWluLWdhbGxlcnkvcGxhaW4tZ2FsbGVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRElSRUNUSVZFUyB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzJztcblxuLyoqXG4gKiBNb2R1bGUgdG8gaW1wb3J0IGl0IGluIHRoZSByb290IG1vZHVsZSBvZiB5b3VyIGFwcGxpY2F0aW9uLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQ09NUE9ORU5UUywgRElSRUNUSVZFU10sXG4gIGV4cG9ydHM6IFtQbGFpbkdhbGxlcnlDb21wb25lbnQsIENhcm91c2VsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJ5TW9kdWxlIHt9XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL21vZGFsLWdhbGxlcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5Rjs7R0FFRztBQUNILE1BZWEsYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsOGhCQWRkLFlBQVksRUFBRSxhQUFhLGFBWTNCLHFCQUFxQixFQUFFLGlCQUFpQjsrR0FFdkMsYUFBYSxhQVpiO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUM5QixVQUFVLEVBQUUsQ0FBQyxPQUErQixFQUFnQixFQUFFO29CQUM1RCxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEMsQ0FBQzthQUNGO1NBQ0YsWUFYUyxZQUFZLEVBQUUsYUFBYTs7U0FjMUIsYUFBYTsyRkFBYixhQUFhO2tCQWZ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7b0JBQ3RDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsc0JBQXNCLENBQUM7NEJBQzlCLFVBQVUsRUFBRSxDQUFDLE9BQStCLEVBQWdCLEVBQUU7Z0NBQzVELE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDOzRCQUNwQyxDQUFDO3lCQUNGO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO2lCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBDT01QT05FTlRTLCBDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnRzJztcbmltcG9ydCB7IFBsYWluR2FsbGVyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbGFpbi1nYWxsZXJ5L3BsYWluLWdhbGxlcnkuY29tcG9uZW50JztcbmltcG9ydCB7IERJUkVDVElWRVMgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBBdHRhY2hUb092ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnRzL21vZGFsLWdhbGxlcnkvYXR0YWNoLXRvLW92ZXJsYXkuc2VydmljZSc7XG5cbi8qKlxuICogTW9kdWxlIHRvIGltcG9ydCBpdCBpbiB0aGUgcm9vdCBtb2R1bGUgb2YgeW91ciBhcHBsaWNhdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0NPTVBPTkVOVFMsIERJUkVDVElWRVNdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtBdHRhY2hUb092ZXJsYXlTZXJ2aWNlXSxcbiAgICAgIHVzZUZhY3Rvcnk6IChzZXJ2aWNlOiBBdHRhY2hUb092ZXJsYXlTZXJ2aWNlKTogKCgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHNlcnZpY2UuaW5pdGlhbGl6ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgXSxcbiAgZXhwb3J0czogW1BsYWluR2FsbGVyeUNvbXBvbmVudCwgQ2Fyb3VzZWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlNb2R1bGUge31cbiJdfQ==