@ng-nest/ui 13.1.3 → 13.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/auto-complete/auto-complete.component.d.ts +1 -0
  2. package/auto-complete/auto-complete.property.d.ts +6 -1
  3. package/core/config/config.d.ts +5 -0
  4. package/dialog/dialog-portal.component.d.ts +33 -5
  5. package/dialog/dialog-portal.directives.d.ts +17 -0
  6. package/dialog/dialog-ref.d.ts +11 -1
  7. package/dialog/dialog.component.d.ts +3 -5
  8. package/dialog/dialog.module.d.ts +1 -1
  9. package/dialog/dialog.property.d.ts +37 -4
  10. package/dialog/dialog.service.d.ts +1 -0
  11. package/dropdown/dropdown-portal.component.d.ts +2 -0
  12. package/dropdown/dropdown.component.d.ts +1 -0
  13. package/dropdown/dropdown.module.d.ts +2 -1
  14. package/dropdown/dropdown.property.d.ts +11 -1
  15. package/esm2020/auto-complete/auto-complete.component.mjs +23 -9
  16. package/esm2020/auto-complete/auto-complete.property.mjs +8 -2
  17. package/esm2020/core/config/config.mjs +1 -1
  18. package/esm2020/dialog/dialog-portal.component.mjs +54 -12
  19. package/esm2020/dialog/dialog-portal.directives.mjs +47 -1
  20. package/esm2020/dialog/dialog-ref.mjs +83 -2
  21. package/esm2020/dialog/dialog.component.mjs +24 -27
  22. package/esm2020/dialog/dialog.module.mjs +10 -2
  23. package/esm2020/dialog/dialog.property.mjs +10 -3
  24. package/esm2020/dialog/dialog.service.mjs +56 -8
  25. package/esm2020/dropdown/dropdown-portal.component.mjs +10 -4
  26. package/esm2020/dropdown/dropdown.component.mjs +8 -1
  27. package/esm2020/dropdown/dropdown.module.mjs +5 -4
  28. package/esm2020/dropdown/dropdown.property.mjs +11 -2
  29. package/esm2020/list/list-option.component.mjs +21 -8
  30. package/esm2020/list/list.component.mjs +4 -4
  31. package/esm2020/list/list.property.mjs +13 -3
  32. package/esm2020/menu/menu.component.mjs +3 -3
  33. package/esm2020/resizable/resizable.directive.mjs +18 -6
  34. package/fesm2015/ng-nest-ui-auto-complete.mjs +29 -9
  35. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  36. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  37. package/fesm2015/ng-nest-ui-dialog.mjs +287 -54
  38. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  39. package/fesm2015/ng-nest-ui-dropdown.mjs +32 -9
  40. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  41. package/fesm2015/ng-nest-ui-list.mjs +37 -16
  42. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  43. package/fesm2015/ng-nest-ui-menu.mjs +2 -2
  44. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  45. package/fesm2015/ng-nest-ui-resizable.mjs +17 -5
  46. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  47. package/fesm2020/ng-nest-ui-auto-complete.mjs +29 -9
  48. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  49. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  50. package/fesm2020/ng-nest-ui-dialog.mjs +279 -53
  51. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  52. package/fesm2020/ng-nest-ui-dropdown.mjs +32 -9
  53. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  54. package/fesm2020/ng-nest-ui-list.mjs +37 -16
  55. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  56. package/fesm2020/ng-nest-ui-menu.mjs +2 -2
  57. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  58. package/fesm2020/ng-nest-ui-resizable.mjs +17 -5
  59. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  60. package/list/examples/en_US/default/size/README.md +6 -0
  61. package/list/examples/zh_CN/default/size/README.md +6 -0
  62. package/list/list-option.component.d.ts +8 -2
  63. package/list/list.property.d.ts +13 -3
  64. package/package.json +1 -1
  65. package/rate/examples/en_US/default/color/README.md +6 -0
  66. package/rate/examples/zh_CN/default/color/README.md +6 -0
  67. package/resizable/resizable.directive.d.ts +4 -1
  68. package/style/core/index.css +3 -0
  69. package/style/core/index.css.map +1 -1
  70. package/style/directives/resizable/mixin.scss +5 -0
  71. package/tag/examples/zh_CN/default/bordered/README.md +1 -1
@@ -31,6 +31,7 @@ export class XDialogComponent extends XDialogProperty {
31
31
  this.contentBox = {};
32
32
  this.distance = { x: 0, y: 0 };
33
33
  this.viewInit = false;
34
+ this.action = null;
34
35
  this._unSubject = new Subject();
35
36
  this.scrollStrategy = this.protalService.overlay.scrollStrategies.block();
36
37
  }
@@ -73,8 +74,7 @@ export class XDialogComponent extends XDialogProperty {
73
74
  this.create();
74
75
  }
75
76
  else {
76
- this.detach();
77
- // this.visibleChange.emit(false);
77
+ this.onClose('close', false);
78
78
  }
79
79
  }
80
80
  create() {
@@ -114,7 +114,7 @@ export class XDialogComponent extends XDialogProperty {
114
114
  });
115
115
  }
116
116
  if (this.hasBackdrop && this.backdropClose && this.dialogRef?.overlayRef) {
117
- this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose());
117
+ this.backdropClick$ = this.dialogRef.overlayRef.backdropClick().subscribe(() => this.onClose('close'));
118
118
  }
119
119
  }
120
120
  setWidthHeight() {
@@ -127,24 +127,29 @@ export class XDialogComponent extends XDialogProperty {
127
127
  this.maximize = false;
128
128
  }
129
129
  }
130
- detach() {
131
- if (this.portalAttached()) {
132
- this.visible = false;
133
- this.visibleChange.emit(this.visible);
134
- this.dialogRef?.overlayRef?.detach();
135
- this.unsubscribe();
136
- this.close.emit();
137
- }
138
- }
139
130
  portalAttached() {
140
131
  return this.dialogRef?.overlayRef?.hasAttached();
141
132
  }
142
- onClose() {
143
- if (XIsFunction(this.beforeClose)) {
144
- this.beforeClose();
133
+ onClose(action, execFunction = true) {
134
+ if (!this.portalAttached())
135
+ return;
136
+ if (XIsFunction(this.beforeClose) && execFunction) {
137
+ this.beforeClose(action);
138
+ this.action = action;
145
139
  }
146
140
  else {
147
- this.detach();
141
+ this.visible = false;
142
+ this.visibleChange.emit(this.visible);
143
+ this.dialogRef?.overlayRef?.detach();
144
+ this.unsubscribe();
145
+ if ([action, this.action].includes('confirm')) {
146
+ this.confirm.emit();
147
+ }
148
+ if ([action, this.action].includes('cancel')) {
149
+ this.cancel.emit();
150
+ }
151
+ this.action = null;
152
+ this.close.emit();
148
153
  }
149
154
  }
150
155
  onDragEnded($event) {
@@ -208,14 +213,6 @@ export class XDialogComponent extends XDialogProperty {
208
213
  }
209
214
  }
210
215
  }
211
- onCancel() {
212
- this.onClose();
213
- this.cancel.emit();
214
- }
215
- onConfirm() {
216
- this.onClose();
217
- this.confirm.emit();
218
- }
219
216
  moveDone($event) {
220
217
  if ($event.toState === 'void') {
221
218
  this.closeDone.emit($event);
@@ -241,12 +238,12 @@ export class XDialogComponent extends XDialogProperty {
241
238
  }
242
239
  }
243
240
  /** @nocollapse */ /** @nocollapse */ XDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.XPortalService }, { token: i2.Overlay }, { token: i3.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
244
- /** @nocollapse */ /** @nocollapse */ XDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XDialogComponent, selector: "x-dialog", viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose()\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}.x-dialog-container x-dialog{width:100%}\n"], components: [{ type: i4.XAlertComponent, selector: "x-alert" }, { type: i5.XButtonsComponent, selector: "x-buttons" }, { type: i5.XButtonComponent, selector: "x-button" }], directives: [{ type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
241
+ /** @nocollapse */ /** @nocollapse */ XDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XDialogComponent, selector: "x-dialog", viewQueries: [{ propertyName: "dialogTpl", first: true, predicate: ["dialogTpl"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #dialogTpl>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}.x-dialog-container x-dialog{width:100%}\n"], components: [{ type: i4.XAlertComponent, selector: "x-alert" }, { type: i5.XButtonsComponent, selector: "x-buttons" }, { type: i5.XButtonComponent, selector: "x-button" }], directives: [{ type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
245
242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogComponent, decorators: [{
246
243
  type: Component,
247
- args: [{ selector: `${XDialogPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XMoveBoxAnimation], template: "<ng-template #dialogTpl>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose()\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}.x-dialog-container x-dialog{width:100%}\n"] }]
244
+ args: [{ selector: `${XDialogPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XMoveBoxAnimation], template: "<ng-template #dialogTpl>\r\n <div\r\n class=\"x-dialog\"\r\n [@x-move-box-animation]=\"placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n [class.x-dialog-maximize]=\"isMaximize\"\r\n [class.x-dialog-resizable]=\"resizable\"\r\n [class.x-dialog-default-maximize]=\"isDefaultMaximize\"\r\n >\r\n <x-alert\r\n [draggable]=\"draggable && dialogBox['draggable']\"\r\n [resizable]=\"resizable && dialogBox['resizable']\"\r\n [dragFreeDragPosition]=\"dialogBox['distance']\"\r\n [offsetLeft]=\"offsetLeft\"\r\n [offsetTop]=\"offsetTop\"\r\n [minWidth]=\"dialogBox['minWidth']\"\r\n [minHeight]=\"dialogBox['minHeight']\"\r\n [dragBoundary]=\"'.cdk-overlay-container'\"\r\n [title]=\"title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"type\"\r\n [effect]=\"effect\"\r\n [hideClose]=\"hideClose\"\r\n [closeText]=\"closeText\"\r\n [operationTpl]=\"operationTpl\"\r\n (close)=\"onClose('close')\"\r\n (dragEnded)=\"onDragEnded($event)\"\r\n (resizing)=\"onResizing($event)\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #contentTpl>\r\n <div class=\"x-dialog-inner\">\r\n <div class=\"x-dialog-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"x-dialog-buttons\" [class.x-dialog-buttons-center]=\"buttonsCenter\">\r\n <ng-container *xOutlet=\"footer\">\r\n <x-buttons space=\"1\" *ngIf=\"showCancel || showConfirm\">\r\n <x-button *ngIf=\"showCancel\" (click)=\"onClose('cancel')\">{{ getCancelText }}</x-button>\r\n <x-button *ngIf=\"showConfirm\" type=\"primary\" (click)=\"onClose('confirm')\">{{ getConfirmText }}</x-button>\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #operationTpl>\r\n <ng-container *ngIf=\"maximize || resizable\">\r\n <x-button size=\"small\" [icon]=\"isMaximize ? 'fto-minimize' : 'fto-maximize'\" [onlyIcon]=\"true\" (click)=\"onSize()\"></x-button>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".x-dialog{margin:0;padding:0;width:100%;height:100%}.x-dialog>x-alert{height:100%}.x-dialog>x-alert .x-alert{min-height:100%;height:-moz-fit-content;height:fit-content;align-items:inherit;padding:0}.x-dialog>x-alert .x-alert-inner{min-height:100%;display:flex;flex-direction:column}.x-dialog>x-alert .x-alert-title{padding:1rem 1rem 0}.x-dialog>x-alert .x-alert-content{flex:1;display:flex;flex-direction:column;padding:0 1rem .5rem}.x-dialog-inner{display:flex;flex-direction:column;margin:.5rem 0;flex:1}.x-dialog-buttons{display:flex;justify-content:flex-end}.x-dialog-buttons>x-buttons{margin-top:1rem;align-self:flex-end}.x-dialog-buttons-center{justify-content:center}.x-dialog-content{display:inline-flex;flex-direction:column;flex:1;max-height:70vh;overflow:auto;min-height:2rem}.x-dialog-maximize>x-alert .x-alert{left:0!important;top:0!important}.x-dialog-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important}.x-dialog-default-maximize .x-dialog-content{max-height:calc(100vh - 7rem)!important;height:calc(100vh - 7rem)!important;flex:initial}.x-dialog-container x-dialog{width:100%}\n"] }]
248
245
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.XPortalService }, { type: i2.Overlay }, { type: i3.XI18nService }]; }, propDecorators: { dialogTpl: [{
249
246
  type: ViewChild,
250
247
  args: ['dialogTpl', { static: false }]
251
248
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUlqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBcUIsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBZ0IsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVloRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQTJCbkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsYUFBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsSUFBa0I7UUFFekIsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixTQUFJLEdBQUosSUFBSSxD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ZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYTW92ZUJveEFuaW1hdGlvbiwgWElzQ2hhbmdlLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUHJlZml4LCBYRGlhbG9nT3ZlcmxheVJlZiwgWERpYWxvZ1Byb3BlcnR5LCBYRGlhbG9nQ29udGFpbmVyIH0gZnJvbSAnLi9kaWFsb2cucHJvcGVydHknO1xyXG5pbXBvcnQgeyBQb3J0YWxSZXNpemFibGVQcmVmaXgsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJsb2NrU2Nyb2xsU3RyYXRlZ3ksIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFhJMThuRGlhbG9nLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENka0RyYWdFbmQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWFJlc2l6YWJsZUV2ZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcmVzaXphYmxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGlhbG9nUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWE1vdmVCb3hBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgWERpYWxvZ1Byb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RwbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkaWFsb2dUcGwhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICBkaWFsb2dSZWYhOiBYRGlhbG9nT3ZlcmxheVJlZjtcclxuICBiYWNrZHJvcENsaWNrJCE6IFN1YnNjcmlwdGlvbjtcclxuICBzY3JvbGxTdHJhdGVneTogQmxvY2tTY3JvbGxTdHJhdGVneTtcclxuICBsb2NhbGU6IFhJMThuRGlhbG9nID0ge307XHJcbiAgb3ZlcmxheUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcclxuICBkaWFsb2dDb250ZW50PzogSFRNTEVsZW1lbnQ7XHJcbiAgaW5pdEhlaWdodD8gPSAwO1xyXG4gIGluaXRDb250ZW50SGVpZ2h0PyA9IDA7XHJcbiAgaXNNYXhpbWl6ZSA9IGZhbHNlO1xyXG4gIGlzRGVmYXVsdE1heGltaXplID0gZmFsc2U7XHJcbiAgZGlhbG9nQm94OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgY29udGVudEJveDogWFJlc2l6YWJsZUV2ZW50ID0ge307XHJcbiAgZGlzdGFuY2UgPSB7IHg6IDAsIHk6IDAgfTtcclxuICB2aWV3SW5pdCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgZ2V0Q2FuY2VsVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNhbmNlbFRleHQgfHwgdGhpcy5sb2NhbGUuY2FuY2VsVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBnZXRDb25maXJtVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1UZXh0IHx8IHRoaXMubG9jYWxlLmNvbmZpcm1UZXh0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHB1YmxpYyBwcm90YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGkxOG46IFhJMThuU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLnByb3RhbFNlcnZpY2Uub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmRpYWxvZyBhcyBYSTE4bkRpYWxvZyksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydkcmFnZ2FibGUnXSA9IHRoaXMuZHJhZ2dhYmxlO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ3Jlc2l6YWJsZSddID0gdGhpcy5yZXNpemFibGU7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHZpc2libGUgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UodmlzaWJsZSkgJiYgdGhpcy5zZXRWaXNpYmxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmlld0luaXQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnZpc2libGUgJiYgdGhpcy5jcmVhdGUoKSk7XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIHRoaXMuYmFja2Ryb3BDbGljayQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWaXNpYmxlKCkge1xyXG4gICAgaWYgKCF0aGlzLnZpZXdJbml0KSByZXR1cm47XHJcbiAgICBpZiAodGhpcy52aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFjaCgpO1xyXG4gICAgICAvLyB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMucHJvdGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiB0aGlzLmRpYWxvZ1RwbCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgcGFuZWxDbGFzczogW1hEaWFsb2dDb250YWluZXIsIHRoaXMuY2xhc3NOYW1lXSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogQm9vbGVhbih0aGlzLmhhc0JhY2tkcm9wKSxcclxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcclxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5wcm90YWxTZXJ2aWNlLnNldFBsYWNlKHRoaXMucGxhY2VtZW50LCB0aGlzLm9mZnNldClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IGhvc3RFbGVtZW50LCBvdmVybGF5RWxlbWVudCB9ID0gdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZiE7XHJcbiAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gb3ZlcmxheUVsZW1lbnQ7XHJcbiAgICB0aGlzLnNldFdpZHRoSGVpZ2h0KCk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuZGlhbG9nQm94LCB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5yZXNpemFibGUgJiYgIXRoaXMuaXNEZWZhdWx0TWF4aW1pemUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudCwgUG9ydGFsUmVzaXphYmxlUHJlZml4KTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRpYWxvZ0JveCwgdGhpcy5wcm90YWxTZXJ2aWNlLnNldFJlc2l6YWJsZSh0aGlzLm92ZXJsYXlFbGVtZW50ISwgdGhpcy5wbGFjZW1lbnQpKTtcclxuICAgICAgICB0aGlzLm9mZnNldExlZnQgPSB0aGlzLm92ZXJsYXlFbGVtZW50IS5vZmZzZXRMZWZ0O1xyXG4gICAgICAgIHRoaXMub2Zmc2V0VG9wID0gdGhpcy5vdmVybGF5RWxlbWVudCEub2Zmc2V0VG9wO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RyYWdnYWJsZSA9IHRoaXMub3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy54LWFsZXJ0LWRyYWdnYWJsZScpITtcclxuICAgICAgICB0aGlzLmluaXRIZWlnaHQgPSBkaWFsb2dEcmFnZ2FibGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuZGlhbG9nQ29udGVudCA9IHRoaXMub3ZlcmxheUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy54LWRpYWxvZy1jb250ZW50JykhO1xyXG4gICAgICAgIHRoaXMuaW5pdENvbnRlbnRIZWlnaHQgPSB0aGlzLmRpYWxvZ0NvbnRlbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmhhc0JhY2tkcm9wICYmIHRoaXMuYmFja2Ryb3BDbG9zZSAmJiB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLmJhY2tkcm9wQ2xpY2skID0gdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DbG9zZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZHRoSGVpZ2h0KCkge1xyXG4gICAgY29uc3Qgd3MgPSBbJzEwMCUnLCAnMTAwdncnXTtcclxuICAgIGNvbnN0IGhzID0gWycxMDAlJywgJzEwMHZoJ107XHJcbiAgICBpZiAod3MuaW5jbHVkZXModGhpcy53aWR0aCBhcyBzdHJpbmcpICYmIGhzLmluY2x1ZGVzKHRoaXMuaGVpZ2h0IGFzIHN0cmluZykpIHtcclxuICAgICAgdGhpcy5pc0RlZmF1bHRNYXhpbWl6ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVzaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWF4aW1pemUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRldGFjaCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMudmlzaWJsZSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIGlmIChYSXNGdW5jdGlvbih0aGlzLmJlZm9yZUNsb3NlKSkge1xyXG4gICAgICB0aGlzLmJlZm9yZUNsb3NlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFjaCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EcmFnRW5kZWQoJGV2ZW50OiBDZGtEcmFnRW5kKSB7XHJcbiAgICB0aGlzLmRpc3RhbmNlID0geyB4OiB0aGlzLmRpc3RhbmNlLnggKyAkZXZlbnQuZGlzdGFuY2UueCwgeTogdGhpcy5kaXN0YW5jZS55ICsgJGV2ZW50LmRpc3RhbmNlLnkgfTtcclxuICB9XHJcblxyXG4gIG9uU2l6ZSgpIHtcclxuICAgIGlmICghdGhpcy5kaWFsb2dSZWYpIHJldHVybjtcclxuICAgIHRoaXMuaXNNYXhpbWl6ZSA9ICF0aGlzLmlzTWF4aW1pemU7XHJcbiAgICBpZiAodGhpcy5pc01heGltaXplKSB7XHJcbiAgICAgIHRoaXMub25NYXhpbWl6ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbk1pbmltaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1heGltaXplKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYub3ZlcmxheVJlZj8udXBkYXRlU2l6ZSh7XHJcbiAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgICBtaW5XaWR0aDogJzEwMCUnLFxyXG4gICAgICBtaW5IZWlnaHQ6ICcxMDAlJ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluV2lkdGgnXSA9ICcxMDAlJztcclxuICAgIHRoaXMuZGlhbG9nQm94WydtaW5IZWlnaHQnXSA9ICcxMDAlJztcclxuICAgIHRoaXMuZGlhbG9nQm94WydkcmFnZ2FibGUnXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ3Jlc2l6YWJsZSddID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5yZXNpemFibGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luJywgJzAgMCAwIDAnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyYWdnYWJsZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0JveFsnZGlzdGFuY2UnXSA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25NaW5pbWl6ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nQm94WydtaW5XaWR0aCddID0gdGhpcy5taW5XaWR0aDtcclxuICAgIHRoaXMuZGlhbG9nQm94WydtaW5IZWlnaHQnXSA9IHRoaXMubWluSGVpZ2h0O1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ2RyYWdnYWJsZSddID0gdGhpcy5kcmFnZ2FibGU7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsncmVzaXphYmxlJ10gPSB0aGlzLnJlc2l6YWJsZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLm92ZXJsYXlSZWY/LnVwZGF0ZVNpemUoe1xyXG4gICAgICB3aWR0aDogdGhpcy5kaWFsb2dCb3hbJ3dpZHRoJ10sXHJcbiAgICAgIGhlaWdodDogdGhpcy5kaWFsb2dCb3hbJ2hlaWdodCddLFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5kaWFsb2dCb3hbJ21pbldpZHRoJ10sXHJcbiAgICAgIG1pbkhlaWdodDogdGhpcy5kaWFsb2dCb3hbJ21pbkhlaWdodCddXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLmRyYWdnYWJsZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0JveFsnZGlzdGFuY2UnXSA9IHsgLi4udGhpcy5kaXN0YW5jZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0JveFsnbWFyZ2luVG9wJ10pIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4tdG9wJywgYCR7dGhpcy5kaWFsb2dCb3hbJ21hcmdpblRvcCddfWApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0JveFsnbWFyZ2luTGVmdCddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLWxlZnQnLCBgJHt0aGlzLmRpYWxvZ0JveFsnbWFyZ2luTGVmdCddfWApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0JveFsnbWFyZ2luUmlnaHQnXSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbi1yaWdodCcsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5SaWdodCddfWApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0JveFsnbWFyZ2luQm90dG9tJ10pIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4tYm90dG9tJywgYCR7dGhpcy5kaWFsb2dCb3hbJ21hcmdpbkJvdHRvbSddfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpIHtcclxuICAgIHRoaXMub25DbG9zZSgpO1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25Db25maXJtKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICB0aGlzLmNvbmZpcm0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbW92ZURvbmUoJGV2ZW50OiB7IHRvU3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICBpZiAoJGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICB0aGlzLmNsb3NlRG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICAgIHRoaXMuaXNNYXhpbWl6ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRpYWxvZ0JveCA9IHtcclxuICAgICAgICBkcmFnZ2FibGU6IHRoaXMuZHJhZ2dhYmxlLFxyXG4gICAgICAgIHJlc2l6YWJsZTogdGhpcy5yZXNpemFibGVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5kaXN0YW5jZSA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJlc2l6aW5nKGV2ZW50OiBYUmVzaXphYmxlRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBOdW1iZXIodGhpcy5pbml0Q29udGVudEhlaWdodCkgKyBOdW1iZXIoZXZlbnQuY2xpZW50SGVpZ2h0KSAtIE51bWJlcih0aGlzLmluaXRIZWlnaHQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdtYXgtaGVpZ2h0JywgJ2luaXRpYWwnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kaWFsb2dDb250ZW50LCAnZmxleCcsICdpbml0aWFsJyk7XHJcbiAgICBpZiAoWyd0b3Atc3RhcnQnLCAndG9wLWVuZCcsICdib3R0b20nLCAndG9wJywgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJ10uaW5jbHVkZXMoZXZlbnQuZGlyZWN0aW9uIGFzIHN0cmluZykpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdoZWlnaHQnLCBgJHtjb250ZW50SGVpZ2h0fXB4YCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjZGlhbG9nVHBsPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1kaWFsb2dcIlxyXG4gICAgW0B4LW1vdmUtYm94LWFuaW1hdGlvbl09XCJwbGFjZW1lbnRcIlxyXG4gICAgKEB4LW1vdmUtYm94LWFuaW1hdGlvbi5kb25lKT1cIm1vdmVEb25lKCRldmVudClcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLW1heGltaXplXT1cImlzTWF4aW1pemVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLXJlc2l6YWJsZV09XCJyZXNpemFibGVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLWRlZmF1bHQtbWF4aW1pemVdPVwiaXNEZWZhdWx0TWF4aW1pemVcIlxyXG4gID5cclxuICAgIDx4LWFsZXJ0XHJcbiAgICAgIFtkcmFnZ2FibGVdPVwiZHJhZ2dhYmxlICYmIGRpYWxvZ0JveFsnZHJhZ2dhYmxlJ11cIlxyXG4gICAgICBbcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiBkaWFsb2dCb3hbJ3Jlc2l6YWJsZSddXCJcclxuICAgICAgW2RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRpYWxvZ0JveFsnZGlzdGFuY2UnXVwiXHJcbiAgICAgIFtvZmZzZXRMZWZ0XT1cIm9mZnNldExlZnRcIlxyXG4gICAgICBbb2Zmc2V0VG9wXT1cIm9mZnNldFRvcFwiXHJcbiAgICAgIFttaW5XaWR0aF09XCJkaWFsb2dCb3hbJ21pbldpZHRoJ11cIlxyXG4gICAgICBbbWluSGVpZ2h0XT1cImRpYWxvZ0JveFsnbWluSGVpZ2h0J11cIlxyXG4gICAgICBbZHJhZ0JvdW5kYXJ5XT1cIicuY2RrLW92ZXJsYXktY29udGFpbmVyJ1wiXHJcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICAgIFtjb250ZW50XT1cImNvbnRlbnRUcGxcIlxyXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxyXG4gICAgICBbaGlkZUNsb3NlXT1cImhpZGVDbG9zZVwiXHJcbiAgICAgIFtjbG9zZVRleHRdPVwiY2xvc2VUZXh0XCJcclxuICAgICAgW29wZXJhdGlvblRwbF09XCJvcGVyYXRpb25UcGxcIlxyXG4gICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcclxuICAgICAgKGRyYWdFbmRlZCk9XCJvbkRyYWdFbmRlZCgkZXZlbnQpXCJcclxuICAgICAgKHJlc2l6aW5nKT1cIm9uUmVzaXppbmcoJGV2ZW50KVwiXHJcbiAgICAgIHNob3dJY29uPVwiZmFsc2VcIlxyXG4gICAgICBkdXJhdGlvbj1cIjBcIlxyXG4gICAgICBtYW51YWxcclxuICAgICAgZGlzYWJsZWRBbmltYXRpb25cclxuICAgID48L3gtYWxlcnQ+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGlhbG9nLWlubmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRpYWxvZy1idXR0b25zXCIgW2NsYXNzLngtZGlhbG9nLWJ1dHRvbnMtY2VudGVyXT1cImJ1dHRvbnNDZW50ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImZvb3RlclwiPlxyXG4gICAgICAgIDx4LWJ1dHRvbnMgc3BhY2U9XCIxXCIgKm5nSWY9XCJzaG93Q2FuY2VsIHx8IHNob3dDb25maXJtXCI+XHJcbiAgICAgICAgICA8eC1idXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj57eyBnZXRDYW5jZWxUZXh0IH19PC94LWJ1dHRvbj5cclxuICAgICAgICAgIDx4LWJ1dHRvbiAqbmdJZj1cInNob3dDb25maXJtXCIgdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwib25Db25maXJtKClcIj57eyBnZXRDb25maXJtVGV4dCB9fTwveC1idXR0b24+XHJcbiAgICAgICAgPC94LWJ1dHRvbnM+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI29wZXJhdGlvblRwbD5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWF4aW1pemUgfHwgcmVzaXphYmxlXCI+XHJcbiAgICA8eC1idXR0b24gc2l6ZT1cInNtYWxsXCIgW2ljb25dPVwiaXNNYXhpbWl6ZSA/ICdmdG8tbWluaW1pemUnIDogJ2Z0by1tYXhpbWl6ZSdcIiBbb25seUljb25dPVwidHJ1ZVwiIChjbGljayk9XCJvblNpemUoKVwiPjwveC1idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUlqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBcUIsZUFBZSxFQUFFLGdCQUFnQixFQUFpQixNQUFNLG1CQUFtQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFZaEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUE0Qm5ELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsZ0JBQWtDLEVBQ2xDLGFBQTZCLEVBQzdCLE9BQWdCLEVBQ2hCLElBQWtCO1FBRXpCLEtBQUssRUFBRSxDQUFDO1FBUkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQTlCM0IsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFJLENBQUMsQ0FBQztRQUNoQixzQkFBaUIsR0FBSSxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUEyQixFQUFFLENBQUM7UUFDdkMsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQXlCLElBQUksQ0FBQztRQUU1QixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQW9CdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBbkJELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBZUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBcUIsQ0FBQyxFQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLGFBQWEsRUFBRTtnQkFDYixVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3RDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDM0U7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVyxDQUFDO1FBQ25FLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUMzRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNyRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFlLENBQUMsVUFBVSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFlLENBQUMsU0FBUyxDQUFDO2dCQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBRSxDQUFDO2dCQUNsRixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUUsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRTtZQUN4RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDeEc7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBZSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBZ0IsQ0FBQyxFQUFFO1lBQzNFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFxQixFQUFFLFlBQVksR0FBRyxJQUFJO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztRQUNuQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsTUFBa0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7WUFDcEMsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxNQUFNO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7WUFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkQ7UUFDRCxJ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LEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxpQkFBaUIsQ0FBQztzUUFHWSxTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWE1vdmVCb3hBbmltYXRpb24sIFhJc0NoYW5nZSwgWElzRnVuY3Rpb24gfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWERpYWxvZ1ByZWZpeCwgWERpYWxvZ092ZXJsYXlSZWYsIFhEaWFsb2dQcm9wZXJ0eSwgWERpYWxvZ0NvbnRhaW5lciwgWERpYWxvZ0FjdGlvbiB9IGZyb20gJy4vZGlhbG9nLnByb3BlcnR5JztcclxuaW1wb3J0IHsgUG9ydGFsUmVzaXphYmxlUHJlZml4LCBYUG9ydGFsU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBYSTE4bkRpYWxvZywgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRW5kIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFhSZXNpemFibGVFdmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3Jlc2l6YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERpYWxvZ1ByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hNb3ZlQm94QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIFhEaWFsb2dQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dUcGwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGlhbG9nVHBsITogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgZGlhbG9nUmVmITogWERpYWxvZ092ZXJsYXlSZWY7XHJcbiAgYmFja2Ryb3BDbGljayQhOiBTdWJzY3JpcHRpb247XHJcbiAgc2Nyb2xsU3RyYXRlZ3k6IEJsb2NrU2Nyb2xsU3RyYXRlZ3k7XHJcbiAgbG9jYWxlOiBYSTE4bkRpYWxvZyA9IHt9O1xyXG4gIG92ZXJsYXlFbGVtZW50PzogSFRNTEVsZW1lbnQ7XHJcbiAgZGlhbG9nQ29udGVudD86IEhUTUxFbGVtZW50O1xyXG4gIGluaXRIZWlnaHQ/ID0gMDtcclxuICBpbml0Q29udGVudEhlaWdodD8gPSAwO1xyXG4gIGlzTWF4aW1pemUgPSBmYWxzZTtcclxuICBpc0RlZmF1bHRNYXhpbWl6ZSA9IGZhbHNlO1xyXG4gIGRpYWxvZ0JveDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gIGNvbnRlbnRCb3g6IFhSZXNpemFibGVFdmVudCA9IHt9O1xyXG4gIGRpc3RhbmNlID0geyB4OiAwLCB5OiAwIH07XHJcbiAgdmlld0luaXQgPSBmYWxzZTtcclxuICBhY3Rpb246IFhEaWFsb2dBY3Rpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldENhbmNlbFRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYW5jZWxUZXh0IHx8IHRoaXMubG9jYWxlLmNhbmNlbFRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q29uZmlybVRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtVGV4dCB8fCB0aGlzLmxvY2FsZS5jb25maXJtVGV4dDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwdWJsaWMgcHJvdGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5wcm90YWxTZXJ2aWNlLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kaWFsb2cgYXMgWEkxOG5EaWFsb2cpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnZHJhZ2dhYmxlJ10gPSB0aGlzLmRyYWdnYWJsZTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydyZXNpemFibGUnXSA9IHRoaXMucmVzaXphYmxlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyB2aXNpYmxlIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKHZpc2libGUpICYmIHRoaXMuc2V0VmlzaWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnZpZXdJbml0ID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy52aXNpYmxlICYmIHRoaXMuY3JlYXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLmJhY2tkcm9wQ2xpY2skPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VmlzaWJsZSgpIHtcclxuICAgIGlmICghdGhpcy52aWV3SW5pdCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLmNyZWF0ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkNsb3NlKCdjbG9zZScsIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5wcm90YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZGlhbG9nVHBsLFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcclxuICAgICAgICBwYW5lbENsYXNzOiBbWERpYWxvZ0NvbnRhaW5lciwgdGhpcy5jbGFzc05hbWVdLFxyXG4gICAgICAgIGhhc0JhY2tkcm9wOiBCb29sZWFuKHRoaXMuaGFzQmFja2Ryb3ApLFxyXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXHJcbiAgICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCxcclxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnByb3RhbFNlcnZpY2Uuc2V0UGxhY2UodGhpcy5wbGFjZW1lbnQsIHRoaXMub2Zmc2V0KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgaG9zdEVsZW1lbnQsIG92ZXJsYXlFbGVtZW50IH0gPSB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmITtcclxuICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSBvdmVybGF5RWxlbWVudDtcclxuICAgIHRoaXMuc2V0V2lkdGhIZWlnaHQoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5kaWFsb2dCb3gsIHtcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMubWluSGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnJlc2l6YWJsZSAmJiAhdGhpcy5pc0RlZmF1bHRNYXhpbWl6ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50LCBQb3J0YWxSZXNpemFibGVQcmVmaXgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGlhbG9nQm94LCB0aGlzLnByb3RhbFNlcnZpY2Uuc2V0UmVzaXphYmxlKHRoaXMub3ZlcmxheUVsZW1lbnQhLCB0aGlzLnBsYWNlbWVudCkpO1xyXG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IHRoaXMub3ZlcmxheUVsZW1lbnQhLm9mZnNldExlZnQ7XHJcbiAgICAgICAgdGhpcy5vZmZzZXRUb3AgPSB0aGlzLm92ZXJsYXlFbGVtZW50IS5vZmZzZXRUb3A7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nRHJhZ2dhYmxlID0gdGhpcy5vdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignLngtYWxlcnQtZHJhZ2dhYmxlJykhO1xyXG4gICAgICAgIHRoaXMuaW5pdEhlaWdodCA9IGRpYWxvZ0RyYWdnYWJsZS5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dDb250ZW50ID0gdGhpcy5vdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignLngtZGlhbG9nLWNvbnRlbnQnKSE7XHJcbiAgICAgICAgdGhpcy5pbml0Q29udGVudEhlaWdodCA9IHRoaXMuZGlhbG9nQ29udGVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzQmFja2Ryb3AgJiYgdGhpcy5iYWNrZHJvcENsb3NlICYmIHRoaXMuZGlhbG9nUmVmPy5vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuYmFja2Ryb3BDbGljayQgPSB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNsb3NlKCdjbG9zZScpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFdpZHRoSGVpZ2h0KCkge1xyXG4gICAgY29uc3Qgd3MgPSBbJzEwMCUnLCAnMTAwdncnXTtcclxuICAgIGNvbnN0IGhzID0gWycxMDAlJywgJzEwMHZoJ107XHJcbiAgICBpZiAod3MuaW5jbHVkZXModGhpcy53aWR0aCBhcyBzdHJpbmcpICYmIGhzLmluY2x1ZGVzKHRoaXMuaGVpZ2h0IGFzIHN0cmluZykpIHtcclxuICAgICAgdGhpcy5pc0RlZmF1bHRNYXhpbWl6ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVzaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWF4aW1pemUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZShhY3Rpb246IFhEaWFsb2dBY3Rpb24sIGV4ZWNGdW5jdGlvbiA9IHRydWUpIHtcclxuICAgIGlmICghdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSByZXR1cm47XHJcbiAgICBpZiAoWElzRnVuY3Rpb24odGhpcy5iZWZvcmVDbG9zZSkgJiYgZXhlY0Z1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMuYmVmb3JlQ2xvc2UoYWN0aW9uKTtcclxuICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWY/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGlmIChbYWN0aW9uLCB0aGlzLmFjdGlvbl0uaW5jbHVkZXMoJ2NvbmZpcm0nKSkge1xyXG4gICAgICAgIHRoaXMuY29uZmlybS5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFthY3Rpb24sIHRoaXMuYWN0aW9uXS5pbmNsdWRlcygnY2FuY2VsJykpIHtcclxuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3Rpb24gPSBudWxsO1xyXG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJhZ0VuZGVkKCRldmVudDogQ2RrRHJhZ0VuZCkge1xyXG4gICAgdGhpcy5kaXN0YW5jZSA9IHsgeDogdGhpcy5kaXN0YW5jZS54ICsgJGV2ZW50LmRpc3RhbmNlLngsIHk6IHRoaXMuZGlzdGFuY2UueSArICRldmVudC5kaXN0YW5jZS55IH07XHJcbiAgfVxyXG5cclxuICBvblNpemUoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nUmVmKSByZXR1cm47XHJcbiAgICB0aGlzLmlzTWF4aW1pemUgPSAhdGhpcy5pc01heGltaXplO1xyXG4gICAgaWYgKHRoaXMuaXNNYXhpbWl6ZSkge1xyXG4gICAgICB0aGlzLm9uTWF4aW1pemUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25NaW5pbWl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25NYXhpbWl6ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLm92ZXJsYXlSZWY/LnVwZGF0ZVNpemUoe1xyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgbWluV2lkdGg6ICcxMDAlJyxcclxuICAgICAgbWluSGVpZ2h0OiAnMTAwJSdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ21pbldpZHRoJ10gPSAnMTAwJSc7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluSGVpZ2h0J10gPSAnMTAwJSc7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnZHJhZ2dhYmxlJ10gPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nQm94WydyZXNpemFibGUnXSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMucmVzaXphYmxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbicsICcwIDAgMCAwJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dCb3hbJ2Rpc3RhbmNlJ10gPSB7IHg6IDAsIHk6IDAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTWluaW1pemUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluV2lkdGgnXSA9IHRoaXMubWluV2lkdGg7XHJcbiAgICB0aGlzLmRpYWxvZ0JveFsnbWluSGVpZ2h0J10gPSB0aGlzLm1pbkhlaWdodDtcclxuICAgIHRoaXMuZGlhbG9nQm94WydkcmFnZ2FibGUnXSA9IHRoaXMuZHJhZ2dhYmxlO1xyXG4gICAgdGhpcy5kaWFsb2dCb3hbJ3Jlc2l6YWJsZSddID0gdGhpcy5yZXNpemFibGU7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmPy51cGRhdGVTaXplKHtcclxuICAgICAgd2lkdGg6IHRoaXMuZGlhbG9nQm94Wyd3aWR0aCddLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuZGlhbG9nQm94WydoZWlnaHQnXSxcclxuICAgICAgbWluV2lkdGg6IHRoaXMuZGlhbG9nQm94WydtaW5XaWR0aCddLFxyXG4gICAgICBtaW5IZWlnaHQ6IHRoaXMuZGlhbG9nQm94WydtaW5IZWlnaHQnXVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dCb3hbJ2Rpc3RhbmNlJ10gPSB7IC4uLnRoaXMuZGlzdGFuY2UgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlc2l6YWJsZSkge1xyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpblRvcCddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLXRvcCcsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5Ub3AnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpbkxlZnQnXSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5vdmVybGF5RWxlbWVudCwgJ21hcmdpbi1sZWZ0JywgYCR7dGhpcy5kaWFsb2dCb3hbJ21hcmdpbkxlZnQnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpblJpZ2h0J10pIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMub3ZlcmxheUVsZW1lbnQsICdtYXJnaW4tcmlnaHQnLCBgJHt0aGlzLmRpYWxvZ0JveFsnbWFyZ2luUmlnaHQnXX1gKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dCb3hbJ21hcmdpbkJvdHRvbSddKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm92ZXJsYXlFbGVtZW50LCAnbWFyZ2luLWJvdHRvbScsIGAke3RoaXMuZGlhbG9nQm94WydtYXJnaW5Cb3R0b20nXX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW92ZURvbmUoJGV2ZW50OiB7IHRvU3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICBpZiAoJGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICB0aGlzLmNsb3NlRG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICAgIHRoaXMuaXNNYXhpbWl6ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRpYWxvZ0JveCA9IHtcclxuICAgICAgICBkcmFnZ2FibGU6IHRoaXMuZHJhZ2dhYmxlLFxyXG4gICAgICAgIHJlc2l6YWJsZTogdGhpcy5yZXNpemFibGVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5kaXN0YW5jZSA9IHsgeDogMCwgeTogMCB9O1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZj8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RG9uZS5lbWl0KCRldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJlc2l6aW5nKGV2ZW50OiBYUmVzaXphYmxlRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBOdW1iZXIodGhpcy5pbml0Q29udGVudEhlaWdodCkgKyBOdW1iZXIoZXZlbnQuY2xpZW50SGVpZ2h0KSAtIE51bWJlcih0aGlzLmluaXRIZWlnaHQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdtYXgtaGVpZ2h0JywgJ2luaXRpYWwnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kaWFsb2dDb250ZW50LCAnZmxleCcsICdpbml0aWFsJyk7XHJcbiAgICBpZiAoWyd0b3Atc3RhcnQnLCAndG9wLWVuZCcsICdib3R0b20nLCAndG9wJywgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJ10uaW5jbHVkZXMoZXZlbnQuZGlyZWN0aW9uIGFzIHN0cmluZykpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRpYWxvZ0NvbnRlbnQsICdoZWlnaHQnLCBgJHtjb250ZW50SGVpZ2h0fXB4YCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjZGlhbG9nVHBsPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwieC1kaWFsb2dcIlxyXG4gICAgW0B4LW1vdmUtYm94LWFuaW1hdGlvbl09XCJwbGFjZW1lbnRcIlxyXG4gICAgKEB4LW1vdmUtYm94LWFuaW1hdGlvbi5kb25lKT1cIm1vdmVEb25lKCRldmVudClcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLW1heGltaXplXT1cImlzTWF4aW1pemVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLXJlc2l6YWJsZV09XCJyZXNpemFibGVcIlxyXG4gICAgW2NsYXNzLngtZGlhbG9nLWRlZmF1bHQtbWF4aW1pemVdPVwiaXNEZWZhdWx0TWF4aW1pemVcIlxyXG4gID5cclxuICAgIDx4LWFsZXJ0XHJcbiAgICAgIFtkcmFnZ2FibGVdPVwiZHJhZ2dhYmxlICYmIGRpYWxvZ0JveFsnZHJhZ2dhYmxlJ11cIlxyXG4gICAgICBbcmVzaXphYmxlXT1cInJlc2l6YWJsZSAmJiBkaWFsb2dCb3hbJ3Jlc2l6YWJsZSddXCJcclxuICAgICAgW2RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cImRpYWxvZ0JveFsnZGlzdGFuY2UnXVwiXHJcbiAgICAgIFtvZmZzZXRMZWZ0XT1cIm9mZnNldExlZnRcIlxyXG4gICAgICBbb2Zmc2V0VG9wXT1cIm9mZnNldFRvcFwiXHJcbiAgICAgIFttaW5XaWR0aF09XCJkaWFsb2dCb3hbJ21pbldpZHRoJ11cIlxyXG4gICAgICBbbWluSGVpZ2h0XT1cImRpYWxvZ0JveFsnbWluSGVpZ2h0J11cIlxyXG4gICAgICBbZHJhZ0JvdW5kYXJ5XT1cIicuY2RrLW92ZXJsYXktY29udGFpbmVyJ1wiXHJcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgICAgIFtjb250ZW50XT1cImNvbnRlbnRUcGxcIlxyXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxyXG4gICAgICBbaGlkZUNsb3NlXT1cImhpZGVDbG9zZVwiXHJcbiAgICAgIFtjbG9zZVRleHRdPVwiY2xvc2VUZXh0XCJcclxuICAgICAgW29wZXJhdGlvblRwbF09XCJvcGVyYXRpb25UcGxcIlxyXG4gICAgICAoY2xvc2UpPVwib25DbG9zZSgnY2xvc2UnKVwiXHJcbiAgICAgIChkcmFnRW5kZWQpPVwib25EcmFnRW5kZWQoJGV2ZW50KVwiXHJcbiAgICAgIChyZXNpemluZyk9XCJvblJlc2l6aW5nKCRldmVudClcIlxyXG4gICAgICBzaG93SWNvbj1cImZhbHNlXCJcclxuICAgICAgZHVyYXRpb249XCIwXCJcclxuICAgICAgbWFudWFsXHJcbiAgICAgIGRpc2FibGVkQW5pbWF0aW9uXHJcbiAgICA+PC94LWFsZXJ0PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRpYWxvZy1pbm5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGlhbG9nLWNvbnRlbnRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kaWFsb2ctYnV0dG9uc1wiIFtjbGFzcy54LWRpYWxvZy1idXR0b25zLWNlbnRlcl09XCJidXR0b25zQ2VudGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJmb290ZXJcIj5cclxuICAgICAgICA8eC1idXR0b25zIHNwYWNlPVwiMVwiICpuZ0lmPVwic2hvd0NhbmNlbCB8fCBzaG93Q29uZmlybVwiPlxyXG4gICAgICAgICAgPHgtYnV0dG9uICpuZ0lmPVwic2hvd0NhbmNlbFwiIChjbGljayk9XCJvbkNsb3NlKCdjYW5jZWwnKVwiPnt7IGdldENhbmNlbFRleHQgfX08L3gtYnV0dG9uPlxyXG4gICAgICAgICAgPHgtYnV0dG9uICpuZ0lmPVwic2hvd0NvbmZpcm1cIiB0eXBlPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkNsb3NlKCdjb25maXJtJylcIj57eyBnZXRDb25maXJtVGV4dCB9fTwveC1idXR0b24+XHJcbiAgICAgICAgPC94LWJ1dHRvbnM+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI29wZXJhdGlvblRwbD5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWF4aW1pemUgfHwgcmVzaXphYmxlXCI+XHJcbiAgICA8eC1idXR0b24gc2l6ZT1cInNtYWxsXCIgW2ljb25dPVwiaXNNYXhpbWl6ZSA/ICdmdG8tbWluaW1pemUnIDogJ2Z0by1tYXhpbWl6ZSdcIiBbb25seUljb25dPVwidHJ1ZVwiIChjbGljayk9XCJvblNpemUoKVwiPjwveC1idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -11,7 +11,7 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
11
11
  import { XResizableModule } from '@ng-nest/ui/resizable';
12
12
  import { DragDropModule } from '@angular/cdk/drag-drop';
13
13
  import { XDialogProperty } from './dialog.property';
14
- import { XDialogActionsDirective, XDialogCloseDirective, XDialogContentDirective, XDialogTitleDirective } from './dialog-portal.directives';
14
+ import { XDialogActionsDirective, XDialogCloseDirective, XDialogContentDirective, XDialogDragHandleDirective, XDialogFullscreenDirective, XDialogTitleDirective } from './dialog-portal.directives';
15
15
  import { XDialogPortalComponent } from './dialog-portal.component';
16
16
  import { XDialogService } from './dialog.service';
17
17
  import * as i0 from "@angular/core";
@@ -23,6 +23,8 @@ export class XDialogModule {
23
23
  XDialogTitleDirective,
24
24
  XDialogContentDirective,
25
25
  XDialogActionsDirective,
26
+ XDialogDragHandleDirective,
27
+ XDialogFullscreenDirective,
26
28
  XDialogPortalComponent,
27
29
  XDialogProperty], imports: [CommonModule,
28
30
  FormsModule,
@@ -39,6 +41,8 @@ export class XDialogModule {
39
41
  XDialogTitleDirective,
40
42
  XDialogContentDirective,
41
43
  XDialogActionsDirective,
44
+ XDialogDragHandleDirective,
45
+ XDialogFullscreenDirective,
42
46
  XDialogPortalComponent] });
43
47
  /** @nocollapse */ /** @nocollapse */ XDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogModule, providers: [XDialogService], imports: [[
44
48
  CommonModule,
@@ -62,6 +66,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
62
66
  XDialogTitleDirective,
63
67
  XDialogContentDirective,
64
68
  XDialogActionsDirective,
69
+ XDialogDragHandleDirective,
70
+ XDialogFullscreenDirective,
65
71
  XDialogPortalComponent,
66
72
  XDialogProperty
67
73
  ],
@@ -71,6 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
71
77
  XDialogTitleDirective,
72
78
  XDialogContentDirective,
73
79
  XDialogActionsDirective,
80
+ XDialogDragHandleDirective,
81
+ XDialogFullscreenDirective,
74
82
  XDialogPortalComponent
75
83
  ],
76
84
  imports: [
@@ -89,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
89
97
  providers: [XDialogService]
90
98
  }]
91
99
  }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFtQ2xELE1BQU0sT0FBTyxhQUFhOztnSkFBYixhQUFhO2lKQUFiLGFBQWEsaUJBL0J0QixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixlQUFlLGFBV2YsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLFlBQVk7UUFDWixhQUFhO1FBQ2IsV0FBVztRQUNYLGFBQWE7UUFDYixZQUFZO1FBQ1osYUFBYTtRQUNiLGdCQUFnQixhQWxCaEIsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2QixzQkFBc0I7aUpBaUJiLGFBQWEsYUFGYixDQUFDLGNBQWMsQ0FBQyxZQWJsQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7U0FDakI7MkZBR1UsYUFBYTtrQkFqQ3pCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO29CQUNELFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEFsZXJ0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhJY29uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSW5wdXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYUmVzaXphYmxlTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcmVzaXphYmxlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWERpYWxvZ1Byb3BlcnR5IH0gZnJvbSAnLi9kaWFsb2cucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYRGlhbG9nQWN0aW9uc0RpcmVjdGl2ZSwgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLCBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSwgWERpYWxvZ1RpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaWFsb2ctcG9ydGFsLmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgWERpYWxvZ0NvbXBvbmVudCxcclxuICAgIFhEaWFsb2dDbG9zZURpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dUaXRsZURpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dDb250ZW50RGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0FjdGlvbnNEaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ1Byb3BlcnR5XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBYRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQWN0aW9uc0RpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dQb3J0YWxDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgWElucHV0TW9kdWxlLFxyXG4gICAgWEJ1dHRvbk1vZHVsZSxcclxuICAgIFhJY29uTW9kdWxlLFxyXG4gICAgWFBvcnRhbE1vZHVsZSxcclxuICAgIFhBbGVydE1vZHVsZSxcclxuICAgIFhPdXRsZXRNb2R1bGUsXHJcbiAgICBYUmVzaXphYmxlTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtYRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dNb2R1bGUge31cclxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUN0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUF1Q2xELE1BQU0sT0FBTyxhQUFhOztnSkFBYixhQUFhO2lKQUFiLGFBQWEsaUJBbkN0QixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLGVBQWUsYUFhZixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsWUFBWTtRQUNaLGFBQWE7UUFDYixXQUFXO1FBQ1gsYUFBYTtRQUNiLFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCLGFBcEJoQixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsc0JBQXNCO2lKQWlCYixhQUFhLGFBRmIsQ0FBQyxjQUFjLENBQUMsWUFibEI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXO1lBQ1gsYUFBYTtZQUNiLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1NBQ2pCOzJGQUdVLGFBQWE7a0JBckN6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO29CQUNELFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEFsZXJ0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhJY29uTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaWNvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSW5wdXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYUmVzaXphYmxlTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcmVzaXphYmxlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgWERpYWxvZ1Byb3BlcnR5IH0gZnJvbSAnLi9kaWFsb2cucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhEaWFsb2dBY3Rpb25zRGlyZWN0aXZlLFxyXG4gIFhEaWFsb2dDbG9zZURpcmVjdGl2ZSxcclxuICBYRGlhbG9nQ29udGVudERpcmVjdGl2ZSxcclxuICBYRGlhbG9nRHJhZ0hhbmRsZURpcmVjdGl2ZSxcclxuICBYRGlhbG9nRnVsbHNjcmVlbkRpcmVjdGl2ZSxcclxuICBYRGlhbG9nVGl0bGVEaXJlY3RpdmVcclxufSBmcm9tICcuL2RpYWxvZy1wb3J0YWwuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFhEaWFsb2dQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBYRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQWN0aW9uc0RpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dEcmFnSGFuZGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0Z1bGxzY3JlZW5EaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ1Byb3BlcnR5XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBYRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgWERpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ1RpdGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0NvbnRlbnREaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nQWN0aW9uc0RpcmVjdGl2ZSxcclxuICAgIFhEaWFsb2dEcmFnSGFuZGxlRGlyZWN0aXZlLFxyXG4gICAgWERpYWxvZ0Z1bGxzY3JlZW5EaXJlY3RpdmUsXHJcbiAgICBYRGlhbG9nUG9ydGFsQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFhJbnB1dE1vZHVsZSxcclxuICAgIFhCdXR0b25Nb2R1bGUsXHJcbiAgICBYSWNvbk1vZHVsZSxcclxuICAgIFhQb3J0YWxNb2R1bGUsXHJcbiAgICBYQWxlcnRNb2R1bGUsXHJcbiAgICBYT3V0bGV0TW9kdWxlLFxyXG4gICAgWFJlc2l6YWJsZU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbWERpYWxvZ1NlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGlhbG9nTW9kdWxlIHt9XHJcbiJdfQ==
@@ -34,6 +34,11 @@ export class XDialogProperty extends XAlertProperty {
34
34
  * @en_US Confirm button event
35
35
  */
36
36
  this.confirm = new EventEmitter();
37
+ /**
38
+ * @zh_CN 确认按钮的事件
39
+ * @en_US Confirm button event
40
+ */
41
+ this.close = new EventEmitter();
37
42
  /**
38
43
  * @zh_CN 显示/隐藏改变事件
39
44
  * @en_US Show/hide change events
@@ -52,7 +57,7 @@ export class XDialogProperty extends XAlertProperty {
52
57
  }
53
58
  }
54
59
  /** @nocollapse */ /** @nocollapse */ XDialogProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
55
- /** @nocollapse */ /** @nocollapse */ XDialogProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XDialogProperty, selector: "ng-component", inputs: { visible: "visible", placement: "placement", offset: "offset", type: "type", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", effect: "effect", footer: "footer", showCancel: "showCancel", cancelText: "cancelText", showConfirm: "showConfirm", confirmText: "confirmText", backdropClose: "backdropClose", hasBackdrop: "hasBackdrop", className: "className", buttonsCenter: "buttonsCenter", draggable: "draggable", resizable: "resizable", maximize: "maximize", beforeClose: "beforeClose" }, outputs: { cancel: "cancel", confirm: "confirm", visibleChange: "visibleChange", showDone: "showDone", closeDone: "closeDone" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
60
+ /** @nocollapse */ /** @nocollapse */ XDialogProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XDialogProperty, selector: "ng-component", inputs: { visible: "visible", placement: "placement", offset: "offset", type: "type", width: "width", height: "height", minWidth: "minWidth", minHeight: "minHeight", effect: "effect", footer: "footer", showCancel: "showCancel", cancelText: "cancelText", showConfirm: "showConfirm", confirmText: "confirmText", backdropClose: "backdropClose", hasBackdrop: "hasBackdrop", className: "className", buttonsCenter: "buttonsCenter", draggable: "draggable", resizable: "resizable", maximize: "maximize", beforeClose: "beforeClose" }, outputs: { cancel: "cancel", confirm: "confirm", close: "close", visibleChange: "visibleChange", showDone: "showDone", closeDone: "closeDone" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
56
61
  __decorate([
57
62
  XInputBoolean()
58
63
  ], XDialogProperty.prototype, "visible", void 0);
@@ -69,7 +74,7 @@ __decorate([
69
74
  XWithConfig(X_DIALOG_CONFIG_NAME, '18rem')
70
75
  ], XDialogProperty.prototype, "minWidth", void 0);
71
76
  __decorate([
72
- XWithConfig(X_DIALOG_CONFIG_NAME, '9rem')
77
+ XWithConfig(X_DIALOG_CONFIG_NAME, '8rem')
73
78
  ], XDialogProperty.prototype, "minHeight", void 0);
74
79
  __decorate([
75
80
  XWithConfig(X_DIALOG_CONFIG_NAME, 'white')
@@ -162,6 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
162
167
  type: Output
163
168
  }], confirm: [{
164
169
  type: Output
170
+ }], close: [{
171
+ type: Output
165
172
  }], visibleChange: [{
166
173
  type: Output
167
174
  }], showDone: [{
@@ -169,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
169
176
  }], closeDone: [{
170
177
  type: Output
171
178
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBb0IsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBbUIsYUFBYSxFQUFnQyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLG1CQUFtQixDQUFDOztBQUtqRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDO0FBRXBFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQURuRDs7UUFFNEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQVduRDs7O1dBR0c7UUFDZSxTQUFJLEdBQWdCLE1BQU0sQ0FBQztRQTRGN0M7OztXQUdHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEM7OztXQUdHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkM7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzdDOzs7V0FHRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0tBQy9DOztrSkFySVksZUFBZTtzSUFBZixlQUFlLDB0QkFETCxFQUFFO0FBRUc7SUFBaEIsYUFBYSxFQUFFO2dEQUEwQjtBQUtXO0lBQXBELFdBQVcsQ0FBUyxvQkFBb0IsRUFBRSxRQUFRLENBQUM7a0RBQW9CO0FBS3JCO0lBQWxELFdBQVcsQ0FBUyxvQkFBb0IsRUFBRSxNQUFNLENBQUM7K0NBQWlCO0FBVWY7SUFBbkQsV0FBVyxDQUFTLG9CQUFvQixFQUFFLE9BQU8sQ0FBQzs4Q0FBZ0I7QUFVZjtJQUFuRCxXQUFXLENBQVMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDO2lEQUE0QjtBQUs1QjtJQUFsRCxXQUFXLENBQVMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO2tEQUE2QjtBQUsxQjtJQUFwRCxXQUFXLENBQVUsb0JBQW9CLEVBQUUsT0FBTyxDQUFDOytDQUEyQjtBQVU1QjtJQUFsRCxXQUFXLENBQVcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO21EQUF1QjtBQUs5QjtJQUExQyxXQUFXLENBQVMsb0JBQW9CLENBQUM7bURBQXFCO0FBS1o7SUFBbEQsV0FBVyxDQUFXLG9CQUFvQixFQUFFLElBQUksQ0FBQztvREFBd0I7QUFLL0I7SUFBMUMsV0FBVyxDQUFTLG9CQUFvQixDQUFDO29EQUFzQjtBQUtiO0lBQWxELFdBQVcsQ0FBVyxvQkFBb0IsRUFBRSxJQUFJLENBQUM7c0RBQTBCO0FBS3pCO0lBQWxELFdBQVcsQ0FBVyxvQkFBb0IsRUFBRSxJQUFJLENBQUM7b0RBQXdCO0FBSzNCO0lBQTlDLFdBQVcsQ0FBUyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7a0RBQW9CO0FBS0o7SUFBN0QsV0FBVyxDQUFXLG9CQUFvQixDQUFDO0lBQUUsYUFBYSxFQUFFO3NEQUEwQjtBQUtsQjtJQUFwRSxXQUFXLENBQVcsb0JBQW9CLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO2tEQUErQjtBQUs5QjtJQUFwRSxXQUFXLENBQVcsb0JBQW9CLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO2tEQUErQjtBQUs5QjtJQUFwRSxXQUFXLENBQVcsb0JBQW9CLEVBQUUsS0FBSyxDQUFDO0lBQUUsYUFBYSxFQUFFO2lEQUFxQjsyRkFyR3ZGLGVBQWU7a0JBRDNCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQUVDLE9BQU87c0JBQWhDLEtBQUs7Z0JBS3dELFNBQVM7c0JBQXRFLEtBQUs7Z0JBS3NELE1BQU07c0JBQWpFLEtBQUs7Z0JBS1ksSUFBSTtzQkFBckIsS0FBSztnQkFLdUQsS0FBSztzQkFBakUsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS2dFLFFBQVE7c0JBQTdFLEtBQUs7Z0JBSytELFNBQVM7c0JBQTdFLEtBQUs7Z0JBS2lFLE1BQU07c0JBQTVFLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtzRCxVQUFVO3NCQUFyRSxLQUFLO2dCQUs4QyxVQUFVO3NCQUE3RCxLQUFLO2dCQUtzRCxXQUFXO3NCQUF0RSxLQUFLO2dCQUs4QyxXQUFXO3NCQUE5RCxLQUFLO2dCQUtzRCxhQUFhO3NCQUF4RSxLQUFLO2dCQUtzRCxXQUFXO3NCQUF0RSxLQUFLO2dCQUtrRCxTQUFTO3NCQUFoRSxLQUFLO2dCQUtpRSxhQUFhO3NCQUFuRixLQUFLO2dCQUtpRixTQUFTO3NCQUEvRixLQUFLO2dCQUtpRixTQUFTO3NCQUEvRixLQUFLO2dCQUt3RSxRQUFRO3NCQUFyRixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUksTUFBTTtzQkFBZixNQUFNO2dCQUtHLE9BQU87c0JBQWhCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFN0YXR1cywgWFBsYWNlLCBYSW5wdXRCb29sZWFuLCBYVGVtcGxhdGUsIFhFZmZlY3QsIFhCb29sZWFuLCBYV2l0aENvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYQWxlcnRQcm9wZXJ0eSwgWEFsZXJ0T3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsT3ZlcmxheVJlZiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctcG9ydGFsLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogRGlhbG9nXHJcbiAqIEBzZWxlY3RvciB4LWRpYWxvZ1xyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEaWFsb2dQcmVmaXggPSAneC1kaWFsb2cnO1xyXG5leHBvcnQgY29uc3QgWF9ESUFMT0dfQ09ORklHX05BTUUgPSAnZGlhbG9nJztcclxuZXhwb3J0IGNvbnN0IFhEaWFsb2dDb250YWluZXIgPSAneC1kaWFsb2ctY29udGFpbmVyJztcclxuZXhwb3J0IGNvbnN0IFhfRElBTE9HX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignWERpYWxvZ0RhdGEnKTtcclxuXHJcbi8qKlxyXG4gKiBEaWFsb2cgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dQcm9wZXJ0eSBleHRlbmRzIFhBbGVydFByb3BlcnR5IHtcclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pa55L2N77yM5Lmd5a6r5qC8XHJcbiAgICogQGVuX1VTIERpcmVjdGlvbiwgbmluZSBncmlkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhQbGFjZT4oWF9ESUFMT0dfQ09ORklHX05BTUUsICdjZW50ZXInKSBwbGFjZW1lbnQhOiBYUGxhY2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWBj+enu+i3neemu1xyXG4gICAqIEBlbl9VUyBPZmZzZXQgZGlzdGFuY2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzFyZW0nKSBvZmZzZXQhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHR5cGU6IFhEaWFsb2dUeXBlID0gJ2luZm8nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzMycmVtJykgd2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWwj+WuveW6plxyXG4gICAqIEBlbl9VUyBNaW4gd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzE4cmVtJykgb3ZlcnJpZGUgbWluV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWwj+mrmOW6plxyXG4gICAqIEBlbl9VUyBNaW4gaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9ESUFMT0dfQ09ORklHX05BTUUsICc5cmVtJykgb3ZlcnJpZGUgbWluSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLflvI/kuLvpophcclxuICAgKiBAZW5fVVMgU3R5bGUgdGhlbWVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEVmZmVjdD4oWF9ESUFMT0dfQ09ORklHX05BTUUsICd3aGl0ZScpIG92ZXJyaWRlIGVmZmVjdCE6IFhFZmZlY3Q7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW6lemDqOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGUgYXQgdGhlIGJvdHRvbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65Y+W5raI5oyJ6ZKuXHJcbiAgICogQGVuX1VTIFNob3cgY2FuY2VsIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIHRydWUpIHNob3dDYW5jZWwhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+W5raI5oyJ6ZKu5paH5a2XXHJcbiAgICogQGVuX1VTIENhbmNlbCBidXR0b24gdGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfRElBTE9HX0NPTkZJR19OQU1FKSBjYW5jZWxUZXh0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnoa7orqTmjInpkq5cclxuICAgKiBAZW5fVVMgU2hvdyBjb25maXJtYXRpb24gYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgdHJ1ZSkgc2hvd0NvbmZpcm0hOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56Gu6K6k5oyJ6ZKu5paH5a2XXHJcbiAgICogQGVuX1VTIENvbmZpcm0gYnV0dG9uIHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSkgY29uZmlybVRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+mBrue9qeWFs+mXrVxyXG4gICAqIEBlbl9VUyBDbGljayB0aGUgbWFzayB0byBjbG9zZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIHRydWUpIGJhY2tkcm9wQ2xvc2UhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5pi+56S66IOM5pmv6YGu572pXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgYmFja2dyb3VuZCBtYXNrXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgdHJ1ZSkgaGFzQmFja2Ryb3AhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qC35byP5ZCNXHJcbiAgICogQGVuX1VTIEN1c3RvbSBzdHlsZSBuYW1lXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9ESUFMT0dfQ09ORklHX05BTUUsICcnKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaMiemSruWxheS4rVxyXG4gICAqIEBlbl9VUyBCdXR0b24gY2VudGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSBidXR0b25zQ2VudGVyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWvueivneahhlxyXG4gICAqIEBlbl9VUyBEcmFnIGRpYWxvZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIG92ZXJyaWRlIGRyYWdnYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDosIPmlbTlvLnmoYbnmoTlpKflsI9cclxuICAgKiBAZW5fVVMgQWRqdXN0IHRoZSBzaXplIG9mIHRoZSBib3hcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfRElBTE9HX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBvdmVycmlkZSByZXNpemFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyA5aSn5YyW5by55Ye65qGG5oyJ6ZKu77yM5b2T5ZCv55SoIHJlc2l6YWJsZSDml7bkuZ/kvJrmmL7npLpcclxuICAgKiBAZW5fVVMgTWF4aW1pemUgdGhlIGJ1bGxldCBib3ggYnV0dG9uLCBXaWxsIGFsc28gZGlzcGxheSB3aGVuIHJlc2l6YWJsZSBpcyBlbmFibGVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgbWF4aW1pemU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWz6Zet5YmN5aSE55CG5Ye95pWwXHJcbiAgICogQGVuX1VTIFByb2Nlc3NpbmcgZnVuY3Rpb24gYmVmb3JlIGNsb3NpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBiZWZvcmVDbG9zZSE6IEZ1bmN0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+W5raI5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIENhbmNlbCBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnoa7orqTmjInpkq7nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgQ29uZmlybSBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S6L+makOiXj+aUueWPmOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTaG93L2hpZGUgY2hhbmdlIGV2ZW50c1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnlh7rlrozmiJDliqjnlLvliqDovb1cclxuICAgKiBAZW5fVVMgUG9wIHVwIGNvbXBsZXRlIGFuaW1hdGlvbiBsb2FkaW5nXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNob3dEb25lID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFs+mXreWujOaIkOWKqOeUu1xyXG4gICAqIEBlbl9VUyBDbG9zZSBjb21wbGV0ZSBhbmltYXRpb25cclxuICAgKi9cclxuICBAT3V0cHV0KCkgY2xvc2VEb25lID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERpYWxvZ09wdGlvbiBleHRlbmRzIFhBbGVydE9wdGlvbiB7XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWueS9je+8jOS5neWuq+agvFxyXG4gICAqIEBlbl9VUyBEaXJlY3Rpb24sIG5pbmUgZ3JpZFxyXG4gICAqL1xyXG4gIHBsYWNlbWVudD86IFhQbGFjZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YGP56e76Led56a7XHJcbiAgICogQGVuX1VTIE9mZnNldCBkaXN0YW5jZVxyXG4gICAqL1xyXG4gIG9mZnNldD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g57G75Z6LXHJcbiAgICogQGVuX1VTIFR5cGVzIG9mXHJcbiAgICovXHJcbiAgdHlwZT86IFhEaWFsb2dUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKi9cclxuICB3aWR0aD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqmXHJcbiAgICogQGVuX1VTIEhlaWdodFxyXG4gICAqL1xyXG4gIGhlaWdodD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC35byP5Li76aKYXHJcbiAgICogQGVuX1VTIFN0eWxlIHRoZW1lXHJcbiAgICovXHJcbiAgZWZmZWN0PzogWEVmZmVjdDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bqV6YOo6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZSBhdCB0aGUgYm90dG9tXHJcbiAgICovXHJcbiAgZm9vdGVyPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrlj5bmtojmjInpkq5cclxuICAgKiBAZW5fVVMgU2hvdyBjYW5jZWwgYnV0dG9uXHJcbiAgICovXHJcbiAgc2hvd0NhbmNlbD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj5bmtojmjInpkq7mloflrZdcclxuICAgKiBAZW5fVVMgQ2FuY2VsIGJ1dHRvbiB0ZXh0XHJcbiAgICovXHJcbiAgY2FuY2VsVGV4dD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S656Gu6K6k5oyJ6ZKuXHJcbiAgICogQGVuX1VTIFNob3cgY29uZmlybWF0aW9uIGJ1dHRvblxyXG4gICAqL1xyXG4gIHNob3dDb25maXJtPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOehruiupOaMiemSruaWh+Wtl1xyXG4gICAqIEBlbl9VUyBDb25maXJtIGJ1dHRvbiB0ZXh0XHJcbiAgICovXHJcbiAgY29uZmlybVRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+mBrue9qeWFs+mXrVxyXG4gICAqIEBlbl9VUyBDbGljayB0aGUgbWFzayB0byBjbG9zZVxyXG4gICAqL1xyXG4gIGJhY2tkcm9wQ2xvc2U/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5pi+56S66IOM5pmv6YGu572pXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgYmFja2dyb3VuZCBtYXNrXHJcbiAgICovXHJcbiAgaGFzQmFja2Ryb3A/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qC35byP5ZCNXHJcbiAgICogQGVuX1VTIEN1c3RvbSBzdHlsZSBuYW1lXHJcbiAgICovXHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjInpkq7lsYXkuK1cclxuICAgKiBAZW5fVVMgQnV0dG9uIGNlbnRlclxyXG4gICAqL1xyXG4gIGJ1dHRvbnNDZW50ZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5a+56K+d5qGGXHJcbiAgICogQGVuX1VTIERyYWcgZGlhbG9nXHJcbiAgICovXHJcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LCD5pW05by55qGG55qE5aSn5bCPXHJcbiAgICogQGVuX1VTIEFkanVzdCB0aGUgc2l6ZSBvZiB0aGUgYm94XHJcbiAgICovXHJcbiAgcmVzaXphYmxlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWz6Zet5YmN5aSE55CG5Ye95pWwXHJcbiAgICogQGVuX1VTIFByb2Nlc3NpbmcgZnVuY3Rpb24gYmVmb3JlIGNsb3NpbmdcclxuICAgKi9cclxuICBiZWZvcmVDbG9zZT86IEZ1bmN0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogRGlhbG9nIG9wdGlvbiBieSBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dSZWZPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnlkJFcclxuICAgKiBAZW5fVVMgRGlzcGxheSBkaXJlY3Rpb25cclxuICAgKiBAZGVmYXVsdCAnY2VudGVyJ1xyXG4gICAqIEB3aXRoQ29uZmlnIHRydWVcclxuICAgKi9cclxuICBwbGFjZW1lbnQ/OiBYUGxhY2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWBj+enu+i3neemu1xyXG4gICAqIEBlbl9VUyBPZmZzZXQgZGlzdGFuY2VcclxuICAgKiBAZGVmYXVsdCAnMXJlbSdcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgb2Zmc2V0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKiBAZGVmYXVsdCAnMzJyZW0nXHJcbiAgICogQHdpdGhDb25maWcgdHJ1ZVxyXG4gICAqL1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqZcclxuICAgKiBAZW5fVVMgSGVpZ2h0XHJcbiAgICovXHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmoLflvI/lkI1cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHN0eWxlIG5hbWVcclxuICAgKi9cclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+mBrue9qeWFs+mXrVxyXG4gICAqIEBlbl9VUyBDbGljayB0aGUgbWFzayB0byBjbG9zZVxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgYmFja2Ryb3BDbG9zZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuiDjOaZr+mBrue9qVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGJhY2tncm91bmQgbWFza1xyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7vvIzpgJrov4cgXCJASW5qZWN0KFhfRElBTE9HX0RBVEEpXCIg5p2l5o6l5pS25pWw5o2uXHJcbiAgICogQGVuX1VTIERhdGEuIFJlY2VpdmUgZGF0YSBieSBcIkBJbmplY3QoWF9ESUFMT0dfREFUQSlcIlxyXG4gICAqL1xyXG4gIGRhdGE/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQGVuX1VTIOinhuWbvuWuueWZqOWunuS+i+WPr+S7peWMheWQq+WFtuS7luinhuWbvuWuueWZqOOAglxyXG4gICAqIEBlbl9VUyBBIHZpZXcgY29udGFpbmVyIGluc3RhbmNlIGNhbiBjb250YWluIG90aGVyIHZpZXcgY29udGFpbmVycy5cclxuICAgKi9cclxuICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgWERpYWxvZ0FuaW1hdGlvblN0YXRlID0gWFBsYWNlIHwgJ3ZvaWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBYRGlhbG9nQW5pbWF0aW9uRXZlbnQge1xyXG4gIHN0YXRlOiBYRGlhbG9nQW5pbWF0aW9uU3RhdGU7XHJcbiAgYWN0aW9uOiAnc3RhcnQnIHwgJ2RvbmUnO1xyXG4gIHRvdGFsVGltZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dDYWxsYmFjayB7XHJcbiAgKGFjdGlvbjogWERpYWxvZ0FjdGlvbiwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFhEaWFsb2dBY3Rpb24gPSAnY29uZmlybScgfCAnY2FuY2VsJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu655qE5by55qGG5a+56LGhXHJcbiAqIEBlbl9VUyBEaWFsb2cgb2JqZWN0IGNyZWF0ZWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERpYWxvZ092ZXJsYXlSZWYgZXh0ZW5kcyBYUG9ydGFsT3ZlcmxheVJlZjxYRGlhbG9nQ29tcG9uZW50PiB7fVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJvlu7rnmoTlvLnmoYblr7nosaHvvIzpgJrov4fmnI3liqFcclxuICogQGVuX1VTIERpYWxvZyBvYmplY3QgY3JlYXRlZCBieSBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dQb3J0YWxPdmVybGF5UmVmIGV4dGVuZHMgWFBvcnRhbE92ZXJsYXlSZWY8WERpYWxvZ1BvcnRhbENvbXBvbmVudD4ge31cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g57G75Z6LXHJcbiAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERpYWxvZ1R5cGUgPSBYU3RhdHVzO1xyXG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGlhbG9nL2RpYWxvZy5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBb0IsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBbUIsYUFBYSxFQUFnQyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLG1CQUFtQixDQUFDOztBQUtqRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDO0FBRXBFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQURuRDs7UUFFNEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQVduRDs7O1dBR0c7UUFDZSxTQUFJLEdBQWdCLE1BQU0sQ0FBQztRQTRGN0M7OztXQUdHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEM7OztXQUdHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkM7OztXQUdHO1FBQ2dCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlDOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN0RDs7O1dBR0c7UUFDTyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM3Qzs7O1dBR0c7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQUMvQzs7a0pBMUlZLGVBQWU7c0lBQWYsZUFBZSwwdUJBREwsRUFBRTtBQUVHO0lBQWhCLGFBQWEsRUFBRTtnREFBMEI7QUFLVztJQUFwRCxXQUFXLENBQVMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDO2tEQUFvQjtBQUtyQjtJQUFsRCxXQUFXLENBQVMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDOytDQUFpQjtBQVVmO0lBQW5ELFdBQVcsQ0FBUyxvQkFBb0IsRUFBRSxPQUFPLENBQUM7OENBQWdCO0FBVWY7SUFBbkQsV0FBVyxDQUFTLG9CQUFvQixFQUFFLE9BQU8sQ0FBQztpREFBNEI7QUFLNUI7SUFBbEQsV0FBVyxDQUFTLG9CQUFvQixFQUFFLE1BQU0sQ0FBQztrREFBNkI7QUFLMUI7SUFBcEQsV0FBVyxDQUFVLG9CQUFvQixFQUFFLE9BQU8sQ0FBQzsrQ0FBMkI7QUFVNUI7SUFBbEQsV0FBVyxDQUFXLG9CQUFvQixFQUFFLElBQUksQ0FBQzttREFBdUI7QUFLOUI7SUFBMUMsV0FBVyxDQUFTLG9CQUFvQixDQUFDO21EQUFxQjtBQUtaO0lBQWxELFdBQVcsQ0FBVyxvQkFBb0IsRUFBRSxJQUFJLENBQUM7b0RBQXdCO0FBSy9CO0lBQTFDLFdBQVcsQ0FBUyxvQkFBb0IsQ0FBQztvREFBc0I7QUFLYjtJQUFsRCxXQUFXLENBQVcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO3NEQUEwQjtBQUt6QjtJQUFsRCxXQUFXLENBQVcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO29EQUF3QjtBQUszQjtJQUE5QyxXQUFXLENBQVMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO2tEQUFvQjtBQUtKO0lBQTdELFdBQVcsQ0FBVyxvQkFBb0IsQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBMEI7QUFLbEI7SUFBcEUsV0FBVyxDQUFXLG9CQUFvQixFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtrREFBK0I7QUFLOUI7SUFBcEUsV0FBVyxDQUFXLG9CQUFvQixFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtrREFBK0I7QUFLOUI7SUFBcEUsV0FBVyxDQUFXLG9CQUFvQixFQUFFLEtBQUssQ0FBQztJQUFFLGFBQWEsRUFBRTtpREFBcUI7MkZBckd2RixlQUFlO2tCQUQzQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFFQyxPQUFPO3NCQUFoQyxLQUFLO2dCQUt3RCxTQUFTO3NCQUF0RSxLQUFLO2dCQUtzRCxNQUFNO3NCQUFqRSxLQUFLO2dCQUtZLElBQUk7c0JBQXJCLEtBQUs7Z0JBS3VELEtBQUs7c0JBQWpFLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtnRSxRQUFRO3NCQUE3RSxLQUFLO2dCQUsrRCxTQUFTO3NCQUE3RSxLQUFLO2dCQUtpRSxNQUFNO3NCQUE1RSxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLc0QsVUFBVTtzQkFBckUsS0FBSztnQkFLOEMsVUFBVTtzQkFBN0QsS0FBSztnQkFLc0QsV0FBVztzQkFBdEUsS0FBSztnQkFLOEMsV0FBVztzQkFBOUQsS0FBSztnQkFLc0QsYUFBYTtzQkFBeEUsS0FBSztnQkFLc0QsV0FBVztzQkFBdEUsS0FBSztnQkFLa0QsU0FBUztzQkFBaEUsS0FBSztnQkFLaUUsYUFBYTtzQkFBbkYsS0FBSztnQkFLaUYsU0FBUztzQkFBL0YsS0FBSztnQkFLaUYsU0FBUztzQkFBL0YsS0FBSztnQkFLd0UsUUFBUTtzQkFBckYsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1JLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxPQUFPO3NCQUFoQixNQUFNO2dCQUtZLEtBQUs7c0JBQXZCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFN0YXR1cywgWFBsYWNlLCBYSW5wdXRCb29sZWFuLCBYVGVtcGxhdGUsIFhFZmZlY3QsIFhCb29sZWFuLCBYV2l0aENvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYQWxlcnRQcm9wZXJ0eSwgWEFsZXJ0T3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYWxlcnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsT3ZlcmxheVJlZiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctcG9ydGFsLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogRGlhbG9nXHJcbiAqIEBzZWxlY3RvciB4LWRpYWxvZ1xyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEaWFsb2dQcmVmaXggPSAneC1kaWFsb2cnO1xyXG5leHBvcnQgY29uc3QgWF9ESUFMT0dfQ09ORklHX05BTUUgPSAnZGlhbG9nJztcclxuZXhwb3J0IGNvbnN0IFhEaWFsb2dDb250YWluZXIgPSAneC1kaWFsb2ctY29udGFpbmVyJztcclxuZXhwb3J0IGNvbnN0IFhfRElBTE9HX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignWERpYWxvZ0RhdGEnKTtcclxuXHJcbi8qKlxyXG4gKiBEaWFsb2cgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dQcm9wZXJ0eSBleHRlbmRzIFhBbGVydFByb3BlcnR5IHtcclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pa55L2N77yM5Lmd5a6r5qC8XHJcbiAgICogQGVuX1VTIERpcmVjdGlvbiwgbmluZSBncmlkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhQbGFjZT4oWF9ESUFMT0dfQ09ORklHX05BTUUsICdjZW50ZXInKSBwbGFjZW1lbnQhOiBYUGxhY2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWBj+enu+i3neemu1xyXG4gICAqIEBlbl9VUyBPZmZzZXQgZGlzdGFuY2VcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzFyZW0nKSBvZmZzZXQhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHR5cGU6IFhEaWFsb2dUeXBlID0gJ2luZm8nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzMycmVtJykgd2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWwj+WuveW6plxyXG4gICAqIEBlbl9VUyBNaW4gd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSwgJzE4cmVtJykgb3ZlcnJpZGUgbWluV2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWwj+mrmOW6plxyXG4gICAqIEBlbl9VUyBNaW4gaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9ESUFMT0dfQ09ORklHX05BTUUsICc4cmVtJykgb3ZlcnJpZGUgbWluSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLflvI/kuLvpophcclxuICAgKiBAZW5fVVMgU3R5bGUgdGhlbWVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEVmZmVjdD4oWF9ESUFMT0dfQ09ORklHX05BTUUsICd3aGl0ZScpIG92ZXJyaWRlIGVmZmVjdCE6IFhFZmZlY3Q7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW6lemDqOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGUgYXQgdGhlIGJvdHRvbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65Y+W5raI5oyJ6ZKuXHJcbiAgICogQGVuX1VTIFNob3cgY2FuY2VsIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIHRydWUpIHNob3dDYW5jZWwhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+W5raI5oyJ6ZKu5paH5a2XXHJcbiAgICogQGVuX1VTIENhbmNlbCBidXR0b24gdGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfRElBTE9HX0NPTkZJR19OQU1FKSBjYW5jZWxUZXh0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnoa7orqTmjInpkq5cclxuICAgKiBAZW5fVVMgU2hvdyBjb25maXJtYXRpb24gYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgdHJ1ZSkgc2hvd0NvbmZpcm0hOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56Gu6K6k5oyJ6ZKu5paH5a2XXHJcbiAgICogQGVuX1VTIENvbmZpcm0gYnV0dG9uIHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0RJQUxPR19DT05GSUdfTkFNRSkgY29uZmlybVRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+mBrue9qeWFs+mXrVxyXG4gICAqIEBlbl9VUyBDbGljayB0aGUgbWFzayB0byBjbG9zZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIHRydWUpIGJhY2tkcm9wQ2xvc2UhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5pi+56S66IOM5pmv6YGu572pXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgYmFja2dyb3VuZCBtYXNrXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgdHJ1ZSkgaGFzQmFja2Ryb3AhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qC35byP5ZCNXHJcbiAgICogQGVuX1VTIEN1c3RvbSBzdHlsZSBuYW1lXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9ESUFMT0dfQ09ORklHX05BTUUsICcnKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaMiemSruWxheS4rVxyXG4gICAqIEBlbl9VUyBCdXR0b24gY2VudGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSBidXR0b25zQ2VudGVyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWvueivneahhlxyXG4gICAqIEBlbl9VUyBEcmFnIGRpYWxvZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9ESUFMT0dfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIG92ZXJyaWRlIGRyYWdnYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDosIPmlbTlvLnmoYbnmoTlpKflsI9cclxuICAgKiBAZW5fVVMgQWRqdXN0IHRoZSBzaXplIG9mIHRoZSBib3hcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfRElBTE9HX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBvdmVycmlkZSByZXNpemFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyA5aSn5YyW5by55Ye65qGG5oyJ6ZKu77yM5b2T5ZCv55SoIHJlc2l6YWJsZSDml7bkuZ/kvJrmmL7npLpcclxuICAgKiBAZW5fVVMgTWF4aW1pemUgdGhlIGJ1bGxldCBib3ggYnV0dG9uLCBXaWxsIGFsc28gZGlzcGxheSB3aGVuIHJlc2l6YWJsZSBpcyBlbmFibGVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0RJQUxPR19DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgbWF4aW1pemU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWz6Zet5YmN5aSE55CG5Ye95pWwXHJcbiAgICogQGVuX1VTIFByb2Nlc3NpbmcgZnVuY3Rpb24gYmVmb3JlIGNsb3NpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBiZWZvcmVDbG9zZSE6IChhY3Rpb246IFhEaWFsb2dBY3Rpb24pID0+IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj5bmtojmjInpkq7nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgQ2FuY2VsIGJ1dHRvbiBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOehruiupOaMiemSrueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBDb25maXJtIGJ1dHRvbiBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnoa7orqTmjInpkq7nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgQ29uZmlybSBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb3ZlcnJpZGUgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekui/pmpDol4/mlLnlj5jkuovku7ZcclxuICAgKiBAZW5fVVMgU2hvdy9oaWRlIGNoYW5nZSBldmVudHNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5by55Ye65a6M5oiQ5Yqo55S75Yqg6L29XHJcbiAgICogQGVuX1VTIFBvcCB1cCBjb21wbGV0ZSBhbmltYXRpb24gbG9hZGluZ1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzaG93RG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhbPpl63lrozmiJDliqjnlLtcclxuICAgKiBAZW5fVVMgQ2xvc2UgY29tcGxldGUgYW5pbWF0aW9uXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNsb3NlRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dPcHRpb24gZXh0ZW5kcyBYQWxlcnRPcHRpb24ge1xyXG4gIHZpc2libGU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlrnkvY3vvIzkuZ3lrqvmoLxcclxuICAgKiBAZW5fVVMgRGlyZWN0aW9uLCBuaW5lIGdyaWRcclxuICAgKi9cclxuICBwbGFjZW1lbnQ/OiBYUGxhY2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWBj+enu+i3neemu1xyXG4gICAqIEBlbl9VUyBPZmZzZXQgZGlzdGFuY2VcclxuICAgKi9cclxuICBvZmZzZXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIHR5cGU/OiBYRGlhbG9nVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6plxyXG4gICAqIEBlbl9VUyBIZWlnaHRcclxuICAgKi9cclxuICBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagt+W8j+S4u+mimFxyXG4gICAqIEBlbl9VUyBTdHlsZSB0aGVtZVxyXG4gICAqL1xyXG4gIGVmZmVjdD86IFhFZmZlY3Q7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW6lemDqOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGUgYXQgdGhlIGJvdHRvbVxyXG4gICAqL1xyXG4gIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65Y+W5raI5oyJ6ZKuXHJcbiAgICogQGVuX1VTIFNob3cgY2FuY2VsIGJ1dHRvblxyXG4gICAqL1xyXG4gIHNob3dDYW5jZWw/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+W5raI5oyJ6ZKu5paH5a2XXHJcbiAgICogQGVuX1VTIENhbmNlbCBidXR0b24gdGV4dFxyXG4gICAqL1xyXG4gIGNhbmNlbFRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuehruiupOaMiemSrlxyXG4gICAqIEBlbl9VUyBTaG93IGNvbmZpcm1hdGlvbiBidXR0b25cclxuICAgKi9cclxuICBzaG93Q29uZmlybT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnoa7orqTmjInpkq7mloflrZdcclxuICAgKiBAZW5fVVMgQ29uZmlybSBidXR0b24gdGV4dFxyXG4gICAqL1xyXG4gIGNvbmZpcm1UZXh0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDngrnlh7vpga7nvanlhbPpl61cclxuICAgKiBAZW5fVVMgQ2xpY2sgdGhlIG1hc2sgdG8gY2xvc2VcclxuICAgKi9cclxuICBiYWNrZHJvcENsb3NlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuiDjOaZr+mBrue9qVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGJhY2tncm91bmQgbWFza1xyXG4gICAqL1xyXG4gIGhhc0JhY2tkcm9wPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieagt+W8j+WQjVxyXG4gICAqIEBlbl9VUyBDdXN0b20gc3R5bGUgbmFtZVxyXG4gICAqL1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu5bGF5LitXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBjZW50ZXJcclxuICAgKi9cclxuICBidXR0b25zQ2VudGVyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWvueivneahhlxyXG4gICAqIEBlbl9VUyBEcmFnIGRpYWxvZ1xyXG4gICAqL1xyXG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiwg+aVtOW8ueahhueahOWkp+Wwj1xyXG4gICAqIEBlbl9VUyBBZGp1c3QgdGhlIHNpemUgb2YgdGhlIGJveFxyXG4gICAqL1xyXG4gIHJlc2l6YWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFs+mXreWJjeWkhOeQhuWHveaVsFxyXG4gICAqIEBlbl9VUyBQcm9jZXNzaW5nIGZ1bmN0aW9uIGJlZm9yZSBjbG9zaW5nXHJcbiAgICovXHJcbiAgYmVmb3JlQ2xvc2U/OiAoYWN0aW9uOiBYRGlhbG9nQWN0aW9uKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogRGlhbG9nIG9wdGlvbiBieSBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dSZWZPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnlkJFcclxuICAgKiBAZW5fVVMgRGlzcGxheSBkaXJlY3Rpb25cclxuICAgKiBAZGVmYXVsdCAnY2VudGVyJ1xyXG4gICAqIEB3aXRoQ29uZmlnIHRydWVcclxuICAgKi9cclxuICBwbGFjZW1lbnQ/OiBYUGxhY2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWBj+enu+i3neemu1xyXG4gICAqIEBlbl9VUyBPZmZzZXQgZGlzdGFuY2VcclxuICAgKiBAZGVmYXVsdCAnMXJlbSdcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgb2Zmc2V0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlrr3luqZcclxuICAgKiBAZW5fVVMgV2lkdGhcclxuICAgKiBAZGVmYXVsdCAnMzJyZW0nXHJcbiAgICogQHdpdGhDb25maWcgdHJ1ZVxyXG4gICAqL1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqZcclxuICAgKiBAZW5fVVMgSGVpZ2h0XHJcbiAgICovXHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmoLflvI/lkI1cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHN0eWxlIG5hbWVcclxuICAgKi9cclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+mBrue9qeWFs+mXrVxyXG4gICAqIEBlbl9VUyBDbGljayB0aGUgbWFzayB0byBjbG9zZVxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgYmFja2Ryb3BDbG9zZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuiDjOaZr+mBrue9qVxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGJhY2tncm91bmQgbWFza1xyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjlr7nor53moYZcclxuICAgKiBAZW5fVVMgRHJhZyBkaWFsb2dcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEB3aXRoQ29uZmlnIHRydWVcclxuICAgKi9cclxuICBkcmFnZ2FibGU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDosIPmlbTlvLnmoYbnmoTlpKflsI9cclxuICAgKiBAZW5fVVMgQWRqdXN0IHRoZSBzaXplIG9mIHRoZSBib3hcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEB3aXRoQ29uZmlnIHRydWVcclxuICAgKi9cclxuICByZXNpemFibGU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmnIDlsI/lrr3luqZcclxuICAgKiBAZW5fVVMgTWluIHdpZHRoXHJcbiAgICogQGRlZmF1bHQgJzE4cmVtJ1xyXG4gICAqIEB3aXRoQ29uZmlnIHRydWVcclxuICAgKi9cclxuICBtaW5XaWR0aD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyA5bCP6auY5bqmXHJcbiAgICogQGVuX1VTIE1pbiBoZWlnaHRcclxuICAgKiBAZGVmYXVsdCAnOHJlbSdcclxuICAgKiBAd2l0aENvbmZpZyB0cnVlXHJcbiAgICovXHJcbiAgbWluSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7vvIzpgJrov4cgXCJASW5qZWN0KFhfRElBTE9HX0RBVEEpXCIg5p2l5o6l5pS25pWw5o2uXHJcbiAgICogQGVuX1VTIERhdGEuIFJlY2VpdmUgZGF0YSBieSBcIkBJbmplY3QoWF9ESUFMT0dfREFUQSlcIlxyXG4gICAqL1xyXG4gIGRhdGE/OiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQGVuX1VTIOinhuWbvuWuueWZqOWunuS+i+WPr+S7peWMheWQq+WFtuS7luinhuWbvuWuueWZqOOAglxyXG4gICAqIEBlbl9VUyBBIHZpZXcgY29udGFpbmVyIGluc3RhbmNlIGNhbiBjb250YWluIG90aGVyIHZpZXcgY29udGFpbmVycy5cclxuICAgKi9cclxuICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgWERpYWxvZ0FuaW1hdGlvblN0YXRlID0gWFBsYWNlIHwgJ3ZvaWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBYRGlhbG9nQW5pbWF0aW9uRXZlbnQge1xyXG4gIHN0YXRlOiBYRGlhbG9nQW5pbWF0aW9uU3RhdGU7XHJcbiAgYWN0aW9uOiAnc3RhcnQnIHwgJ2RvbmUnO1xyXG4gIHRvdGFsVGltZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dDYWxsYmFjayB7XHJcbiAgKGFjdGlvbjogWERpYWxvZ0FjdGlvbiwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFhEaWFsb2dBY3Rpb24gPSAnY29uZmlybScgfCAnY2FuY2VsJyB8ICdjbG9zZSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIm+W7uueahOW8ueahhuWvueixoVxyXG4gKiBAZW5fVVMgRGlhbG9nIG9iamVjdCBjcmVhdGVkXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEaWFsb2dPdmVybGF5UmVmIGV4dGVuZHMgWFBvcnRhbE92ZXJsYXlSZWY8WERpYWxvZ0NvbXBvbmVudD4ge31cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu655qE5by55qGG5a+56LGh77yM6YCa6L+H5pyN5YqhXHJcbiAqIEBlbl9VUyBEaWFsb2cgb2JqZWN0IGNyZWF0ZWQgYnkgc2VydmljZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGlhbG9nUG9ydGFsT3ZlcmxheVJlZiBleHRlbmRzIFhQb3J0YWxPdmVybGF5UmVmPFhEaWFsb2dQb3J0YWxDb21wb25lbnQ+IHt9XHJcblxyXG4vKipcclxuICogQHpoX0NOIOexu+Wei1xyXG4gKiBAZW5fVVMgVHlwZXMgb2ZcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEaWFsb2dUeXBlID0gWFN0YXR1cztcclxuIl19
@@ -1,6 +1,7 @@
1
1
  import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
2
2
  import { Injectable, TemplateRef } from '@angular/core';
3
3
  import { fillDefault } from '@ng-nest/ui/core';
4
+ import { PortalResizablePrefix } from '@ng-nest/ui/portal';
4
5
  import { XDialogPortalComponent } from './dialog-portal.component';
5
6
  import { XDialogRef } from './dialog-ref';
6
7
  import { X_DIALOG_CONFIG_NAME, X_DIALOG_DATA } from './dialog.property';
@@ -18,10 +19,12 @@ export class XDialogService {
18
19
  placement: 'center',
19
20
  offset: '1rem',
20
21
  width: '32rem',
22
+ minWidth: '18rem',
23
+ minHeight: '8rem',
21
24
  backdropClose: true,
22
- hasBackdrop: true
23
- // draggable: false,
24
- // resizable: false
25
+ hasBackdrop: true,
26
+ draggable: false,
27
+ resizable: false
25
28
  };
26
29
  this.renderer = this.rendererFactory.createRenderer(null, null);
27
30
  this.configDefault = this.configService.getConfigForComponent(X_DIALOG_CONFIG_NAME);
@@ -38,16 +41,51 @@ export class XDialogService {
38
41
  scrollStrategy: this.overlay.scrollStrategies.block(),
39
42
  width: option.width,
40
43
  height: option.height,
44
+ minWidth: option.minWidth,
45
+ minHeight: option.minHeight,
41
46
  positionStrategy: this.portalService.setPlace(option.placement, option.offset)
42
47
  }
43
48
  });
44
- // if (option.resizable) {
45
- // this.renderer.addClass(portal.overlayRef?.hostElement, PortalResizablePrefix);
46
- // }
47
49
  const { overlayRef, componentRef } = portal || {};
48
50
  const { instance } = componentRef || {};
51
+ const { hostElement, overlayElement } = overlayRef || {};
52
+ const dialogRef = new XDialogRef(overlayRef, instance, this.renderer, this.portalService);
53
+ let dialogBox = {
54
+ draggable: option.draggable,
55
+ resizable: option.resizable
56
+ };
57
+ let defaultMaximize = this.setMaximize(option);
58
+ Object.assign(dialogBox, {
59
+ width: defaultMaximize ? this.default.width : option.width,
60
+ height: defaultMaximize ? null : option.height,
61
+ minWidth: option.minWidth,
62
+ minHeight: option.minHeight
63
+ });
49
64
  instance.placement = option.placement;
50
- const dialogRef = new XDialogRef(overlayRef, instance);
65
+ instance.option = option;
66
+ instance.dialogRef = dialogRef;
67
+ instance.defaultMaximize = defaultMaximize;
68
+ instance.dialogBox = dialogBox;
69
+ instance.hostElement = hostElement;
70
+ instance.overlayElement = overlayElement;
71
+ dialogRef.option = option;
72
+ dialogRef.fullscreen = defaultMaximize;
73
+ if (option.resizable && !defaultMaximize) {
74
+ this.renderer.addClass(hostElement, PortalResizablePrefix);
75
+ setTimeout(() => {
76
+ Object.assign(dialogBox, this.portalService.setResizable(overlayElement, option.placement));
77
+ instance.offsetLeft = overlayElement.offsetLeft;
78
+ instance.offsetTop = overlayElement.offsetTop;
79
+ const dialogDraggable = overlayElement?.querySelector('.x-dialog-portal');
80
+ instance.initHeight = dialogDraggable.clientHeight;
81
+ instance.dialogContent = overlayElement?.querySelector('.x-dialog-portal-content');
82
+ instance.initContentHeight = instance.dialogContent?.clientHeight;
83
+ instance.dialogBox = dialogBox;
84
+ });
85
+ }
86
+ if (defaultMaximize) {
87
+ this.renderer.addClass(overlayElement, 'x-dialog-portal-fullscreen');
88
+ }
51
89
  if (content instanceof TemplateRef) {
52
90
  instance.attachTemplatePortal(new TemplatePortal(content, option.viewContainerRef, { $implicit: option.data, dialogRef: dialogRef }));
53
91
  }
@@ -66,10 +104,20 @@ export class XDialogService {
66
104
  }
67
105
  return dialogRef;
68
106
  }
107
+ setMaximize(option = {}) {
108
+ const ws = ['100%', '100vw'];
109
+ const hs = ['100%', '100vh'];
110
+ if (ws.includes(option.width) && hs.includes(option.height)) {
111
+ option.resizable = false;
112
+ option.draggable = false;
113
+ return true;
114
+ }
115
+ return false;
116
+ }
69
117
  }
70
118
  /** @nocollapse */ /** @nocollapse */ XDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogService, deps: [{ token: i1.XPortalService }, { token: i2.XConfigService }, { token: i3.Overlay }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
71
119
  /** @nocollapse */ /** @nocollapse */ XDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogService });
72
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XDialogService, decorators: [{
73
121
  type: Injectable
74
122
  }], ctorParameters: function () { return [{ type: i1.XPortalService }, { type: i2.XConfigService }, { type: i3.Overlay }, { type: i0.RendererFactory2 }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBaUIsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBK0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWlDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQW9CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUcxRixNQUFNLE9BQU8sY0FBYztJQWN6QixZQUNTLGFBQTZCLEVBQzdCLGFBQTZCLEVBQzdCLE9BQWdCLEVBQ2hCLGVBQWlDO1FBSGpDLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFqQjFDLFlBQU8sR0FBcUI7WUFDMUIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsT0FBTztZQUNkLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG9CQUFvQjtZQUNwQixtQkFBbUI7U0FDcEIsQ0FBQztRQVdBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBSSxPQUE0QyxFQUFFLFNBQTJCLEVBQUU7UUFDbkYsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQXlCO1lBQy9ELE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxhQUFhLEVBQUU7Z0JBQ2IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVM7Z0JBQzVCLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDckQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU8sQ0FBQzthQUNoRjtTQUNGLENBQUMsQ0FBQztRQUNILDBCQUEwQjtRQUMxQixtRkFBbUY7UUFDbkYsSUFBSTtRQUNKLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBYSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxRQUFRLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUksVUFBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtZQUNsQyxRQUFRLENBQUMsb0JBQW9CLENBQzNCLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWlCLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FDeEcsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztnQkFDakQsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNqRCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTthQUM3QyxDQUFDLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQy9HLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQy9DO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxhQUFhLElBQUksVUFBVSxFQUFFO1lBQzVELFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN4QyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O2lKQWxFVSxjQUFjO3FKQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWxsRGVmYXVsdCwgWENvbmZpZ1NlcnZpY2UsIFhEaWFsb2dDb25maWcgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUmVmT3B0aW9uLCBYX0RJQUxPR19DT05GSUdfTkFNRSwgWF9ESUFMT0dfREFUQSB9IGZyb20gJy4vZGlhbG9nLnByb3BlcnR5JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFhEaWFsb2dTZXJ2aWNlIHtcclxuICBkZWZhdWx0OiBYRGlhbG9nUmVmT3B0aW9uID0ge1xyXG4gICAgcGxhY2VtZW50OiAnY2VudGVyJyxcclxuICAgIG9mZnNldDogJzFyZW0nLFxyXG4gICAgd2lkdGg6ICczMnJlbScsXHJcbiAgICBiYWNrZHJvcENsb3NlOiB0cnVlLFxyXG4gICAgaGFzQmFja2Ryb3A6IHRydWVcclxuICAgIC8vIGRyYWdnYWJsZTogZmFsc2UsXHJcbiAgICAvLyByZXNpemFibGU6IGZhbHNlXHJcbiAgfTtcclxuICBjb25maWdEZWZhdWx0PzogWERpYWxvZ0NvbmZpZztcclxuXHJcbiAgcmVuZGVyZXIhOiBSZW5kZXJlcjI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwdWJsaWMgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RlZmF1bHQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnRm9yQ29tcG9uZW50KFhfRElBTE9HX0NPTkZJR19OQU1FKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0LCB0aGlzLmNvbmZpZ0RlZmF1bHQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlPFQ+KGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb246IFhEaWFsb2dSZWZPcHRpb24gPSB7fSk6IFhEaWFsb2dSZWY8VD4ge1xyXG4gICAgZmlsbERlZmF1bHQob3B0aW9uLCB0aGlzLmRlZmF1bHQpO1xyXG4gICAgY29uc3QgcG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaDxYRGlhbG9nUG9ydGFsQ29tcG9uZW50Pih7XHJcbiAgICAgIGNvbnRlbnQ6IFhEaWFsb2dQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IG9wdGlvbi52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IG9wdGlvbi5oYXNCYWNrZHJvcCxcclxuICAgICAgICBwYW5lbENsYXNzOiBvcHRpb24uY2xhc3NOYW1lLFxyXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgIHdpZHRoOiBvcHRpb24ud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiBvcHRpb24uaGVpZ2h0LFxyXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZShvcHRpb24ucGxhY2VtZW50LCBvcHRpb24ub2Zmc2V0ISlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyBpZiAob3B0aW9uLnJlc2l6YWJsZSkge1xyXG4gICAgLy8gICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHBvcnRhbC5vdmVybGF5UmVmPy5ob3N0RWxlbWVudCwgUG9ydGFsUmVzaXphYmxlUHJlZml4KTtcclxuICAgIC8vIH1cclxuICAgIGNvbnN0IHsgb3ZlcmxheVJlZiwgY29tcG9uZW50UmVmIH0gPSBwb3J0YWwgfHwge307XHJcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWYhIHx8IHt9O1xyXG4gICAgaW5zdGFuY2UucGxhY2VtZW50ID0gb3B0aW9uLnBsYWNlbWVudDtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBYRGlhbG9nUmVmPFQ+KG92ZXJsYXlSZWYhLCBpbnN0YW5jZSk7XHJcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGluc3RhbmNlLmF0dGFjaFRlbXBsYXRlUG9ydGFsKFxyXG4gICAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbChjb250ZW50LCBvcHRpb24udmlld0NvbnRhaW5lclJlZiEsIHsgJGltcGxpY2l0OiBvcHRpb24uZGF0YSwgZGlhbG9nUmVmOiBkaWFsb2dSZWYgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmNyZWF0ZUluamVjdG9yKFtcclxuICAgICAgICB7IHByb3ZpZGU6IFhfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiBvcHRpb24uZGF0YSB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogWERpYWxvZ1JlZiwgdXNlVmFsdWU6IGRpYWxvZ1JlZiB9XHJcbiAgICAgIF0pO1xyXG4gICAgICBjb25zdCBjb21SZWYgPSBpbnN0YW5jZS5hdHRhY2hDb21wb25lbnRQb3J0YWwobmV3IENvbXBvbmVudFBvcnRhbChjb250ZW50LCBvcHRpb24udmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpKTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29tUmVmLmluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb24uaGFzQmFja2Ryb3AgJiYgb3B0aW9uLmJhY2tkcm9wQ2xvc2UgJiYgb3ZlcmxheVJlZikge1xyXG4gICAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxufVxyXG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBaUIsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBK0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWlDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFvQixvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFHMUYsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQ1MsYUFBNkIsRUFDN0IsYUFBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsZUFBaUM7UUFIakMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQW5CMUMsWUFBTyxHQUFxQjtZQUMxQixTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxPQUFPO1lBQ2QsUUFBUSxFQUFFLE9BQU87WUFDakIsU0FBUyxFQUFFLE1BQU07WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQVdBLElBQUks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U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7aUpBbkhVLGNBQWM7cUpBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbGxEZWZhdWx0LCBYQ29uZmlnU2VydmljZSwgWERpYWxvZ0NvbmZpZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3J0YWxSZXNpemFibGVQcmVmaXgsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWERpYWxvZ1BvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgWERpYWxvZ1JlZk9wdGlvbiwgWF9ESUFMT0dfQ09ORklHX05BTUUsIFhfRElBTE9HX0RBVEEgfSBmcm9tICcuL2RpYWxvZy5wcm9wZXJ0eSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBYRGlhbG9nU2VydmljZSB7XHJcbiAgZGVmYXVsdDogWERpYWxvZ1JlZk9wdGlvbiA9IHtcclxuICAgIHBsYWNlbWVudDogJ2NlbnRlcicsXHJcbiAgICBvZmZzZXQ6ICcxcmVtJyxcclxuICAgIHdpZHRoOiAnMzJyZW0nLFxyXG4gICAgbWluV2lkdGg6ICcxOHJlbScsXHJcbiAgICBtaW5IZWlnaHQ6ICc4cmVtJyxcclxuICAgIGJhY2tkcm9wQ2xvc2U6IHRydWUsXHJcbiAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgIGRyYWdnYWJsZTogZmFsc2UsXHJcbiAgICByZXNpemFibGU6IGZhbHNlXHJcbiAgfTtcclxuICBjb25maWdEZWZhdWx0PzogWERpYWxvZ0NvbmZpZztcclxuXHJcbiAgcmVuZGVyZXIhOiBSZW5kZXJlcjI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwdWJsaWMgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgICB0aGlzLmNvbmZpZ0RlZmF1bHQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnRm9yQ29tcG9uZW50KFhfRElBTE9HX0NPTkZJR19OQU1FKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0LCB0aGlzLmNvbmZpZ0RlZmF1bHQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlPFQ+KGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCBDb21wb25lbnRUeXBlPFQ+LCBvcHRpb246IFhEaWFsb2dSZWZPcHRpb24gPSB7fSk6IFhEaWFsb2dSZWY8VD4ge1xyXG4gICAgZmlsbERlZmF1bHQob3B0aW9uLCB0aGlzLmRlZmF1bHQpO1xyXG4gICAgY29uc3QgcG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaDxYRGlhbG9nUG9ydGFsQ29tcG9uZW50Pih7XHJcbiAgICAgIGNvbnRlbnQ6IFhEaWFsb2dQb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IG9wdGlvbi52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XHJcbiAgICAgICAgaGFzQmFja2Ryb3A6IG9wdGlvbi5oYXNCYWNrZHJvcCxcclxuICAgICAgICBwYW5lbENsYXNzOiBvcHRpb24uY2xhc3NOYW1lLFxyXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICAgIHdpZHRoOiBvcHRpb24ud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiBvcHRpb24uaGVpZ2h0LFxyXG4gICAgICAgIG1pbldpZHRoOiBvcHRpb24ubWluV2lkdGgsXHJcbiAgICAgICAgbWluSGVpZ2h0OiBvcHRpb24ubWluSGVpZ2h0LFxyXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZShvcHRpb24ucGxhY2VtZW50LCBvcHRpb24ub2Zmc2V0ISlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvdmVybGF5UmVmLCBjb21wb25lbnRSZWYgfSA9IHBvcnRhbCB8fCB7fTtcclxuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGNvbXBvbmVudFJlZiEgfHwge307XHJcbiAgICBjb25zdCB7IGhvc3RFbGVtZW50LCBvdmVybGF5RWxlbWVudCB9ID0gb3ZlcmxheVJlZiB8fCB7fTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBYRGlhbG9nUmVmPFQ+KG92ZXJsYXlSZWYhLCBpbnN0YW5jZSwgdGhpcy5yZW5kZXJlciwgdGhpcy5wb3J0YWxTZXJ2aWNlKTtcclxuICAgIGxldCBkaWFsb2dCb3ggPSB7XHJcbiAgICAgIGRyYWdnYWJsZTogb3B0aW9uLmRyYWdnYWJsZSxcclxuICAgICAgcmVzaXphYmxlOiBvcHRpb24ucmVzaXphYmxlXHJcbiAgICB9O1xyXG4gICAgbGV0IGRlZmF1bHRNYXhpbWl6ZSA9IHRoaXMuc2V0TWF4aW1pemUob3B0aW9uKTtcclxuICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nQm94LCB7XHJcbiAgICAgIHdpZHRoOiBkZWZhdWx0TWF4aW1pemUgPyB0aGlzLmRlZmF1bHQud2lkdGggOiBvcHRpb24ud2lkdGgsXHJcbiAgICAgIGhlaWdodDogZGVmYXVsdE1heGltaXplID8gbnVsbCA6IG9wdGlvbi5oZWlnaHQsXHJcbiAgICAgIG1pbldpZHRoOiBvcHRpb24ubWluV2lkdGgsXHJcbiAgICAgIG1pbkhlaWdodDogb3B0aW9uLm1pbkhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBpbnN0YW5jZS5wbGFjZW1lbnQgPSBvcHRpb24ucGxhY2VtZW50O1xyXG4gICAgaW5zdGFuY2Uub3B0aW9uID0gb3B0aW9uO1xyXG4gICAgaW5zdGFuY2UuZGlhbG9nUmVmID0gZGlhbG9nUmVmO1xyXG4gICAgaW5zdGFuY2UuZGVmYXVsdE1heGltaXplID0gZGVmYXVsdE1heGltaXplO1xyXG4gICAgaW5zdGFuY2UuZGlhbG9nQm94ID0gZGlhbG9nQm94O1xyXG4gICAgaW5zdGFuY2UuaG9zdEVsZW1lbnQgPSBob3N0RWxlbWVudDtcclxuICAgIGluc3RhbmNlLm92ZXJsYXlFbGVtZW50ID0gb3ZlcmxheUVsZW1lbnQ7XHJcbiAgICBkaWFsb2dSZWYub3B0aW9uID0gb3B0aW9uO1xyXG4gICAgZGlhbG9nUmVmLmZ1bGxzY3JlZW4gPSBkZWZhdWx0TWF4aW1pemU7XHJcbiAgICBpZiAob3B0aW9uLnJlc2l6YWJsZSAmJiAhZGVmYXVsdE1heGltaXplKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQsIFBvcnRhbFJlc2l6YWJsZVByZWZpeCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nQm94LCB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UmVzaXphYmxlKG92ZXJsYXlFbGVtZW50ISwgb3B0aW9uLnBsYWNlbWVudCkpO1xyXG4gICAgICAgIGluc3RhbmNlLm9mZnNldExlZnQgPSBvdmVybGF5RWxlbWVudCEub2Zmc2V0TGVmdDtcclxuICAgICAgICBpbnN0YW5jZS5vZmZzZXRUb3AgPSBvdmVybGF5RWxlbWVudCEub2Zmc2V0VG9wO1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RyYWdnYWJsZSA9IG92ZXJsYXlFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCcueC1kaWFsb2ctcG9ydGFsJykhO1xyXG4gICAgICAgIGluc3RhbmNlLmluaXRIZWlnaHQgPSBkaWFsb2dEcmFnZ2FibGUuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGluc3RhbmNlLmRpYWxvZ0NvbnRlbnQgPSBvdmVybGF5RWxlbWVudD8ucXVlcnlTZWxlY3RvcignLngtZGlhbG9nLXBvcnRhbC1jb250ZW50JykhO1xyXG4gICAgICAgIGluc3RhbmNlLmluaXRDb250ZW50SGVpZ2h0ID0gaW5zdGFuY2UuZGlhbG9nQ29udGVudD8uY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIGluc3RhbmNlLmRpYWxvZ0JveCA9IGRpYWxvZ0JveDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZGVmYXVsdE1heGltaXplKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Mob3ZlcmxheUVsZW1lbnQsICd4LWRpYWxvZy1wb3J0YWwtZnVsbHNjcmVlbicpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xyXG4gICAgICBpbnN0YW5jZS5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcclxuICAgICAgICBuZXcgVGVtcGxhdGVQb3J0YWwoY29udGVudCwgb3B0aW9uLnZpZXdDb250YWluZXJSZWYhLCB7ICRpbXBsaWNpdDogb3B0aW9uLmRhdGEsIGRpYWxvZ1JlZjogZGlhbG9nUmVmIH0pXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMucG9ydGFsU2VydmljZS5jcmVhdGVJbmplY3RvcihbXHJcbiAgICAgICAgeyBwcm92aWRlOiBYX0RJQUxPR19EQVRBLCB1c2VWYWx1ZTogb3B0aW9uLmRhdGEgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFhEaWFsb2dSZWYsIHVzZVZhbHVlOiBkaWFsb2dSZWYgfVxyXG4gICAgICBdKTtcclxuICAgICAgY29uc3QgY29tUmVmID0gaW5zdGFuY2UuYXR0YWNoQ29tcG9uZW50UG9ydGFsKG5ldyBDb21wb25lbnRQb3J0YWwoY29udGVudCwgb3B0aW9uLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbVJlZi5pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9uLmhhc0JhY2tkcm9wICYmIG9wdGlvbi5iYWNrZHJvcENsb3NlICYmIG92ZXJsYXlSZWYpIHtcclxuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TWF4aW1pemUob3B0aW9uOiBYRGlhbG9nUmVmT3B0aW9uID0ge30pIHtcclxuICAgIGNvbnN0IHdzID0gWycxMDAlJywgJzEwMHZ3J107XHJcbiAgICBjb25zdCBocyA9IFsnMTAwJScsICcxMDB2aCddO1xyXG4gICAgaWYgKHdzLmluY2x1ZGVzKG9wdGlvbi53aWR0aCBhcyBzdHJpbmcpICYmIGhzLmluY2x1ZGVzKG9wdGlvbi5oZWlnaHQgYXMgc3RyaW5nKSkge1xyXG4gICAgICBvcHRpb24ucmVzaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIG9wdGlvbi5kcmFnZ2FibGUgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==