@acorex/components 18.10.14 → 18.10.16
Sign up to get free protection for your applications and to get access to all the features.
- package/button-group/lib/button-group.component.d.ts +5 -5
- package/esm2022/button-group/lib/button-group.component.mjs +10 -8
- package/esm2022/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.mjs +4 -4
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.mjs +3 -3
- package/esm2022/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.mjs +3 -3
- package/esm2022/image-editor/lib/image-editor-view/image-editor-view.component.mjs +15 -3
- package/esm2022/image-editor/lib/image-editor.service.mjs +4 -3
- package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +8 -3
- package/esm2022/popover/lib/popover.component.mjs +55 -34
- package/esm2022/popup/lib/popup.component.mjs +2 -2
- package/esm2022/select-box/lib/select-box.component.mjs +3 -3
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +9 -3
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +3 -3
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +3 -1
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +3 -1
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +3 -1
- package/fesm2022/acorex-components-button-group.mjs +9 -7
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +24 -11
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +7 -2
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +54 -33
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +16 -4
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.d.ts +1 -1
- package/image-editor/lib/image-editor.service.d.ts +3 -2
- package/package.json +37 -37
- package/popover/lib/popover.component.d.ts +36 -34
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -2
@@ -1,5 +1,6 @@
|
|
1
1
|
import { AXFocusableComponent, MXBaseComponent, convertToPlacement, } from '@acorex/components/common';
|
2
2
|
import { AXPlatform, isBrowser } from '@acorex/core/platform';
|
3
|
+
import { AXHtmlUtil } from '@acorex/core/utils';
|
3
4
|
import { Overlay } from '@angular/cdk/overlay';
|
4
5
|
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
5
6
|
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, inject, } from '@angular/core';
|
@@ -12,6 +13,7 @@ import * as i0 from "@angular/core";
|
|
12
13
|
export class AXPopoverComponent extends MXBaseComponent {
|
13
14
|
constructor() {
|
14
15
|
super(...arguments);
|
16
|
+
this.platformService = inject(AXPlatform);
|
15
17
|
/** @ignore */
|
16
18
|
this._platform = inject(AXPlatform);
|
17
19
|
/** @ignore */
|
@@ -45,8 +47,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
45
47
|
this._closeOn = 'clickOut';
|
46
48
|
//
|
47
49
|
/**
|
48
|
-
|
49
|
-
|
50
|
+
* Determines if a backdrop should be displayed behind the popover.
|
51
|
+
*/
|
50
52
|
this.hasBackdrop = false;
|
51
53
|
//
|
52
54
|
/**
|
@@ -80,8 +82,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
80
82
|
return this._offsetX;
|
81
83
|
}
|
82
84
|
/**
|
83
|
-
|
84
|
-
|
85
|
+
* Sets the horizontal offset and updates it with a callback.
|
86
|
+
*/
|
85
87
|
set offsetX(v) {
|
86
88
|
this.setOption({
|
87
89
|
name: 'offsetX',
|
@@ -98,8 +100,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
98
100
|
return this._offsetY;
|
99
101
|
}
|
100
102
|
/**
|
101
|
-
|
102
|
-
|
103
|
+
* Sets the vertical offset and updates the component position.
|
104
|
+
*/
|
103
105
|
set offsetY(v) {
|
104
106
|
this.setOption({
|
105
107
|
name: 'offsetY',
|
@@ -116,8 +118,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
116
118
|
return this._target;
|
117
119
|
}
|
118
120
|
/**
|
119
|
-
|
120
|
-
|
121
|
+
* Sets the target element and updates event bindings.
|
122
|
+
*/
|
121
123
|
set target(v) {
|
122
124
|
this.removeTargetEvents();
|
123
125
|
if (v instanceof HTMLElement)
|
@@ -136,8 +138,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
136
138
|
return this._placement;
|
137
139
|
}
|
138
140
|
/**
|
139
|
-
|
140
|
-
|
141
|
+
* Sets the component's placement and updates its position settings.
|
142
|
+
*/
|
141
143
|
set placement(v) {
|
142
144
|
this.setOption({
|
143
145
|
name: 'placement',
|
@@ -157,14 +159,14 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
157
159
|
return this._componentRef;
|
158
160
|
}
|
159
161
|
/**
|
160
|
-
|
161
|
-
|
162
|
+
* Gets or sets the trigger for opening the popover and updates target events.
|
163
|
+
*/
|
162
164
|
get openOn() {
|
163
165
|
return this._openOn;
|
164
166
|
}
|
165
167
|
/**
|
166
|
-
|
167
|
-
|
168
|
+
* Sets the trigger for opening the popover and updates target events.
|
169
|
+
*/
|
168
170
|
set openOn(v) {
|
169
171
|
this.setOption({
|
170
172
|
name: 'openOn',
|
@@ -175,8 +177,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
175
177
|
});
|
176
178
|
}
|
177
179
|
/**
|
178
|
-
|
179
|
-
|
180
|
+
* Gets or sets the trigger for closing the popover.
|
181
|
+
*/
|
180
182
|
get closeOn() {
|
181
183
|
return this._closeOn;
|
182
184
|
}
|
@@ -269,7 +271,10 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
269
271
|
//
|
270
272
|
this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e) => {
|
271
273
|
const el = e.target;
|
272
|
-
if (this.closeOn == 'clickOut' &&
|
274
|
+
if (this.closeOn == 'clickOut' &&
|
275
|
+
this.isOpen &&
|
276
|
+
!this._target.contains(el) &&
|
277
|
+
!this._overlayRef?.overlayElement?.contains(el)) {
|
273
278
|
this.close();
|
274
279
|
}
|
275
280
|
});
|
@@ -302,8 +307,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
302
307
|
}
|
303
308
|
//
|
304
309
|
/**
|
305
|
-
|
306
|
-
|
310
|
+
* Toggles the component's open state.
|
311
|
+
*/
|
307
312
|
toggle() {
|
308
313
|
this.isOpen ? this.close() : this.open();
|
309
314
|
}
|
@@ -321,8 +326,8 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
321
326
|
}
|
322
327
|
//
|
323
328
|
/**
|
324
|
-
|
325
|
-
|
329
|
+
* Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.
|
330
|
+
*/
|
326
331
|
open() {
|
327
332
|
if (this.isOpen) {
|
328
333
|
return;
|
@@ -361,14 +366,20 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
361
366
|
}
|
362
367
|
else {
|
363
368
|
this._overlayRef = this._overlay.create({
|
364
|
-
positionStrategy: this._overlay
|
369
|
+
positionStrategy: this._overlay
|
370
|
+
.position()
|
371
|
+
.flexibleConnectedTo(targetRef)
|
372
|
+
.withPositions(this._placements)
|
373
|
+
.withPush(false),
|
365
374
|
scrollStrategy: this._overlay.scrollStrategies.noop(),
|
366
375
|
disposeOnNavigation: true,
|
367
376
|
panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],
|
368
377
|
maxHeight: 'unset',
|
369
378
|
hasBackdrop: this.hasBackdrop,
|
370
379
|
backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],
|
380
|
+
direction: AXHtmlUtil.isRtl(this.getHostElement()) ? 'rtl' : 'ltr',
|
371
381
|
});
|
382
|
+
// this._overlayRef.setDirection()
|
372
383
|
}
|
373
384
|
//
|
374
385
|
this.bindOverlayEvents();
|
@@ -395,16 +406,16 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
395
406
|
}
|
396
407
|
}
|
397
408
|
/**
|
398
|
-
|
399
|
-
|
400
|
-
|
409
|
+
* Checks if the overlay is currently open.
|
410
|
+
* @returns {boolean}
|
411
|
+
*/
|
401
412
|
get isOpen() {
|
402
413
|
return this._overlayRef ? this._overlayRef.hasAttached() : false;
|
403
414
|
}
|
404
415
|
/**
|
405
|
-
|
406
|
-
|
407
|
-
|
416
|
+
* Determines if the actionsheet style should be applied.
|
417
|
+
* @returns {boolean}
|
418
|
+
*/
|
408
419
|
get isActionsheetStyle() {
|
409
420
|
return this._platform.is('SM') && this.adaptivityEnabled;
|
410
421
|
}
|
@@ -418,7 +429,11 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
418
429
|
strategy = this._overlay.position().global().bottom().centerHorizontally();
|
419
430
|
}
|
420
431
|
else {
|
421
|
-
strategy = this._overlay
|
432
|
+
strategy = this._overlay
|
433
|
+
.position()
|
434
|
+
.flexibleConnectedTo(targetRef)
|
435
|
+
.withPositions(this._placements)
|
436
|
+
.withPush(false);
|
422
437
|
}
|
423
438
|
this._overlayRef?.updatePositionStrategy(strategy);
|
424
439
|
}
|
@@ -432,19 +447,25 @@ export class AXPopoverComponent extends MXBaseComponent {
|
|
432
447
|
});
|
433
448
|
}
|
434
449
|
/**
|
435
|
-
|
436
|
-
|
450
|
+
* Updates the position of the overlay and focuses on it.
|
451
|
+
*/
|
437
452
|
updatePosition() {
|
438
453
|
this._overlayRef?.updatePosition();
|
439
454
|
this.focus();
|
440
455
|
}
|
441
456
|
/**
|
442
|
-
|
443
|
-
|
457
|
+
* Focuses the overlay element.
|
458
|
+
*/
|
444
459
|
focus() {
|
445
460
|
//TODO: need this??
|
446
461
|
}
|
447
462
|
//
|
463
|
+
ngOnInit() {
|
464
|
+
super.ngOnInit();
|
465
|
+
// this.platformService.directionChange.subscribe((c) => {
|
466
|
+
// this.isRtl = c.data == 'rtl';
|
467
|
+
// });
|
468
|
+
}
|
448
469
|
/** @ignore */
|
449
470
|
ngOnDestroy() {
|
450
471
|
this.removeTargetEvents();
|
@@ -490,4 +511,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
490
511
|
}], onClosed: [{
|
491
512
|
type: Output
|
492
513
|
}] } });
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUF5QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNdEQ7OztHQUdHO0FBUUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFQdkQ7O1FBU0UsY0FBYztRQUNOLGNBQVMsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkQsY0FBYztRQUNOLGFBQVEsR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFLNUMsY0FBYztRQUNOLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUVuQyxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBS3BDLGNBQWM7UUFDTixrQkFBYSxHQUlqQixFQUFFLENBQUM7UUFFUCxjQUFjO1FBQ04sbUJBQWMsR0FLbEIsRUFBRSxDQUFDO1FBRVAsRUFBRTtRQUVGLGNBQWM7UUFDTixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBMEJyQixFQUFFO1FBRUYsY0FBYztRQUNOLGFBQVEsR0FBRyxDQUFDLENBQUM7UUF1RHJCLEVBQUU7UUFFRixjQUFjO1FBQ04sc0JBQWlCLEdBQTBCLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRGLGNBQWM7UUFDTixnQkFBVyxHQUEwQixDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekUsY0FBYztRQUNOLGVBQVUsR0FBb0IsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQTZEdkQsRUFBRTtRQUVGLGNBQWM7UUFDTixZQUFPLEdBQXlCLFFBQVEsQ0FBQztRQTBCakQsRUFBRTtRQUVGLGNBQWM7UUFDTixhQUFRLEdBQTBCLFVBQVUsQ0FBQztRQTRCckQsRUFBRTtRQUVGOztTQUVDO1FBRUQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsRUFBRTtRQUVKOztXQUVHO1FBRUQsY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUVsQjs7V0FFRztRQUVELGVBQVUsR0FBRyxHQUFHLENBQUM7UUFRbkI7O1dBRUc7UUFFRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsRUFBRTtRQUVKOzs7V0FHRztRQUVELGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVoRTs7O1dBR0c7UUFFRCxhQUFRLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7S0F1Ui9EO0lBemhCRDs7T0FFRztJQUNELElBS1csT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOztLQUVDO0lBQ0QsSUFBVyxPQUFPLENBQUMsQ0FBUztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1IOztPQUVHO0lBQ0QsSUFLVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O0tBRUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxDQUFTO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxDQUFDO1lBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBT0g7O09BRUc7SUFDRCxJQUtXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztLQUVDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBNkM7UUFDN0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksV0FBVztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2FBQzFDLElBQUksQ0FBQyxZQUFZLFVBQVU7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDNUQsSUFBSSxPQUFPLENBQUMsRUFBRSxjQUFjLElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25GLEVBQUU7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBWUg7O09BRUc7SUFDRCxJQUtXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7S0FFQztJQUNELElBQVcsU0FBUyxDQUFDLENBQWtCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFTSDs7T0FFRztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQXdCRDs7S0FFQztJQUNELElBS1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O0tBRUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxDQUF1QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBTUQ7O0tBRUM7SUFDRCxJQUtXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFSDs7O09BR0c7SUFDRCxJQUFXLE9BQU8sQ0FBQyxDQUF3QjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBa0RELGNBQWM7SUFDTixrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxFQUFFO0lBRUYsY0FBYztJQUNKLGlCQUFpQixDQUFDLENBQWE7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztJQUNKLGlCQUFpQixDQUFDLENBQWE7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELGNBQWM7SUFDTixrQkFBa0I7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUMxQixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFaEUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDNUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQWEsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBQ0QsRUFBRTtJQUVGLGNBQWM7SUFDTixpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRyxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BHLENBQUM7WUFDRCxFQUFFO1lBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRTtnQkFDL0YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQXFCLENBQUM7Z0JBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQy9ILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxFQUFFO1lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pFLGVBQWU7Z0JBQ2YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFxQixDQUFDO2dCQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzdCLElBQUksRUFBRSxJQUFLLFFBQWdCLEVBQUUsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNiLE9BQU87b0JBQ1QsQ0FBQztvQkFDRCxJQUNFLEVBQUUsRUFBRSxPQUFPO3dCQUNYLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDL0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQzFCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUMvQyxDQUFDO3dCQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDZixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxFQUFFO0lBQ0Y7O0tBRUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELEVBQUU7SUFDSjs7T0FFRztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELEVBQUU7SUFDRjs7S0FFQztJQUNELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNOLFNBQVM7UUFDZixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUE0QixDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNOLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNOLG1CQUFtQjtRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUV2QiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFO2dCQUNqRixtQkFBbUIsRUFBRSxJQUFJO2dCQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RELFVBQVUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDO2dCQUNoRixXQUFXLEVBQUUsSUFBSTtnQkFDakIsS0FBSyxFQUFFLE1BQU07YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUN6SCxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JELG1CQUFtQixFQUFFLElBQUk7Z0JBQ3pCLFVBQVUsRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO2dCQUN0RCxTQUFTLEVBQUUsT0FBTztnQkFDbEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLGtDQUFrQyxDQUFDO2FBQzFFLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxFQUFFO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsR0FBRztRQUNILEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO2dCQUN2RSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3ZCLEdBQUcsRUFBRSxJQUFJO2FBQ1YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDN0UsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUN2QixHQUFHLEVBQUUsSUFBSTthQUNWLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7S0FHQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O0tBR0M7SUFDRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYztJQUNOLHNCQUFzQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2QixJQUFJLFFBQTBCLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdFLENBQUM7YUFBTSxDQUFDO1lBQ04sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckgsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWM7SUFDTixZQUFZO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUk7Z0JBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ25ELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO2dCQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7S0FFQztJQUNNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQ7O0tBRUM7SUFDTSxLQUFLO1FBQ1YsbUJBQW1CO0lBQ3JCLENBQUM7SUFDRCxFQUFFO0lBRUYsY0FBYztJQUNkLFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0Foa0JVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDRZQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLDhLQ3ZDakYsMEVBRWM7OzJGRHVDRCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsWUFBWSxpQkFFUCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxvQkFBb0IsRUFBRSxDQUFDOzhCQWtEcEUsT0FBTztzQkFMakIsS0FBSztnQkFrQ0ssT0FBTztzQkFMakIsS0FBSztnQkFtQ0ssTUFBTTtzQkFMaEIsS0FBSztnQkF1Q0ssU0FBUztzQkFMbkIsS0FBSztnQkFnRE4sYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUTNDLE9BQU87c0JBRE4sS0FBSztnQkFlSyxNQUFNO3NCQUxoQixLQUFLO2dCQWtDSyxPQUFPO3NCQUxqQixLQUFLO2dCQTZCTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQVNOLFFBQVE7c0JBRFAsTUFBTTtnQkFRUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbm5lY3RlZFBvc2l0aW9uLFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhQbGFjZW1lbnRUeXBlLFxuICBNWEJhc2VDb21wb25lbnQsXG4gIGNvbnZlcnRUb1BsYWNlbWVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBsYXRmb3JtLCBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgUG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWxheSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2snIHwgJ2hvdmVyJyB8ICd0b2dnbGUnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJDbG9zZVRyaWdnZXIgPSAnbWFudWFsJyB8ICdjbGlja091dCcgfCAnbGVhdmUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKiBBIHBvcG92ZXIgY29tcG9uZW50IHdpdGggY3VzdG9tIGVuY2Fwc3VsYXRpb24gYW5kIGNoYW5nZSBkZXRlY3Rpb24gc2V0dGluZ3MuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQb3BvdmVyQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNNb3VzZU92ZXJCdXR0b24gPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGFyZ2V0RXZlbnRzOiB7XG4gICAgbW91c2VlbnRlcj86IFN1YnNjcmlwdGlvbjtcbiAgICBtb3VzZWxlYXZlPzogU3Vic2NyaXB0aW9uO1xuICAgIGNsaWNrPzogU3Vic2NyaXB0aW9uO1xuICB9ID0ge307XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheUV2ZW50czoge1xuICAgIGF0dGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBkZXRhY2g/OiBTdWJzY3JpcHRpb247XG4gICAgc2Nyb2xsPzogU3Vic2NyaXB0aW9uO1xuICAgIG91dHNpZGU/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFggPSAwO1xuXG4vKipcbiAqIEdldHMgb3Igc2V0cyB0aGUgaG9yaXpvbnRhbCBvZmZzZXQgYW5kIHVwZGF0ZXMgaXQgYWNjb3JkaW5nbHkuXG4gKi9cbiAgQElucHV0KClcblxuICAvKipcbiAqIEdldHMgdGhlIGhvcml6b250YWwgb2Zmc2V0IHZhbHVlLlxuICovXG4gIHB1YmxpYyBnZXQgb2Zmc2V0WCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXRYO1xuICB9XG5cbiAgLyoqXG4gKiBTZXRzIHRoZSBob3Jpem9udGFsIG9mZnNldCBhbmQgdXBkYXRlcyBpdCB3aXRoIGEgY2FsbGJhY2suXG4gKi9cbiAgcHVibGljIHNldCBvZmZzZXRYKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvZmZzZXRYJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29mZnNldFkgPSAwO1xuXG4vKipcbiAqIFZlcnRpY2FsIG9mZnNldCB3aXRoIHVwZGF0ZSBjYWxsYmFjay5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgdmVydGljYWwgb2Zmc2V0IG9mIHRoZSBjb21wb25lbnQuXG4gKi9cbiAgcHVibGljIGdldCBvZmZzZXRZKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29mZnNldFk7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHZlcnRpY2FsIG9mZnNldCBhbmQgdXBkYXRlcyB0aGUgY29tcG9uZW50IHBvc2l0aW9uLlxuICovXG4gIHB1YmxpYyBzZXQgb2Zmc2V0WSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnb2Zmc2V0WScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3RhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4vKipcbiAqIEdldHMgb3Igc2V0cyB0aGUgdGFyZ2V0IGVsZW1lbnQsIHN1cHBvcnRpbmcgSFRNTEVsZW1lbnQsIEVsZW1lbnRSZWYsIG9yIE1YQmFzZUNvbXBvbmVudC5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgY3VycmVudCB0YXJnZXQgZWxlbWVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBNWEJhc2VDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHRhcmdldCBlbGVtZW50IGFuZCB1cGRhdGVzIGV2ZW50IGJpbmRpbmdzLlxuICovXG4gIHB1YmxpYyBzZXQgdGFyZ2V0KHY6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiB8IE1YQmFzZUNvbXBvbmVudCkge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgaWYgKHYgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgdGhpcy5fdGFyZ2V0ID0gdjtcbiAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgRWxlbWVudFJlZikgdGhpcy5fdGFyZ2V0ID0gdi5uYXRpdmVFbGVtZW50O1xuICAgIGVsc2UgaWYgKHR5cGVvZiB2Py5nZXRIb3N0RWxlbWVudCA9PSAnZnVuY3Rpb24nKSB0aGlzLl90YXJnZXQgPSB2LmdldEhvc3RFbGVtZW50KCk7XG4gICAgLy9cbiAgICB0aGlzLmJpbmRUYXJnZXRFdmVudHMoKTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2RlZmF1dFBsYWNlbWVudHM6IEFYQ29ubmVjdGVkUG9zaXRpb25bXSA9IGNvbnZlcnRUb1BsYWNlbWVudCgnYm90dG9tLXN0YXJ0Jyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcGxhY2VtZW50czogQVhDb25uZWN0ZWRQb3NpdGlvbltdID0gWy4uLnRoaXMuX2RlZmF1dFBsYWNlbWVudHNdO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BsYWNlbWVudDogQVhQbGFjZW1lbnRUeXBlID0gdGhpcy5fcGxhY2VtZW50cztcblxuLyoqXG4gKiBHZXRzIG9yIHNldHMgdGhlIGNvbXBvbmVudCdzIHBsYWNlbWVudCBhbmQgdXBkYXRlcyBwb3NpdGlvbiBzZXR0aW5ncy5cbiAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgY3VycmVudCBwbGFjZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBBWFBsYWNlbWVudFR5cGUge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZW1lbnQ7XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIGNvbXBvbmVudCdzIHBsYWNlbWVudCBhbmQgdXBkYXRlcyBpdHMgcG9zaXRpb24gc2V0dGluZ3MuXG4gKi9cbiAgcHVibGljIHNldCBwbGFjZW1lbnQodjogQVhQbGFjZW1lbnRUeXBlKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRUb1BsYWNlbWVudChuKTtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50cyA9IGNvbnZlcnRlZC5sZW5ndGggPyBjb252ZXJ0ZWQgOiB0aGlzLl9kZWZhdXRQbGFjZW1lbnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuLyoqXG4gKiBHZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudC5cbiAqL1xuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFJlZigpOiBDb21wb25lbnRSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAqIEhvbGRzIHRoZSBjb250ZXh0IGRhdGEgZm9yIHRoZSBjb21wb25lbnQuXG4gKi9cbiAgcHVibGljIGNvbnRleHQ6IHVua25vd247XG5cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdiYXNlVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYmFzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgLy9cblxuICAvKipcbiAqIERlZmluZXMgdGhlIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCB3aGljaCBjYW4gYmUgYSB0ZW1wbGF0ZSBvciBhIGNvbXBvbmVudC5cbiAqL1xuICBASW5wdXQoKVxuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3Blbk9uOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICd0b2dnbGUnO1xuXG4gIC8qKlxuICogR2V0cyBvciBzZXRzIHRoZSB0cmlnZ2VyIGZvciBvcGVuaW5nIHRoZSBwb3BvdmVyIGFuZCB1cGRhdGVzIHRhcmdldCBldmVudHMuXG4gKi9cbiAgQElucHV0KClcblxuICAvKipcbiAqIEdldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIuXG4gKi9cbiAgcHVibGljIGdldCBvcGVuT24oKTogQVhQb3BvdmVyT3BlblRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuT247XG4gIH1cblxuICAvKipcbiAqIFNldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIgYW5kIHVwZGF0ZXMgdGFyZ2V0IGV2ZW50cy5cbiAqL1xuICBwdWJsaWMgc2V0IG9wZW5Pbih2OiBBWFBvcG92ZXJPcGVuVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvcGVuT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2Nsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciA9ICdjbGlja091dCc7XG5cbiAgLyoqXG4gKiBHZXRzIG9yIHNldHMgdGhlIHRyaWdnZXIgZm9yIGNsb3NpbmcgdGhlIHBvcG92ZXIuXG4gKi9cbiAgQElucHV0KClcblxuLyoqXG4gKiBHZXRzIHRoZSB0cmlnZ2VyIGZvciBjbG9zaW5nIHRoZSBwb3BvdmVyLlxuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VPbigpOiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgdHJpZ2dlciBmb3IgY2xvc2luZyB0aGUgcG9wb3ZlciBhbmQgcmViaW5kcyB0YXJnZXQgZXZlbnRzLlxuICogQHBhcmFtIHZcbiAqL1xuICBwdWJsaWMgc2V0IGNsb3NlT24odjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Nsb3NlT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG5cbiAgLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgYmFja2Ryb3Agc2hvdWxkIGJlIGRpc3BsYXllZCBiZWhpbmQgdGhlIHBvcG92ZXIuXG4gKi9cbiAgQElucHV0KClcbiAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgLy9cblxuLyoqXG4gKiBEZWxheSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBwb3BvdmVyIG9wZW5zIGFmdGVyIGEgdHJpZ2dlciBldmVudC5cbiAqL1xuICBASW5wdXQoKVxuICBvcGVuQWZ0ZXIgPSAyMDA7XG5cbi8qKlxuICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgcG9wb3ZlciBjbG9zZXMgYWZ0ZXIgYSB0cmlnZ2VyIGV2ZW50LlxuICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlQWZ0ZXIgPSAyMDA7XG5cbi8qKlxuICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBiYWNrZHJvcCBlbGVtZW50LlxuICovXG4gIEBJbnB1dCgpXG4gIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblxuLyoqXG4gKiBFbmFibGVzIG9yIGRpc2FibGVzIGFkYXB0aXZpdHkuXG4gKi9cbiAgQElucHV0KClcbiAgYWRhcHRpdml0eUVuYWJsZWQgPSBmYWxzZTtcbiAgLy9cblxuLyoqXG4gKiBFbWl0cyB3aGVuIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLlxuICogQGV2ZW50XG4gKi9cbiAgQE91dHB1dCgpXG4gIG9uT3BlbmVkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbi8qKlxuICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqIEBldmVudFxuICovXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEV2ZW50PigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2VtaXRPbk9wZW5lZEV2ZW50KCkge1xuICAgIHRoaXMub25PcGVuZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdE9uQ2xvc2VkRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlRW50ZXIoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IHRydWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU1vdXNlTGVhdmUoZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiAmJiB0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVtb3ZlVGFyZ2V0RXZlbnRzKCk6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX3RhcmdldEV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBiaW5kVGFyZ2V0RXZlbnRzKCkge1xuICAgIHRoaXMucmVtb3ZlVGFyZ2V0RXZlbnRzKCk7XG4gICAgaWYgKCF0aGlzLl90YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXRNb3VzZUVudGVyJCA9IGZyb21FdmVudCh0aGlzLl90YXJnZXQsICdtb3VzZWVudGVyJyk7XG4gICAgY29uc3QgdGFyZ2V0TW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fdGFyZ2V0LCAnbW91c2VsZWF2ZScpO1xuXG4gICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWVudGVyID0gdGFyZ2V0TW91c2VFbnRlciQucGlwZShkZWxheSh0aGlzLm9wZW5BZnRlcikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzTW91c2VPdmVyQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgIHRoaXMuX3RhcmdldEV2ZW50cy5tb3VzZWxlYXZlID0gdGFyZ2V0TW91c2VMZWF2ZSQucGlwZShkZWxheSh0aGlzLmNsb3NlQWZ0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuX2lzTW91c2VPdmVyVG9vbHRpcCkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk9uID09PSAnY2xpY2snIHx8IHRoaXMub3Blbk9uID09PSAndG9nZ2xlJykge1xuICAgICAgY29uc3QgY2xpY2skID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX3RhcmdldCwgJ2NsaWNrJyk7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMuY2xpY2sgPSBjbGljayQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbk9uID09ICd0b2dnbGUnID8gdGhpcy50b2dnbGUoKSA6IHRoaXMub3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBiaW5kT3ZlcmxheUV2ZW50cygpIHtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5RXZlbnRzLmF0dGFjaCA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3Blbk9uID09ICdob3ZlcicpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNsb3NlT24gPT0gJ2xlYXZlJykge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMuX292ZXJsYXlFdmVudHMub3V0c2lkZSA9IHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uID09ICdjbGlja091dCcgJiYgdGhpcy5pc09wZW4gJiYgIXRoaXMuX3RhcmdldC5jb250YWlucyhlbCkgJiYgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbCkpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy9cblxuICAgICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5zY3JvbGwgPSB0aGlzLl9wbGF0Zm9ybS5zY3JvbGwuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIC8vX19heENvbnRleHRfX1xuICAgICAgICBjb25zdCBlbCA9IGMubmF0aXZlRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgICAgaWYgKGVsID09IChkb2N1bWVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsPy5jbG9zZXN0ICYmXG4gICAgICAgICAgICAhZWwuY2xvc2VzdCgnLmF4LW92ZXJsYXktcGFuZScpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICAgIXRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhlbClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVPdmVybGF5RXZlbnRzKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuX292ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9oYW5kbGVNb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX292ZXJsYXlFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICogVG9nZ2xlcyB0aGUgY29tcG9uZW50J3Mgb3BlbiBzdGF0ZS5cbiAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIC8vXG4vKipcbiAqIENsb3NlcyB0aGUgY29tcG9uZW50IGlmIGl0J3Mgb3BlbiwgZGV0YWNoZXMgdGhlIG92ZXJsYXksIHJlc3RvcmVzIGZvY3VzLCBhbmQgZW1pdHMgdGhlIGNsb3NlZCBldmVudC5cbiAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICogT3BlbnMgdGhlIGNvbXBvbmVudCBpZiBpdCdzIG5vdCBhbHJlYWR5IG9wZW4sIHNhdmVzIGZvY3VzLCBvcGVucyB0aGUgb3ZlcmxheSwgYW5kIGVtaXRzIHRoZSBvcGVuZWQgZXZlbnQuXG4gKi9cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zYXZlRm9jdXMoKTtcbiAgICB0aGlzLm9wZW5PdmVybGF5SW50ZXJuYWwoKTtcbiAgICB0aGlzLl9lbWl0T25PcGVuZWRFdmVudCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzYXZlRm9jdXMoKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZXN0b3JlRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50Py5mb2N1cykge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIG9wZW5PdmVybGF5SW50ZXJuYWwoKSB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0UmVmKSByZXR1cm47XG5cbiAgICAvL2lmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgIGlmICh0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmJvdHRvbSgpLmNlbnRlckhvcml6b250YWxseSgpLFxuICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYWN0aW9uc2hlZXQtYmFzZScsICdheC1hbmltYXRlLXNsaWRlSW5VcCcsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZmxleGlibGVDb25uZWN0ZWRUbyh0YXJnZXRSZWYpLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cykud2l0aFB1c2goZmFsc2UpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgICBtYXhIZWlnaHQ6ICd1bnNldCcsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiBbdGhpcy5iYWNrZHJvcENsYXNzIHx8ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5iaW5kT3ZlcmxheUV2ZW50cygpO1xuICAgIC8vfVxuICAgIC8vXG4gICAgaWYgKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5jb250ZW50LCB0aGlzLmdldFZpZXdDb250YWluZXIoKSwge1xuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmPy5hdHRhY2godGhpcy5fcG9ydGFsKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb250ZW50KTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMuY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9iYXNlVGVtcGxhdGUsIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLCB7XG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5jb250ZXh0LFxuICAgICAgICByZWY6IHRoaXMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICogQ2hlY2tzIGlmIHRoZSBvdmVybGF5IGlzIGN1cnJlbnRseSBvcGVuLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZiA/IHRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSA6IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBhY3Rpb25zaGVldCBzdHlsZSBzaG91bGQgYmUgYXBwbGllZC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG4gIGdldCBpc0FjdGlvbnNoZWV0U3R5bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtLmlzKCdTTScpICYmIHRoaXMuYWRhcHRpdml0eUVuYWJsZWQ7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0UmVmID0gdGhpcy5fdGFyZ2V0O1xuICAgIGlmICghdGFyZ2V0UmVmKSByZXR1cm47XG4gICAgbGV0IHN0cmF0ZWd5OiBQb3NpdGlvblN0cmF0ZWd5O1xuICAgIGlmICh0aGlzLmlzQWN0aW9uc2hlZXRTdHlsZSkge1xuICAgICAgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuYm90dG9tKCkuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKS53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpLndpdGhQdXNoKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gKiBVcGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgb3ZlcmxheSBhbmQgZm9jdXNlcyBvbiBpdC5cbiAqL1xuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAqIEZvY3VzZXMgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgLy9UT0RPOiBuZWVkIHRoaXM/P1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFzZVRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
514
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3Zlci9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXIvc3JjL2xpYi9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxvQkFBb0IsRUFFcEIsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQWdDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBeUIsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXREOzs7R0FHRztBQVFILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBUHZEOztRQVFVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLGNBQWM7UUFDTixjQUFTLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5ELGNBQWM7UUFDTixhQUFRLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSzVDLGNBQWM7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TUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXBsQlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsNFlBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUMsOEtDeENqRiwwRUFFYzs7MkZEd0NELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGlCQUVQLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLG9CQUFvQixFQUFFLENBQUM7OEJBbURwRSxPQUFPO3NCQUxqQixLQUFLO2dCQWtDSyxPQUFPO3NCQUxqQixLQUFLO2dCQW1DSyxNQUFNO3NCQUxoQixLQUFLO2dCQXVDSyxTQUFTO3NCQUxuQixLQUFLO2dCQWdETixhQUFhO3NCQURaLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFRM0MsT0FBTztzQkFETixLQUFLO2dCQWVLLE1BQU07c0JBTGhCLEtBQUs7Z0JBOEJLLE9BQU87c0JBRGpCLEtBQUs7Z0JBeUJOLFdBQVc7c0JBRFYsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLGFBQWE7c0JBRFosS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBU04sUUFBUTtzQkFEUCxNQUFNO2dCQVFQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29ubmVjdGVkUG9zaXRpb24sXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFBsYWNlbWVudFR5cGUsXG4gIE1YQmFzZUNvbXBvbmVudCxcbiAgY29udmVydFRvUGxhY2VtZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGxhdGZvcm0sIGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVsYXksIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICdtYW51YWwnIHwgJ2NsaWNrJyB8ICdob3ZlcicgfCAndG9nZ2xlJztcblxuZXhwb3J0IHR5cGUgQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyID0gJ21hbnVhbCcgfCAnY2xpY2tPdXQnIHwgJ2xlYXZlJztcblxuLyoqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICogQSBwb3BvdmVyIGNvbXBvbmVudCB3aXRoIGN1c3RvbSBlbmNhcHN1bGF0aW9uIGFuZCBjaGFuZ2UgZGV0ZWN0aW9uIHNldHRpbmdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wb3ZlckNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2UgPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vdmVybGF5UmVmITogT3ZlcmxheVJlZjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9pc01vdXNlT3ZlckJ1dHRvbiA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2lzTW91c2VPdmVyVG9vbHRpcCA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2xhc3RBY3RpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF90YXJnZXRFdmVudHM6IHtcbiAgICBtb3VzZWVudGVyPzogU3Vic2NyaXB0aW9uO1xuICAgIG1vdXNlbGVhdmU/OiBTdWJzY3JpcHRpb247XG4gICAgY2xpY2s/OiBTdWJzY3JpcHRpb247XG4gIH0gPSB7fTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vdmVybGF5RXZlbnRzOiB7XG4gICAgYXR0YWNoPzogU3Vic2NyaXB0aW9uO1xuICAgIGRldGFjaD86IFN1YnNjcmlwdGlvbjtcbiAgICBzY3JvbGw/OiBTdWJzY3JpcHRpb247XG4gICAgb3V0c2lkZT86IFN1YnNjcmlwdGlvbjtcbiAgfSA9IHt9O1xuXG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb2Zmc2V0WCA9IDA7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgaG9yaXpvbnRhbCBvZmZzZXQgYW5kIHVwZGF0ZXMgaXQgYWNjb3JkaW5nbHkuXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBob3Jpem9udGFsIG9mZnNldCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgb2Zmc2V0WCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXRYO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGhvcml6b250YWwgb2Zmc2V0IGFuZCB1cGRhdGVzIGl0IHdpdGggYSBjYWxsYmFjay5cbiAgICovXG4gIHB1YmxpYyBzZXQgb2Zmc2V0WCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnb2Zmc2V0WCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLy9cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vZmZzZXRZID0gMDtcblxuICAvKipcbiAgICogVmVydGljYWwgb2Zmc2V0IHdpdGggdXBkYXRlIGNhbGxiYWNrLlxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogR2V0cyB0aGUgdmVydGljYWwgb2Zmc2V0IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9mZnNldFkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0WTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2ZXJ0aWNhbCBvZmZzZXQgYW5kIHVwZGF0ZXMgdGhlIGNvbXBvbmVudCBwb3NpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzZXQgb2Zmc2V0WSh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnb2Zmc2V0WScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3RhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHRhcmdldCBlbGVtZW50LCBzdXBwb3J0aW5nIEhUTUxFbGVtZW50LCBFbGVtZW50UmVmLCBvciBNWEJhc2VDb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHRhcmdldCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB0YXJnZXQoKTogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRhcmdldCBlbGVtZW50IGFuZCB1cGRhdGVzIGV2ZW50IGJpbmRpbmdzLlxuICAgKi9cbiAgcHVibGljIHNldCB0YXJnZXQodjogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgTVhCYXNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICBpZiAodiBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB0aGlzLl90YXJnZXQgPSB2O1xuICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB0aGlzLl90YXJnZXQgPSB2Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxzZSBpZiAodHlwZW9mIHY/LmdldEhvc3RFbGVtZW50ID09ICdmdW5jdGlvbicpIHRoaXMuX3RhcmdldCA9IHYuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAvL1xuICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGVmYXV0UGxhY2VtZW50czogQVhDb25uZWN0ZWRQb3NpdGlvbltdID0gY29udmVydFRvUGxhY2VtZW50KCdib3R0b20tc3RhcnQnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wbGFjZW1lbnRzOiBBWENvbm5lY3RlZFBvc2l0aW9uW10gPSBbLi4udGhpcy5fZGVmYXV0UGxhY2VtZW50c107XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcGxhY2VtZW50OiBBWFBsYWNlbWVudFR5cGUgPSB0aGlzLl9wbGFjZW1lbnRzO1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIGNvbXBvbmVudCdzIHBsYWNlbWVudCBhbmQgdXBkYXRlcyBwb3NpdGlvbiBzZXR0aW5ncy5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgcGxhY2VtZW50IG9mIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBBWFBsYWNlbWVudFR5cGUge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgcGxhY2VtZW50IGFuZCB1cGRhdGVzIGl0cyBwb3NpdGlvbiBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBzZXQgcGxhY2VtZW50KHY6IEFYUGxhY2VtZW50VHlwZSkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdwbGFjZW1lbnQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAobywgbikgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VG9QbGFjZW1lbnQobik7XG4gICAgICAgIHRoaXMuX3BsYWNlbWVudHMgPSBjb252ZXJ0ZWQubGVuZ3RoID8gY29udmVydGVkIDogdGhpcy5fZGVmYXV0UGxhY2VtZW50cztcbiAgICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBjb21wb25lbnRSZWYoKTogQ29tcG9uZW50UmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvbGRzIHRoZSBjb250ZXh0IGRhdGEgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgY29udGV4dDogdW5rbm93bjtcblxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ2Jhc2VUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9iYXNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAvL1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb250ZW50IHRvIGJlIGRpc3BsYXllZCwgd2hpY2ggY2FuIGJlIGEgdGVtcGxhdGUgb3IgYSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBjb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb3Blbk9uOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciA9ICd0b2dnbGUnO1xuXG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIgYW5kIHVwZGF0ZXMgdGFyZ2V0IGV2ZW50cy5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyaWdnZXIgZm9yIG9wZW5pbmcgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9wZW5PbigpOiBBWFBvcG92ZXJPcGVuVHJpZ2dlciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5PbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0cmlnZ2VyIGZvciBvcGVuaW5nIHRoZSBwb3BvdmVyIGFuZCB1cGRhdGVzIHRhcmdldCBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgc2V0IG9wZW5Pbih2OiBBWFBvcG92ZXJPcGVuVHJpZ2dlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdvcGVuT24nLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmluZFRhcmdldEV2ZW50cygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2Nsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciA9ICdjbGlja091dCc7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgdHJpZ2dlciBmb3IgY2xvc2luZyB0aGUgcG9wb3Zlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgY2xvc2VPbigpOiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZU9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRyaWdnZXIgZm9yIGNsb3NpbmcgdGhlIHBvcG92ZXIgYW5kIHJlYmluZHMgdGFyZ2V0IGV2ZW50cy5cbiAgICogQHBhcmFtIHZcbiAgICovXG4gIHB1YmxpYyBzZXQgY2xvc2VPbih2OiBBWFBvcG92ZXJDbG9zZVRyaWdnZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnY2xvc2VPbicsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kVGFyZ2V0RXZlbnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy9cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGJhY2tkcm9wIHNob3VsZCBiZSBkaXNwbGF5ZWQgYmVoaW5kIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgLy9cblxuICAvKipcbiAgICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgcG9wb3ZlciBvcGVucyBhZnRlciBhIHRyaWdnZXIgZXZlbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBvcGVuQWZ0ZXIgPSAyMDA7XG5cbiAgLyoqXG4gICAqIERlbGF5IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHBvcG92ZXIgY2xvc2VzIGFmdGVyIGEgdHJpZ2dlciBldmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlQWZ0ZXIgPSAyMDA7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgYmFja2Ryb3AgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGJhY2tkcm9wQ2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhZGFwdGl2aXR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgYWRhcHRpdml0eUVuYWJsZWQgPSBmYWxzZTtcbiAgLy9cblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25PcGVuZWQ6IEV2ZW50RW1pdHRlcjxBWEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbG9zZWQ6IEV2ZW50RW1pdHRlcjxBWEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhFdmVudD4oKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9lbWl0T25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLm9uT3BlbmVkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2VtaXRPbkNsb3NlZEV2ZW50KCkge1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG4gIC8vXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb3VzZUVudGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXAgPSB0cnVlO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb3VzZUxlYXZlKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXAgPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gJiYgdGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0sIDI1MCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlbW92ZVRhcmdldEV2ZW50cygpOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLl90YXJnZXRFdmVudHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGVbMV0udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgYmluZFRhcmdldEV2ZW50cygpIHtcbiAgICB0aGlzLnJlbW92ZVRhcmdldEV2ZW50cygpO1xuICAgIGlmICghdGhpcy5fdGFyZ2V0KSByZXR1cm47XG4gICAgY29uc3QgdGFyZ2V0TW91c2VFbnRlciQgPSBmcm9tRXZlbnQodGhpcy5fdGFyZ2V0LCAnbW91c2VlbnRlcicpO1xuICAgIGNvbnN0IHRhcmdldE1vdXNlTGVhdmUkID0gZnJvbUV2ZW50KHRoaXMuX3RhcmdldCwgJ21vdXNlbGVhdmUnKTtcblxuICAgIGlmICh0aGlzLm9wZW5PbiA9PSAnaG92ZXInKSB7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMubW91c2VlbnRlciA9IHRhcmdldE1vdXNlRW50ZXIkLnBpcGUoZGVsYXkodGhpcy5vcGVuQWZ0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pc01vdXNlT3ZlckJ1dHRvbiA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xvc2VPbiA9PSAnbGVhdmUnKSB7XG4gICAgICB0aGlzLl90YXJnZXRFdmVudHMubW91c2VsZWF2ZSA9IHRhcmdldE1vdXNlTGVhdmUkLnBpcGUoZGVsYXkodGhpcy5jbG9zZUFmdGVyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5faXNNb3VzZU92ZXJCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLl9pc01vdXNlT3ZlclRvb2x0aXApIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wZW5PbiA9PT0gJ2NsaWNrJyB8fCB0aGlzLm9wZW5PbiA9PT0gJ3RvZ2dsZScpIHtcbiAgICAgIGNvbnN0IGNsaWNrJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl90YXJnZXQsICdjbGljaycpO1xuICAgICAgdGhpcy5fdGFyZ2V0RXZlbnRzLmNsaWNrID0gY2xpY2skLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICB0aGlzLm9wZW5PbiA9PSAndG9nZ2xlJyA/IHRoaXMudG9nZ2xlKCkgOiB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvL1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgYmluZE92ZXJsYXlFdmVudHMoKSB7XG4gICAgdGhpcy5yZW1vdmVPdmVybGF5RXZlbnRzKCk7XG4gICAgdGhpcy5fb3ZlcmxheUV2ZW50cy5hdHRhY2ggPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm9wZW5PbiA9PSAnaG92ZXInKSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuX2hhbmRsZU1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jbG9zZU9uID09ICdsZWF2ZScpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5faGFuZGxlTW91c2VMZWF2ZS5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICAgIC8vXG4gICAgICB0aGlzLl9vdmVybGF5RXZlbnRzLm91dHNpZGUgPSB0aGlzLl9vdmVybGF5UmVmLl9vdXRzaWRlUG9pbnRlckV2ZW50cy5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuY2xvc2VPbiA9PSAnY2xpY2tPdXQnICYmXG4gICAgICAgICAgdGhpcy5pc09wZW4gJiZcbiAgICAgICAgICAhdGhpcy5fdGFyZ2V0LmNvbnRhaW5zKGVsKSAmJlxuICAgICAgICAgICF0aGlzLl9vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudD8uY29udGFpbnMoZWwpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvL1xuXG4gICAgICB0aGlzLl9vdmVybGF5RXZlbnRzLnNjcm9sbCA9IHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgLy9fX2F4Q29udGV4dF9fXG4gICAgICAgIGNvbnN0IGVsID0gYy5uYXRpdmVFdmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgICAgICBpZiAoZWwgPT0gKGRvY3VtZW50IGFzIGFueSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZWw/LmNsb3Nlc3QgJiZcbiAgICAgICAgICAgICFlbC5jbG9zZXN0KCcuYXgtb3ZlcmxheS1wYW5lJykgJiZcbiAgICAgICAgICAgICF0aGlzLl90YXJnZXQuY29udGFpbnMoZWwpICYmXG4gICAgICAgICAgICAhdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQ/LmNvbnRhaW5zKGVsKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlFdmVudHMoKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuX2hhbmRsZU1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8ub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5fb3ZlcmxheUV2ZW50cykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZVsxXS51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy9cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGNvbXBvbmVudCdzIG9wZW4gc3RhdGUuXG4gICAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbXBvbmVudCBpZiBpdCdzIG9wZW4sIGRldGFjaGVzIHRoZSBvdmVybGF5LCByZXN0b3JlcyBmb2N1cywgYW5kIGVtaXRzIHRoZSBjbG9zZWQgZXZlbnQuXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgdGhpcy5fZW1pdE9uQ2xvc2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8vXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY29tcG9uZW50IGlmIGl0J3Mgbm90IGFscmVhZHkgb3Blbiwgc2F2ZXMgZm9jdXMsIG9wZW5zIHRoZSBvdmVybGF5LCBhbmQgZW1pdHMgdGhlIG9wZW5lZCBldmVudC5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2F2ZUZvY3VzKCk7XG4gICAgdGhpcy5vcGVuT3ZlcmxheUludGVybmFsKCk7XG4gICAgdGhpcy5fZW1pdE9uT3BlbmVkRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgc2F2ZUZvY3VzKCkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzKCkge1xuICAgIGlmICh0aGlzLl9sYXN0QWN0aXZlRWxlbWVudD8uZm9jdXMpIHtcbiAgICAgIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBvcGVuT3ZlcmxheUludGVybmFsKCkge1xuICAgIGNvbnN0IHRhcmdldFJlZiA9IHRoaXMuX3RhcmdldDtcbiAgICBpZiAoIXRhcmdldFJlZikgcmV0dXJuO1xuXG4gICAgLy9pZiAoIXRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICBpZiAodGhpcy5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5ib3R0b20oKS5jZW50ZXJIb3Jpem9udGFsbHkoKSxcbiAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ2F4LWFjdGlvbnNoZWV0LWJhc2UnLCAnYXgtYW5pbWF0ZS1zbGlkZUluVXAnLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheVxuICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuX3BsYWNlbWVudHMpXG4gICAgICAgICAgLndpdGhQdXNoKGZhbHNlKSxcbiAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogW3RoaXMuYmFja2Ryb3BDbGFzcyB8fCAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICAgICAgZGlyZWN0aW9uOiBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSkgPyAncnRsJyA6ICdsdHInLFxuICAgICAgfSk7XG4gICAgICAvLyB0aGlzLl9vdmVybGF5UmVmLnNldERpcmVjdGlvbigpXG4gICAgfVxuXG4gICAgLy9cbiAgICB0aGlzLmJpbmRPdmVybGF5RXZlbnRzKCk7XG4gICAgLy99XG4gICAgLy9cbiAgICBpZiAodGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX3BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnQsIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpLCB7XG4gICAgICAgICRpbXBsaWNpdDogdGhpcy5jb250ZXh0LFxuICAgICAgICByZWY6IHRoaXMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWY/LmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbnRlbnQpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5jb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX2Jhc2VUZW1wbGF0ZSwgdGhpcy5nZXRWaWV3Q29udGFpbmVyKCksIHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgb3ZlcmxheSBpcyBjdXJyZW50bHkgb3Blbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmID8gdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgYWN0aW9uc2hlZXQgc3R5bGUgc2hvdWxkIGJlIGFwcGxpZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzQWN0aW9uc2hlZXRTdHlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJykgJiYgdGhpcy5hZGFwdGl2aXR5RW5hYmxlZDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRSZWYgPSB0aGlzLl90YXJnZXQ7XG4gICAgaWYgKCF0YXJnZXRSZWYpIHJldHVybjtcbiAgICBsZXQgc3RyYXRlZ3k6IFBvc2l0aW9uU3RyYXRlZ3k7XG4gICAgaWYgKHRoaXMuaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5ib3R0b20oKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5fcGxhY2VtZW50cylcbiAgICAgICAgLndpdGhQdXNoKGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHVwZGF0ZU9mZnNldCgpIHtcbiAgICB0aGlzLl9wbGFjZW1lbnRzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAodGhpcy5vZmZzZXRZICE9IG51bGwpIHAub2Zmc2V0WSA9IHRoaXMub2Zmc2V0WTtcbiAgICAgIGlmICh0aGlzLm9mZnNldFggIT0gbnVsbCkgcC5vZmZzZXRYID0gdGhpcy5vZmZzZXRYO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5IGFuZCBmb2N1c2VzIG9uIGl0LlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAvL1RPRE86IG5lZWQgdGhpcz8/XG4gIH1cbiAgLy9cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyB0aGlzLnBsYXRmb3JtU2VydmljZS5kaXJlY3Rpb25DaGFuZ2Uuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgLy8gICB0aGlzLmlzUnRsID0gYy5kYXRhID09ICdydGwnO1xuICAgIC8vIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVUYXJnZXRFdmVudHMoKTtcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFzZVRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
@@ -163,11 +163,11 @@ export class AXPopupComponent extends MXBaseComponent {
|
|
163
163
|
}
|
164
164
|
}
|
165
165
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopupComponent, deps: [{ token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: i1.AXLoadingService }, { token: i2.AXPlatform }, { token: DIALOG_DATA }, { token: i3.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper \" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ data.size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!data.draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n @if(data.header){\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ data.title | translate | async }}</span>\n @if(data.closeButton){\n <ax-close-button tabindex=\"1\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>", styles: [".ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:fit-content;margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-color-text-default))}.ax-popup .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem;line-height:1;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 600px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}\n"], dependencies: [{ kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper \" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ data.size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!data.draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n @if(data.header){\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ data.title | translate | async }}</span>\n @if(data.closeButton){\n <ax-close-button tabindex=\"1\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>", styles: [".ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:fit-content;margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-color-text-default))}.ax-popup .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem;line-height:1;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh) - 4rem)}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 600px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}\n"], dependencies: [{ kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
167
167
|
}
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPopupComponent, decorators: [{
|
169
169
|
type: Component,
|
170
|
-
args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper \" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ data.size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!data.draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n @if(data.header){\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ data.title | translate | async }}</span>\n @if(data.closeButton){\n <ax-close-button tabindex=\"1\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>", styles: [".ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:fit-content;margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-color-text-default))}.ax-popup .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem;line-height:1;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 600px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}\n"] }]
|
170
|
+
args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper \" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ data.size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!data.draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n @if(data.header){\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ data.title | translate | async }}</span>\n @if(data.closeButton){\n <ax-close-button tabindex=\"1\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>", styles: [".ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:fit-content;margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-color-text-default))}.ax-popup .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem;line-height:1;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh) - 4rem)}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 600px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}\n"] }]
|
171
171
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: i1.AXLoadingService }, { type: i2.AXPlatform }, { type: undefined, decorators: [{
|
172
172
|
type: Inject,
|
173
173
|
args: [DIALOG_DATA]
|