devexpress-dashboard-angular 21.2.7 → 22.1.2-beta

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 (87) hide show
  1. package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.js +484 -378
  2. package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.js.map +1 -1
  3. package/bundles/devexpress-dashboard-angular-ui-nested.umd.js +952 -813
  4. package/bundles/devexpress-dashboard-angular-ui-nested.umd.js.map +1 -1
  5. package/bundles/devexpress-dashboard-angular.umd.js +5 -7
  6. package/bundles/devexpress-dashboard-angular.umd.js.map +1 -1
  7. package/devexpress-dashboard-angular.d.ts +1 -0
  8. package/esm2015/devexpress-dashboard-angular.js +1 -1
  9. package/esm2015/index.js +1 -1
  10. package/esm2015/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.js +1 -1
  11. package/esm2015/ui/dashboard-control/index.js +211 -248
  12. package/esm2015/ui/nested/ajax-remote-service.js +45 -49
  13. package/esm2015/ui/nested/base/i-dashboard-data-source-wizard-settings.js +17 -1
  14. package/esm2015/ui/nested/dashboard-export.js +49 -59
  15. package/esm2015/ui/nested/dashboard-parameter-dialog.js +47 -54
  16. package/esm2015/ui/nested/data-inspector.js +53 -69
  17. package/esm2015/ui/nested/data-request-options.js +43 -44
  18. package/esm2015/ui/nested/data-source-wizard.js +47 -54
  19. package/esm2015/ui/nested/designer-toolbar.js +41 -39
  20. package/esm2015/ui/nested/devexpress-dashboard-angular-ui-nested.js +1 -2
  21. package/esm2015/ui/nested/extensions.js +57 -79
  22. package/esm2015/ui/nested/index.js +1 -1
  23. package/esm2015/ui/nested/item-binding-panel.js +41 -39
  24. package/esm2015/ui/nested/item-options-panel.js +41 -39
  25. package/esm2015/ui/nested/mobile-layout.js +41 -39
  26. package/esm2015/ui/nested/viewer-api.js +67 -104
  27. package/esm2015/ui/nested/wizard-settings.js +45 -39
  28. package/fesm2015/devexpress-dashboard-angular-ui-dashboard-control.js +211 -245
  29. package/fesm2015/devexpress-dashboard-angular-ui-dashboard-control.js.map +1 -1
  30. package/fesm2015/devexpress-dashboard-angular-ui-nested.js +597 -659
  31. package/fesm2015/devexpress-dashboard-angular-ui-nested.js.map +1 -1
  32. package/fesm2015/devexpress-dashboard-angular.js.map +1 -1
  33. package/package.json +11 -9
  34. package/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.d.ts +1 -0
  35. package/ui/dashboard-control/index.d.ts +128 -40
  36. package/ui/dashboard-control/package.json +2 -5
  37. package/ui/nested/ajax-remote-service.d.ts +13 -4
  38. package/ui/nested/base/i-dashboard-data-source-wizard-settings.d.ts +11 -3
  39. package/ui/nested/dashboard-export.d.ts +17 -6
  40. package/ui/nested/dashboard-parameter-dialog.d.ts +15 -5
  41. package/ui/nested/data-inspector.d.ts +21 -8
  42. package/ui/nested/data-request-options.d.ts +11 -3
  43. package/ui/nested/data-source-wizard.d.ts +15 -5
  44. package/ui/nested/designer-toolbar.d.ts +9 -2
  45. package/ui/nested/devexpress-dashboard-angular-ui-nested.d.ts +1 -1
  46. package/ui/nested/extensions.d.ts +72 -10
  47. package/ui/nested/item-binding-panel.d.ts +9 -2
  48. package/ui/nested/item-options-panel.d.ts +9 -2
  49. package/ui/nested/mobile-layout.d.ts +9 -2
  50. package/ui/nested/package.json +2 -5
  51. package/ui/nested/viewer-api.d.ts +35 -15
  52. package/ui/nested/wizard-settings.d.ts +7 -1
  53. package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.min.js +0 -17
  54. package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.min.js.map +0 -1
  55. package/bundles/devexpress-dashboard-angular-ui-nested.umd.min.js +0 -16
  56. package/bundles/devexpress-dashboard-angular-ui-nested.umd.min.js.map +0 -1
  57. package/bundles/devexpress-dashboard-angular.umd.min.js +0 -2
  58. package/bundles/devexpress-dashboard-angular.umd.min.js.map +0 -1
  59. package/devexpress-dashboard-angular.metadata.json +0 -1
  60. package/esm5/devexpress-dashboard-angular.js +0 -5
  61. package/esm5/index.js +0 -2
  62. package/esm5/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.js +0 -5
  63. package/esm5/ui/dashboard-control/index.js +0 -526
  64. package/esm5/ui/nested/ajax-remote-service.js +0 -107
  65. package/esm5/ui/nested/base/i-dashboard-data-source-wizard-settings.js +0 -42
  66. package/esm5/ui/nested/dashboard-export.js +0 -137
  67. package/esm5/ui/nested/dashboard-parameter-dialog.js +0 -122
  68. package/esm5/ui/nested/data-inspector.js +0 -167
  69. package/esm5/ui/nested/data-request-options.js +0 -92
  70. package/esm5/ui/nested/data-source-wizard.js +0 -122
  71. package/esm5/ui/nested/designer-toolbar.js +0 -77
  72. package/esm5/ui/nested/devexpress-dashboard-angular-ui-nested.js +0 -6
  73. package/esm5/ui/nested/extensions.js +0 -197
  74. package/esm5/ui/nested/index.js +0 -14
  75. package/esm5/ui/nested/item-binding-panel.js +0 -77
  76. package/esm5/ui/nested/item-options-panel.js +0 -77
  77. package/esm5/ui/nested/mobile-layout.js +0 -77
  78. package/esm5/ui/nested/viewer-api.js +0 -272
  79. package/esm5/ui/nested/wizard-settings.js +0 -68
  80. package/fesm5/devexpress-dashboard-angular-ui-dashboard-control.js +0 -518
  81. package/fesm5/devexpress-dashboard-angular-ui-dashboard-control.js.map +0 -1
  82. package/fesm5/devexpress-dashboard-angular-ui-nested.js +0 -1562
  83. package/fesm5/devexpress-dashboard-angular-ui-nested.js.map +0 -1
  84. package/fesm5/devexpress-dashboard-angular.js +0 -6
  85. package/fesm5/devexpress-dashboard-angular.js.map +0 -1
  86. package/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.metadata.json +0 -1
  87. package/ui/nested/devexpress-dashboard-angular-ui-nested.metadata.json +0 -1
@@ -1,8 +1,6 @@
1
1
  /* tslint:disable:max-line-length */
2
- import * as tslib_1 from "tslib";
3
2
  import { BrowserTransferStateModule } from '@angular/platform-browser';
4
- import { TransferState } from '@angular/platform-browser';
5
- import { Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, OnDestroy, EventEmitter } from '@angular/core';
3
+ import { Component, NgModule, PLATFORM_ID, Inject, Input, Output } from '@angular/core';
6
4
  import DxDashboardControl from 'devexpress-dashboard/integration/index';
7
5
  import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, WatcherHelper } from 'devextreme-angular/core';
8
6
  import { DxoAjaxRemoteServiceModule } from 'devexpress-dashboard-angular/ui/nested';
@@ -18,11 +16,14 @@ import { DxoItemBindingPanelModule } from 'devexpress-dashboard-angular/ui/neste
18
16
  import { DxoItemOptionsPanelModule } from 'devexpress-dashboard-angular/ui/nested';
19
17
  import { DxoMobileLayoutModule } from 'devexpress-dashboard-angular/ui/nested';
20
18
  import { DxoViewerApiModule } from 'devexpress-dashboard-angular/ui/nested';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "devextreme-angular/core";
21
+ import * as i2 from "@angular/platform-browser";
21
22
  /**
22
23
  * [descr:dxDashboardControl]
23
24
 
24
25
  */
25
- let DxDashboardControlComponent = class DxDashboardControlComponent extends DxComponent {
26
+ export class DxDashboardControlComponent extends DxComponent {
26
27
  constructor(elementRef, ngZone, templateHost, _watcherHelper, optionHost, transferState, platformId) {
27
28
  super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);
28
29
  this._createEventEmitters([
@@ -55,7 +56,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
55
56
  optionHost.setHost(this);
56
57
  }
57
58
  /**
58
- * [descr:dxDashboardControl.Options.ajaxRemoteService]
59
+ * [descr:dxDashboardControlOptions.ajaxRemoteService]
59
60
 
60
61
  */
61
62
  get ajaxRemoteService() {
@@ -65,7 +66,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
65
66
  this._setOption('ajaxRemoteService', value);
66
67
  }
67
68
  /**
68
- * [descr:dxDashboardControl.Options.allowMaximizeItems]
69
+ * [descr:dxDashboardControlOptions.allowMaximizeItems]
69
70
 
70
71
  */
71
72
  get allowMaximizeItems() {
@@ -75,7 +76,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
75
76
  this._setOption('allowMaximizeItems', value);
76
77
  }
77
78
  /**
78
- * [descr:dxDashboardControl.Options.dashboardId]
79
+ * [descr:dxDashboardControlOptions.dashboardId]
79
80
 
80
81
  */
81
82
  get dashboardId() {
@@ -85,7 +86,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
85
86
  this._setOption('dashboardId', value);
86
87
  }
87
88
  /**
88
- * [descr:dxDashboardControl.Options.dataRequestOptions]
89
+ * [descr:dxDashboardControlOptions.dataRequestOptions]
89
90
 
90
91
  */
91
92
  get dataRequestOptions() {
@@ -95,7 +96,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
95
96
  this._setOption('dataRequestOptions', value);
96
97
  }
97
98
  /**
98
- * [descr:dxDashboardControl.Options.encodeHtml]
99
+ * [descr:dxDashboardControlOptions.encodeHtml]
99
100
 
100
101
  */
101
102
  get encodeHtml() {
@@ -105,7 +106,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
105
106
  this._setOption('encodeHtml', value);
106
107
  }
107
108
  /**
108
- * [descr:dxDashboardControl.Options.endpoint]
109
+ * [descr:dxDashboardControlOptions.endpoint]
109
110
 
110
111
  */
111
112
  get endpoint() {
@@ -115,7 +116,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
115
116
  this._setOption('endpoint', value);
116
117
  }
117
118
  /**
118
- * [descr:dxDashboardControl.Options.extensions]
119
+ * [descr:dxDashboardControlOptions.extensions]
119
120
 
120
121
  */
121
122
  get extensions() {
@@ -125,7 +126,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
125
126
  this._setOption('extensions', value);
126
127
  }
127
128
  /**
128
- * [descr:dxDashboardControl.Options.initialDashboardId]
129
+ * [descr:dxDashboardControlOptions.initialDashboardId]
129
130
 
130
131
  */
131
132
  get initialDashboardId() {
@@ -135,7 +136,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
135
136
  this._setOption('initialDashboardId', value);
136
137
  }
137
138
  /**
138
- * [descr:dxDashboardControl.Options.initialDashboardState]
139
+ * [descr:dxDashboardControlOptions.initialDashboardState]
139
140
 
140
141
  */
141
142
  get initialDashboardState() {
@@ -145,7 +146,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
145
146
  this._setOption('initialDashboardState', value);
146
147
  }
147
148
  /**
148
- * [descr:dxDashboardControl.Options.limitVisibleDataMode]
149
+ * [descr:dxDashboardControlOptions.limitVisibleDataMode]
149
150
 
150
151
  */
151
152
  get limitVisibleDataMode() {
@@ -155,7 +156,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
155
156
  this._setOption('limitVisibleDataMode', value);
156
157
  }
157
158
  /**
158
- * [descr:dxDashboardControl.Options.loadDefaultDashboard]
159
+ * [descr:dxDashboardControlOptions.loadDefaultDashboard]
159
160
 
160
161
  */
161
162
  get loadDefaultDashboard() {
@@ -165,7 +166,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
165
166
  this._setOption('loadDefaultDashboard', value);
166
167
  }
167
168
  /**
168
- * [descr:dxDashboardControl.Options.resizeByTimer]
169
+ * [descr:dxDashboardControlOptions.resizeByTimer]
169
170
 
170
171
  */
171
172
  get resizeByTimer() {
@@ -175,7 +176,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
175
176
  this._setOption('resizeByTimer', value);
176
177
  }
177
178
  /**
178
- * [descr:dxDashboardControl.Options.showConfirmationOnBrowserClosing]
179
+ * [descr:dxDashboardControlOptions.showConfirmationOnBrowserClosing]
179
180
 
180
181
  */
181
182
  get showConfirmationOnBrowserClosing() {
@@ -185,7 +186,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
185
186
  this._setOption('showConfirmationOnBrowserClosing', value);
186
187
  }
187
188
  /**
188
- * [descr:dxDashboardControl.Options.useNeutralFilterMode]
189
+ * [descr:dxDashboardControlOptions.useNeutralFilterMode]
189
190
 
190
191
  */
191
192
  get useNeutralFilterMode() {
@@ -195,7 +196,7 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
195
196
  this._setOption('useNeutralFilterMode', value);
196
197
  }
197
198
  /**
198
- * [descr:dxDashboardControl.Options.workingMode]
199
+ * [descr:dxDashboardControlOptions.workingMode]
199
200
 
200
201
  */
201
202
  get workingMode() {
@@ -210,213 +211,113 @@ let DxDashboardControlComponent = class DxDashboardControlComponent extends DxCo
210
211
  ngOnDestroy() {
211
212
  this._destroyWidget();
212
213
  }
213
- };
214
- DxDashboardControlComponent.ctorParameters = () => [
215
- { type: ElementRef },
216
- { type: NgZone },
217
- { type: DxTemplateHost },
218
- { type: WatcherHelper },
219
- { type: NestedOptionHost },
220
- { type: TransferState },
221
- { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
222
- ];
223
- tslib_1.__decorate([
224
- Input(),
225
- tslib_1.__metadata("design:type", Object),
226
- tslib_1.__metadata("design:paramtypes", [Object])
227
- ], DxDashboardControlComponent.prototype, "ajaxRemoteService", null);
228
- tslib_1.__decorate([
229
- Input(),
230
- tslib_1.__metadata("design:type", Boolean),
231
- tslib_1.__metadata("design:paramtypes", [Boolean])
232
- ], DxDashboardControlComponent.prototype, "allowMaximizeItems", null);
233
- tslib_1.__decorate([
234
- Input(),
235
- tslib_1.__metadata("design:type", String),
236
- tslib_1.__metadata("design:paramtypes", [String])
237
- ], DxDashboardControlComponent.prototype, "dashboardId", null);
238
- tslib_1.__decorate([
239
- Input(),
240
- tslib_1.__metadata("design:type", Object),
241
- tslib_1.__metadata("design:paramtypes", [Object])
242
- ], DxDashboardControlComponent.prototype, "dataRequestOptions", null);
243
- tslib_1.__decorate([
244
- Input(),
245
- tslib_1.__metadata("design:type", Boolean),
246
- tslib_1.__metadata("design:paramtypes", [Boolean])
247
- ], DxDashboardControlComponent.prototype, "encodeHtml", null);
248
- tslib_1.__decorate([
249
- Input(),
250
- tslib_1.__metadata("design:type", String),
251
- tslib_1.__metadata("design:paramtypes", [String])
252
- ], DxDashboardControlComponent.prototype, "endpoint", null);
253
- tslib_1.__decorate([
254
- Input(),
255
- tslib_1.__metadata("design:type", Object),
256
- tslib_1.__metadata("design:paramtypes", [Object])
257
- ], DxDashboardControlComponent.prototype, "extensions", null);
258
- tslib_1.__decorate([
259
- Input(),
260
- tslib_1.__metadata("design:type", String),
261
- tslib_1.__metadata("design:paramtypes", [String])
262
- ], DxDashboardControlComponent.prototype, "initialDashboardId", null);
263
- tslib_1.__decorate([
264
- Input(),
265
- tslib_1.__metadata("design:type", String),
266
- tslib_1.__metadata("design:paramtypes", [String])
267
- ], DxDashboardControlComponent.prototype, "initialDashboardState", null);
268
- tslib_1.__decorate([
269
- Input(),
270
- tslib_1.__metadata("design:type", String),
271
- tslib_1.__metadata("design:paramtypes", [String])
272
- ], DxDashboardControlComponent.prototype, "limitVisibleDataMode", null);
273
- tslib_1.__decorate([
274
- Input(),
275
- tslib_1.__metadata("design:type", Boolean),
276
- tslib_1.__metadata("design:paramtypes", [Boolean])
277
- ], DxDashboardControlComponent.prototype, "loadDefaultDashboard", null);
278
- tslib_1.__decorate([
279
- Input(),
280
- tslib_1.__metadata("design:type", Boolean),
281
- tslib_1.__metadata("design:paramtypes", [Boolean])
282
- ], DxDashboardControlComponent.prototype, "resizeByTimer", null);
283
- tslib_1.__decorate([
284
- Input(),
285
- tslib_1.__metadata("design:type", Boolean),
286
- tslib_1.__metadata("design:paramtypes", [Boolean])
287
- ], DxDashboardControlComponent.prototype, "showConfirmationOnBrowserClosing", null);
288
- tslib_1.__decorate([
289
- Input(),
290
- tslib_1.__metadata("design:type", Boolean),
291
- tslib_1.__metadata("design:paramtypes", [Boolean])
292
- ], DxDashboardControlComponent.prototype, "useNeutralFilterMode", null);
293
- tslib_1.__decorate([
294
- Input(),
295
- tslib_1.__metadata("design:type", String),
296
- tslib_1.__metadata("design:paramtypes", [String])
297
- ], DxDashboardControlComponent.prototype, "workingMode", null);
298
- tslib_1.__decorate([
299
- Output(),
300
- tslib_1.__metadata("design:type", EventEmitter)
301
- ], DxDashboardControlComponent.prototype, "onBeforeRender", void 0);
302
- tslib_1.__decorate([
303
- Output(),
304
- tslib_1.__metadata("design:type", EventEmitter)
305
- ], DxDashboardControlComponent.prototype, "onDashboardBeginUpdate", void 0);
306
- tslib_1.__decorate([
307
- Output(),
308
- tslib_1.__metadata("design:type", EventEmitter)
309
- ], DxDashboardControlComponent.prototype, "onDashboardEndUpdate", void 0);
310
- tslib_1.__decorate([
311
- Output(),
312
- tslib_1.__metadata("design:type", EventEmitter)
313
- ], DxDashboardControlComponent.prototype, "onDashboardInitialized", void 0);
314
- tslib_1.__decorate([
315
- Output(),
316
- tslib_1.__metadata("design:type", EventEmitter)
317
- ], DxDashboardControlComponent.prototype, "onDashboardInitializing", void 0);
318
- tslib_1.__decorate([
319
- Output(),
320
- tslib_1.__metadata("design:type", EventEmitter)
321
- ], DxDashboardControlComponent.prototype, "onDashboardStateChanged", void 0);
322
- tslib_1.__decorate([
323
- Output(),
324
- tslib_1.__metadata("design:type", EventEmitter)
325
- ], DxDashboardControlComponent.prototype, "onInitializing", void 0);
326
- tslib_1.__decorate([
327
- Output(),
328
- tslib_1.__metadata("design:type", EventEmitter)
329
- ], DxDashboardControlComponent.prototype, "onItemBeginUpdate", void 0);
330
- tslib_1.__decorate([
331
- Output(),
332
- tslib_1.__metadata("design:type", EventEmitter)
333
- ], DxDashboardControlComponent.prototype, "onItemEndUpdate", void 0);
334
- tslib_1.__decorate([
335
- Output(),
336
- tslib_1.__metadata("design:type", EventEmitter)
337
- ], DxDashboardControlComponent.prototype, "onOptionChanged", void 0);
338
- tslib_1.__decorate([
339
- Output(),
340
- tslib_1.__metadata("design:type", EventEmitter)
341
- ], DxDashboardControlComponent.prototype, "ajaxRemoteServiceChange", void 0);
342
- tslib_1.__decorate([
343
- Output(),
344
- tslib_1.__metadata("design:type", EventEmitter)
345
- ], DxDashboardControlComponent.prototype, "allowMaximizeItemsChange", void 0);
346
- tslib_1.__decorate([
347
- Output(),
348
- tslib_1.__metadata("design:type", EventEmitter)
349
- ], DxDashboardControlComponent.prototype, "dashboardIdChange", void 0);
350
- tslib_1.__decorate([
351
- Output(),
352
- tslib_1.__metadata("design:type", EventEmitter)
353
- ], DxDashboardControlComponent.prototype, "dataRequestOptionsChange", void 0);
354
- tslib_1.__decorate([
355
- Output(),
356
- tslib_1.__metadata("design:type", EventEmitter)
357
- ], DxDashboardControlComponent.prototype, "encodeHtmlChange", void 0);
358
- tslib_1.__decorate([
359
- Output(),
360
- tslib_1.__metadata("design:type", EventEmitter)
361
- ], DxDashboardControlComponent.prototype, "endpointChange", void 0);
362
- tslib_1.__decorate([
363
- Output(),
364
- tslib_1.__metadata("design:type", EventEmitter)
365
- ], DxDashboardControlComponent.prototype, "extensionsChange", void 0);
366
- tslib_1.__decorate([
367
- Output(),
368
- tslib_1.__metadata("design:type", EventEmitter)
369
- ], DxDashboardControlComponent.prototype, "initialDashboardIdChange", void 0);
370
- tslib_1.__decorate([
371
- Output(),
372
- tslib_1.__metadata("design:type", EventEmitter)
373
- ], DxDashboardControlComponent.prototype, "initialDashboardStateChange", void 0);
374
- tslib_1.__decorate([
375
- Output(),
376
- tslib_1.__metadata("design:type", EventEmitter)
377
- ], DxDashboardControlComponent.prototype, "limitVisibleDataModeChange", void 0);
378
- tslib_1.__decorate([
379
- Output(),
380
- tslib_1.__metadata("design:type", EventEmitter)
381
- ], DxDashboardControlComponent.prototype, "loadDefaultDashboardChange", void 0);
382
- tslib_1.__decorate([
383
- Output(),
384
- tslib_1.__metadata("design:type", EventEmitter)
385
- ], DxDashboardControlComponent.prototype, "resizeByTimerChange", void 0);
386
- tslib_1.__decorate([
387
- Output(),
388
- tslib_1.__metadata("design:type", EventEmitter)
389
- ], DxDashboardControlComponent.prototype, "showConfirmationOnBrowserClosingChange", void 0);
390
- tslib_1.__decorate([
391
- Output(),
392
- tslib_1.__metadata("design:type", EventEmitter)
393
- ], DxDashboardControlComponent.prototype, "useNeutralFilterModeChange", void 0);
394
- tslib_1.__decorate([
395
- Output(),
396
- tslib_1.__metadata("design:type", EventEmitter)
397
- ], DxDashboardControlComponent.prototype, "workingModeChange", void 0);
398
- DxDashboardControlComponent = tslib_1.__decorate([
399
- Component({
400
- selector: 'dx-dashboard-control',
401
- template: '',
402
- providers: [
214
+ }
215
+ /** @nocollapse */ DxDashboardControlComponent.ɵfac = function DxDashboardControlComponent_Factory(t) { return new (t || DxDashboardControlComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.DxTemplateHost), i0.ɵɵdirectiveInject(i1.WatcherHelper), i0.ɵɵdirectiveInject(i1.NestedOptionHost), i0.ɵɵdirectiveInject(i2.TransferState), i0.ɵɵdirectiveInject(PLATFORM_ID)); };
216
+ /** @nocollapse */ DxDashboardControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxDashboardControlComponent, selectors: [["dx-dashboard-control"]], inputs: { ajaxRemoteService: "ajaxRemoteService", allowMaximizeItems: "allowMaximizeItems", dashboardId: "dashboardId", dataRequestOptions: "dataRequestOptions", encodeHtml: "encodeHtml", endpoint: "endpoint", extensions: "extensions", initialDashboardId: "initialDashboardId", initialDashboardState: "initialDashboardState", limitVisibleDataMode: "limitVisibleDataMode", loadDefaultDashboard: "loadDefaultDashboard", resizeByTimer: "resizeByTimer", showConfirmationOnBrowserClosing: "showConfirmationOnBrowserClosing", useNeutralFilterMode: "useNeutralFilterMode", workingMode: "workingMode" }, outputs: { onBeforeRender: "onBeforeRender", onDashboardBeginUpdate: "onDashboardBeginUpdate", onDashboardEndUpdate: "onDashboardEndUpdate", onDashboardInitialized: "onDashboardInitialized", onDashboardInitializing: "onDashboardInitializing", onDashboardStateChanged: "onDashboardStateChanged", onInitializing: "onInitializing", onItemBeginUpdate: "onItemBeginUpdate", onItemEndUpdate: "onItemEndUpdate", onOptionChanged: "onOptionChanged", ajaxRemoteServiceChange: "ajaxRemoteServiceChange", allowMaximizeItemsChange: "allowMaximizeItemsChange", dashboardIdChange: "dashboardIdChange", dataRequestOptionsChange: "dataRequestOptionsChange", encodeHtmlChange: "encodeHtmlChange", endpointChange: "endpointChange", extensionsChange: "extensionsChange", initialDashboardIdChange: "initialDashboardIdChange", initialDashboardStateChange: "initialDashboardStateChange", limitVisibleDataModeChange: "limitVisibleDataModeChange", loadDefaultDashboardChange: "loadDefaultDashboardChange", resizeByTimerChange: "resizeByTimerChange", showConfirmationOnBrowserClosingChange: "showConfirmationOnBrowserClosingChange", useNeutralFilterModeChange: "useNeutralFilterModeChange", workingModeChange: "workingModeChange" }, features: [i0.ɵɵProvidersFeature([
403
217
  DxTemplateHost,
404
218
  WatcherHelper,
405
219
  NestedOptionHost
406
- ]
407
- }),
408
- tslib_1.__param(6, Inject(PLATFORM_ID)),
409
- tslib_1.__metadata("design:paramtypes", [ElementRef, NgZone, DxTemplateHost,
410
- WatcherHelper,
411
- NestedOptionHost,
412
- TransferState, Object])
413
- ], DxDashboardControlComponent);
414
- export { DxDashboardControlComponent };
415
- let DxDashboardControlModule = class DxDashboardControlModule {
416
- };
417
- DxDashboardControlModule = tslib_1.__decorate([
418
- NgModule({
419
- imports: [
220
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxDashboardControlComponent_Template(rf, ctx) { }, encapsulation: 2 });
221
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxDashboardControlComponent, [{
222
+ type: Component,
223
+ args: [{
224
+ selector: 'dx-dashboard-control',
225
+ template: '',
226
+ providers: [
227
+ DxTemplateHost,
228
+ WatcherHelper,
229
+ NestedOptionHost
230
+ ]
231
+ }]
232
+ }], function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.NestedOptionHost }, { type: i2.TransferState }, { type: undefined, decorators: [{
233
+ type: Inject,
234
+ args: [PLATFORM_ID]
235
+ }] }]; }, { ajaxRemoteService: [{
236
+ type: Input
237
+ }], allowMaximizeItems: [{
238
+ type: Input
239
+ }], dashboardId: [{
240
+ type: Input
241
+ }], dataRequestOptions: [{
242
+ type: Input
243
+ }], encodeHtml: [{
244
+ type: Input
245
+ }], endpoint: [{
246
+ type: Input
247
+ }], extensions: [{
248
+ type: Input
249
+ }], initialDashboardId: [{
250
+ type: Input
251
+ }], initialDashboardState: [{
252
+ type: Input
253
+ }], limitVisibleDataMode: [{
254
+ type: Input
255
+ }], loadDefaultDashboard: [{
256
+ type: Input
257
+ }], resizeByTimer: [{
258
+ type: Input
259
+ }], showConfirmationOnBrowserClosing: [{
260
+ type: Input
261
+ }], useNeutralFilterMode: [{
262
+ type: Input
263
+ }], workingMode: [{
264
+ type: Input
265
+ }], onBeforeRender: [{
266
+ type: Output
267
+ }], onDashboardBeginUpdate: [{
268
+ type: Output
269
+ }], onDashboardEndUpdate: [{
270
+ type: Output
271
+ }], onDashboardInitialized: [{
272
+ type: Output
273
+ }], onDashboardInitializing: [{
274
+ type: Output
275
+ }], onDashboardStateChanged: [{
276
+ type: Output
277
+ }], onInitializing: [{
278
+ type: Output
279
+ }], onItemBeginUpdate: [{
280
+ type: Output
281
+ }], onItemEndUpdate: [{
282
+ type: Output
283
+ }], onOptionChanged: [{
284
+ type: Output
285
+ }], ajaxRemoteServiceChange: [{
286
+ type: Output
287
+ }], allowMaximizeItemsChange: [{
288
+ type: Output
289
+ }], dashboardIdChange: [{
290
+ type: Output
291
+ }], dataRequestOptionsChange: [{
292
+ type: Output
293
+ }], encodeHtmlChange: [{
294
+ type: Output
295
+ }], endpointChange: [{
296
+ type: Output
297
+ }], extensionsChange: [{
298
+ type: Output
299
+ }], initialDashboardIdChange: [{
300
+ type: Output
301
+ }], initialDashboardStateChange: [{
302
+ type: Output
303
+ }], limitVisibleDataModeChange: [{
304
+ type: Output
305
+ }], loadDefaultDashboardChange: [{
306
+ type: Output
307
+ }], resizeByTimerChange: [{
308
+ type: Output
309
+ }], showConfirmationOnBrowserClosingChange: [{
310
+ type: Output
311
+ }], useNeutralFilterModeChange: [{
312
+ type: Output
313
+ }], workingModeChange: [{
314
+ type: Output
315
+ }] }); })();
316
+ export class DxDashboardControlModule {
317
+ }
318
+ /** @nocollapse */ DxDashboardControlModule.ɵfac = function DxDashboardControlModule_Factory(t) { return new (t || DxDashboardControlModule)(); };
319
+ /** @nocollapse */ DxDashboardControlModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxDashboardControlModule });
320
+ /** @nocollapse */ DxDashboardControlModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [[
420
321
  DxoAjaxRemoteServiceModule,
421
322
  DxoDataRequestOptionsModule,
422
323
  DxoExtensionsModule,
@@ -433,28 +334,90 @@ DxDashboardControlModule = tslib_1.__decorate([
433
334
  DxIntegrationModule,
434
335
  DxTemplateModule,
435
336
  BrowserTransferStateModule
436
- ],
437
- declarations: [
438
- DxDashboardControlComponent
439
- ],
440
- exports: [
441
- DxDashboardControlComponent,
442
- DxoAjaxRemoteServiceModule,
443
- DxoDataRequestOptionsModule,
444
- DxoExtensionsModule,
445
- DxoDashboardExportModule,
446
- DxoDashboardParameterDialogModule,
447
- DxoDataInspectorModule,
448
- DxoDataSourceWizardModule,
449
- DxoWizardSettingsModule,
450
- DxoDesignerToolbarModule,
451
- DxoItemBindingPanelModule,
452
- DxoItemOptionsPanelModule,
453
- DxoMobileLayoutModule,
454
- DxoViewerApiModule,
455
- DxTemplateModule
456
- ]
457
- })
458
- ], DxDashboardControlModule);
459
- export { DxDashboardControlModule };
460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL2Rhc2hib2FyZC1jb250cm9sLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOztBQUdwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUVOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLGtCQUFrQixNQUFNLHdDQUF3QyxDQUFDO0FBR3hFLE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdC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QUN6Qix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6Qix5QkFBeUI7WUFDekIscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLDBCQUEwQjtTQUMzQjtRQUNELFlBQVksRUFBRTtZQUNaLDJCQUEyQjtTQUM1QjtRQUNELE9BQU8sRUFBRTtZQUNQLDJCQUEyQjtZQUMzQiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsaUNBQWlDO1lBQ2pDLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4Qix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1NBQ2pCO0tBQ0YsQ0FBQztHQUNXLHdCQUF3QixDQUFJO1NBQTVCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aCAqL1xyXG5cclxuXHJcbmltcG9ydCB7IEJyb3dzZXJUcmFuc2ZlclN0YXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFRyYW5zZmVyU3RhdGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBOZ01vZHVsZSxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBQTEFURk9STV9JRCxcclxuICAgIEluamVjdCxcclxuXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmltcG9ydCB7IElEYXNoYm9hcmREYXRhU291cmNlV2l6YXJkU2V0dGluZ3MgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC9kZXNpZ25lci9kYXRhLXNvdXJjZS13aXphcmQvZGF0YS1zb3VyY2Utd2l6YXJkLWV4dGVuc2lvbic7XHJcblxyXG5pbXBvcnQgRHhEYXNoYm9hcmRDb250cm9sIGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkL2ludGVncmF0aW9uL2luZGV4JztcclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgRHhDb21wb25lbnQsXHJcbiAgICBEeFRlbXBsYXRlSG9zdCxcclxuICAgIER4SW50ZWdyYXRpb25Nb2R1bGUsXHJcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxyXG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgIFdhdGNoZXJIZWxwZXJcclxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEeG9BamF4UmVtb3RlU2VydmljZU1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9FeHRlbnNpb25zTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRFeHBvcnRNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0Rhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvRGF0YUluc3BlY3Rvck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvRGF0YVNvdXJjZVdpemFyZE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvV2l6YXJkU2V0dGluZ3NNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0Rlc2lnbmVyVG9vbGJhck1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvSXRlbUJpbmRpbmdQYW5lbE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvTW9iaWxlTGF5b3V0TW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9WaWV3ZXJBcGlNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbF1cclxuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZHgtZGFzaGJvYXJkLWNvbnRyb2wnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICAgICAgV2F0Y2hlckhlbHBlcixcclxuICAgICAgICBOZXN0ZWRPcHRpb25Ib3N0XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xDb21wb25lbnQgZXh0ZW5kcyBEeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBpbnN0YW5jZTogRHhEYXNoYm9hcmRDb250cm9sO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmFqYXhSZW1vdGVTZXJ2aWNlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYWpheFJlbW90ZVNlcnZpY2UoKTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnKTtcclxuICAgIH1cclxuICAgIHNldCBhamF4UmVtb3RlU2VydmljZSh2YWx1ZTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmFsbG93TWF4aW1pemVJdGVtc11cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGFsbG93TWF4aW1pemVJdGVtcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdhbGxvd01heGltaXplSXRlbXMnKTtcclxuICAgIH1cclxuICAgIHNldCBhbGxvd01heGltaXplSXRlbXModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FsbG93TWF4aW1pemVJdGVtcycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMuZGFzaGJvYXJkSWRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkYXNoYm9hcmRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2Rhc2hib2FyZElkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZGFzaGJvYXJkSWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGFzaGJvYXJkSWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmRhdGFSZXF1ZXN0T3B0aW9uc11cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGRhdGFSZXF1ZXN0T3B0aW9ucygpOiB7IGl0ZW1EYXRhTG9hZGluZ01vZGU/OiBzdHJpbmcsIGl0ZW1EYXRhUmVxdWVzdE1vZGU/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZGF0YVJlcXVlc3RPcHRpb25zKHZhbHVlOiB7IGl0ZW1EYXRhTG9hZGluZ01vZGU/OiBzdHJpbmcsIGl0ZW1EYXRhUmVxdWVzdE1vZGU/OiBzdHJpbmcgfSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2wuT3B0aW9ucy5lbmNvZGVIdG1sXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZW5jb2RlSHRtbCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlbmNvZGVIdG1sJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZW5jb2RlSHRtbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5jb2RlSHRtbCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMuZW5kcG9pbnRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBlbmRwb2ludCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2VuZHBvaW50Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZW5kcG9pbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZW5kcG9pbnQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmV4dGVuc2lvbnNdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBleHRlbnNpb25zKCk6IHsgZGFzaGJvYXJkRXhwb3J0PzogeyBhbGxvd0V4cG9ydERhc2hib2FyZD86IGJvb2xlYW4sIGFsbG93RXhwb3J0RGFzaGJvYXJkSXRlbXM/OiBib29sZWFuLCBvbkV4cG9ydERpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93bj86IEZ1bmN0aW9uIH0sIGRhc2hib2FyZFBhcmFtZXRlckRpYWxvZz86IHsgb25EeW5hbWljTG9va1VwVmFsdWVzTG9hZGVkPzogRnVuY3Rpb24sIG9uSGlkZGVuPzogRnVuY3Rpb24sIG9uU2hvd2luZz86IEZ1bmN0aW9uLCBvblNob3duPzogRnVuY3Rpb24gfSwgZGF0YUluc3BlY3Rvcj86IHsgYWxsb3dJbnNwZWN0QWdncmVnYXRlZERhdGE/OiBib29sZWFuLCBhbGxvd0luc3BlY3RSYXdEYXRhPzogYm9vbGVhbiwgb25EaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd24/OiBGdW5jdGlvbiwgb25HcmlkQ29udGVudFJlYWR5PzogRnVuY3Rpb24sIG9uR3JpZEluaXRpYWxpemVkPzogRnVuY3Rpb24gfSwgZGF0YVNvdXJjZVdpemFyZD86IHsgYWxsb3dDcmVhdGVOZXdKc29uQ29ubmVjdGlvbj86IGJvb2xlYW4sIGVuYWJsZUN1c3RvbVNxbD86IGJvb2xlYW4sIG9uQ3VzdG9taXplRGF0YVNvdXJjZVdpemFyZD86IEZ1bmN0aW9uLCB3aXphcmRTZXR0aW5ncz86IElEYXNoYm9hcmREYXRhU291cmNlV2l6YXJkU2V0dGluZ3MgfSwgZGVzaWduZXJUb29sYmFyPzogeyBvblByZXBhcmluZz86IEZ1bmN0aW9uIH0sIGl0ZW1CaW5kaW5nUGFuZWw/OiB7IG9uQ3VzdG9taXplRGF0YUl0ZW1Db250YWluZXJTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIGl0ZW1PcHRpb25zUGFuZWw/OiB7IG9uQ3VzdG9taXplU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBtb2JpbGVMYXlvdXQ/OiB7IG1vYmlsZUxheW91dEVuYWJsZWQ/OiBzdHJpbmcgfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdleHRlbnNpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZXh0ZW5zaW9ucyh2YWx1ZTogeyBkYXNoYm9hcmRFeHBvcnQ/OiB7IGFsbG93RXhwb3J0RGFzaGJvYXJkPzogYm9vbGVhbiwgYWxsb3dFeHBvcnREYXNoYm9hcmRJdGVtcz86IGJvb2xlYW4sIG9uRXhwb3J0RGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3duPzogRnVuY3Rpb24gfSwgZGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nPzogeyBvbkR5bmFtaWNMb29rVXBWYWx1ZXNMb2FkZWQ/OiBGdW5jdGlvbiwgb25IaWRkZW4/OiBGdW5jdGlvbiwgb25TaG93aW5nPzogRnVuY3Rpb24sIG9uU2hvd24/OiBGdW5jdGlvbiB9LCBkYXRhSW5zcGVjdG9yPzogeyBhbGxvd0luc3BlY3RBZ2dyZWdhdGVkRGF0YT86IGJvb2xlYW4sIGFsbG93SW5zcGVjdFJhd0RhdGE/OiBib29sZWFuLCBvbkRpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93bj86IEZ1bmN0aW9uLCBvbkdyaWRDb250ZW50UmVhZHk/OiBGdW5jdGlvbiwgb25HcmlkSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbiB9LCBkYXRhU291cmNlV2l6YXJkPzogeyBhbGxvd0NyZWF0ZU5ld0pzb25Db25uZWN0aW9uPzogYm9vbGVhbiwgZW5hYmxlQ3VzdG9tU3FsPzogYm9vbGVhbiwgb25DdXN0b21pemVEYXRhU291cmNlV2l6YXJkPzogRnVuY3Rpb24sIHdpemFyZFNldHRpbmdzPzogSURhc2hib2FyZERhdGFTb3VyY2VXaXphcmRTZXR0aW5ncyB9LCBkZXNpZ25lclRvb2xiYXI/OiB7IG9uUHJlcGFyaW5nPzogRnVuY3Rpb24gfSwgaXRlbUJpbmRpbmdQYW5lbD86IHsgb25DdXN0b21pemVEYXRhSXRlbUNvbnRhaW5lclNlY3Rpb25zPzogRnVuY3Rpb24gfSwgaXRlbU9wdGlvbnNQYW5lbD86IHsgb25DdXN0b21pemVTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIG1vYmlsZUxheW91dD86IHsgbW9iaWxlTGF5b3V0RW5hYmxlZD86IHN0cmluZyB9LCB2aWV3ZXJBcGk/OiB7IG9uRGFzaGJvYXJkVGl0bGVUb29sYmFyVXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1BY3Rpb25BdmFpbGFiaWxpdHlDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUNhcHRpb25Ub29sYmFyVXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DbGljaz86IEZ1bmN0aW9uLCBvbkl0ZW1EcmlsbERvd25TdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtRWxlbWVudEN1c3RvbUNvbG9yPzogRnVuY3Rpb24sIG9uSXRlbU1hc3RlckZpbHRlclN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1TZWxlY3Rpb25DaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVZpc3VhbEludGVyYWN0aXZpdHk/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRPcHRpb25zUHJlcGFyZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGluZz86IEZ1bmN0aW9uLCBvblNlbGVjdGVkVGFiUGFnZUNoYW5nZWQ/OiBGdW5jdGlvbiB9IH0pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2V4dGVuc2lvbnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmluaXRpYWxEYXNoYm9hcmRJZF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRJZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2luaXRpYWxEYXNoYm9hcmRJZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkSWQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmluaXRpYWxEYXNoYm9hcmRTdGF0ZV1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2luaXRpYWxEYXNoYm9hcmRTdGF0ZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGluaXRpYWxEYXNoYm9hcmRTdGF0ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkU3RhdGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLmxpbWl0VmlzaWJsZURhdGFNb2RlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbGltaXRWaXNpYmxlRGF0YU1vZGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdsaW1pdFZpc2libGVEYXRhTW9kZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGxpbWl0VmlzaWJsZURhdGFNb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2xpbWl0VmlzaWJsZURhdGFNb2RlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2wuT3B0aW9ucy5sb2FkRGVmYXVsdERhc2hib2FyZF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGxvYWREZWZhdWx0RGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2xvYWREZWZhdWx0RGFzaGJvYXJkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbG9hZERlZmF1bHREYXNoYm9hcmQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2xvYWREZWZhdWx0RGFzaGJvYXJkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2wuT3B0aW9ucy5yZXNpemVCeVRpbWVyXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcmVzaXplQnlUaW1lcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdyZXNpemVCeVRpbWVyJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgcmVzaXplQnlUaW1lcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigncmVzaXplQnlUaW1lcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMuc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMudXNlTmV1dHJhbEZpbHRlck1vZGVdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCB1c2VOZXV0cmFsRmlsdGVyTW9kZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd1c2VOZXV0cmFsRmlsdGVyTW9kZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHVzZU5ldXRyYWxGaWx0ZXJNb2RlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd1c2VOZXV0cmFsRmlsdGVyTW9kZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMud29ya2luZ01vZGVdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCB3b3JraW5nTW9kZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3dvcmtpbmdNb2RlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgd29ya2luZ01vZGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignd29ya2luZ01vZGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2wuT3B0aW9ucy5vbkJlZm9yZVJlbmRlcl1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkJlZm9yZVJlbmRlcjogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2wuT3B0aW9ucy5vbkRhc2hib2FyZEJlZ2luVXBkYXRlXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkQmVnaW5VcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMub25EYXNoYm9hcmRFbmRVcGRhdGVdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRFbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMub25EYXNoYm9hcmRJbml0aWFsaXplZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRhc2hib2FyZEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLm9uRGFzaGJvYXJkSW5pdGlhbGl6aW5nXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkSW5pdGlhbGl6aW5nOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLm9uRGFzaGJvYXJkU3RhdGVDaGFuZ2VkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkU3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLm9uSW5pdGlhbGl6aW5nXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6aW5nOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLm9uSXRlbUJlZ2luVXBkYXRlXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSXRlbUJlZ2luVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbC5PcHRpb25zLm9uSXRlbUVuZFVwZGF0ZV1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkl0ZW1FbmRVcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sLk9wdGlvbnMub25PcHRpb25DaGFuZ2VkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uT3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGFqYXhSZW1vdGVTZXJ2aWNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGFsbG93TWF4aW1pemVJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBkYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGRhdGFSZXF1ZXN0T3B0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZW5jb2RlSHRtbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBlbmRwb2ludENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGV4dGVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHZpZXdlckFwaT86IHsgb25EYXNoYm9hcmRUaXRsZVRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUFjdGlvbkF2YWlsYWJpbGl0eUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2FwdGlvblRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUNsaWNrPzogRnVuY3Rpb24sIG9uSXRlbURyaWxsRG93blN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1FbGVtZW50Q3VzdG9tQ29sb3I/OiBGdW5jdGlvbiwgb25JdGVtTWFzdGVyRmlsdGVyU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVNlbGVjdGlvbkNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtVmlzdWFsSW50ZXJhY3Rpdml0eT86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRDcmVhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0aW5nPzogRnVuY3Rpb24sIG9uU2VsZWN0ZWRUYWJQYWdlQ2hhbmdlZD86IEZ1bmN0aW9uIH0gfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRTdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxpbWl0VmlzaWJsZURhdGFNb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbG9hZERlZmF1bHREYXNoYm9hcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVzaXplQnlUaW1lckNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB1c2VOZXV0cmFsRmlsdGVyTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3b3JraW5nTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmdab25lOiBOZ1pvbmUsIHRlbXBsYXRlSG9zdDogRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICAgICAgICAgIF93YXRjaGVySGVscGVyOiBXYXRjaGVySGVscGVyLFxyXG4gICAgICAgICAgICBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgICAgICB0cmFuc2ZlclN0YXRlOiBUcmFuc2ZlclN0YXRlLFxyXG4gICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnkpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgbmdab25lLCB0ZW1wbGF0ZUhvc3QsIF93YXRjaGVySGVscGVyLCB0cmFuc2ZlclN0YXRlLCBwbGF0Zm9ybUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlRXZlbnRFbWl0dGVycyhbXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnYmVmb3JlUmVuZGVyJywgZW1pdDogJ29uQmVmb3JlUmVuZGVyJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEJlZ2luVXBkYXRlJywgZW1pdDogJ29uRGFzaGJvYXJkQmVnaW5VcGRhdGUnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkRW5kVXBkYXRlJywgZW1pdDogJ29uRGFzaGJvYXJkRW5kVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEluaXRpYWxpemVkJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6ZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkSW5pdGlhbGl6aW5nJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZFN0YXRlQ2hhbmdlZCcsIGVtaXQ6ICdvbkRhc2hib2FyZFN0YXRlQ2hhbmdlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXppbmcnLCBlbWl0OiAnb25Jbml0aWFsaXppbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaXRlbUJlZ2luVXBkYXRlJywgZW1pdDogJ29uSXRlbUJlZ2luVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2l0ZW1FbmRVcGRhdGUnLCBlbWl0OiAnb25JdGVtRW5kVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ29wdGlvbkNoYW5nZWQnLCBlbWl0OiAnb25PcHRpb25DaGFuZ2VkJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdhamF4UmVtb3RlU2VydmljZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnYWxsb3dNYXhpbWl6ZUl0ZW1zQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdkYXNoYm9hcmRJZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGF0YVJlcXVlc3RPcHRpb25zQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlbmNvZGVIdG1sQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlbmRwb2ludENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZXh0ZW5zaW9uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaW5pdGlhbERhc2hib2FyZElkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdpbml0aWFsRGFzaGJvYXJkU3RhdGVDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2xpbWl0VmlzaWJsZURhdGFNb2RlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdsb2FkRGVmYXVsdERhc2hib2FyZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncmVzaXplQnlUaW1lckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd3b3JraW5nTW9kZUNoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIG9wdGlvbkhvc3Quc2V0SG9zdCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZUluc3RhbmNlKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEeERhc2hib2FyZENvbnRyb2woZWxlbWVudCwgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuX2Rlc3Ryb3lXaWRnZXQoKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgRHhvQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUsXHJcbiAgICBEeG9EYXRhUmVxdWVzdE9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9FeHRlbnNpb25zTW9kdWxlLFxyXG4gICAgRHhvRGFzaGJvYXJkRXhwb3J0TW9kdWxlLFxyXG4gICAgRHhvRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlLFxyXG4gICAgRHhvRGF0YUluc3BlY3Rvck1vZHVsZSxcclxuICAgIER4b0RhdGFTb3VyY2VXaXphcmRNb2R1bGUsXHJcbiAgICBEeG9XaXphcmRTZXR0aW5nc01vZHVsZSxcclxuICAgIER4b0Rlc2lnbmVyVG9vbGJhck1vZHVsZSxcclxuICAgIER4b0l0ZW1CaW5kaW5nUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9JdGVtT3B0aW9uc1BhbmVsTW9kdWxlLFxyXG4gICAgRHhvTW9iaWxlTGF5b3V0TW9kdWxlLFxyXG4gICAgRHhvVmlld2VyQXBpTW9kdWxlLFxyXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGUsXHJcbiAgICBCcm93c2VyVHJhbnNmZXJTdGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeERhc2hib2FyZENvbnRyb2xDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIER4RGFzaGJvYXJkQ29udHJvbENvbXBvbmVudCxcclxuICAgIER4b0FqYXhSZW1vdGVTZXJ2aWNlTW9kdWxlLFxyXG4gICAgRHhvRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvRXh0ZW5zaW9uc01vZHVsZSxcclxuICAgIER4b0Rhc2hib2FyZEV4cG9ydE1vZHVsZSxcclxuICAgIER4b0Rhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSxcclxuICAgIER4b0RhdGFJbnNwZWN0b3JNb2R1bGUsXHJcbiAgICBEeG9EYXRhU291cmNlV2l6YXJkTW9kdWxlLFxyXG4gICAgRHhvV2l6YXJkU2V0dGluZ3NNb2R1bGUsXHJcbiAgICBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUsXHJcbiAgICBEeG9JdGVtQmluZGluZ1BhbmVsTW9kdWxlLFxyXG4gICAgRHhvSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSxcclxuICAgIER4b01vYmlsZUxheW91dE1vZHVsZSxcclxuICAgIER4b1ZpZXdlckFwaU1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xNb2R1bGUgeyB9XHJcbiJdfQ==
337
+ ], DxoAjaxRemoteServiceModule,
338
+ DxoDataRequestOptionsModule,
339
+ DxoExtensionsModule,
340
+ DxoDashboardExportModule,
341
+ DxoDashboardParameterDialogModule,
342
+ DxoDataInspectorModule,
343
+ DxoDataSourceWizardModule,
344
+ DxoWizardSettingsModule,
345
+ DxoDesignerToolbarModule,
346
+ DxoItemBindingPanelModule,
347
+ DxoItemOptionsPanelModule,
348
+ DxoMobileLayoutModule,
349
+ DxoViewerApiModule,
350
+ DxTemplateModule] });
351
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxDashboardControlModule, [{
352
+ type: NgModule,
353
+ args: [{
354
+ imports: [
355
+ DxoAjaxRemoteServiceModule,
356
+ DxoDataRequestOptionsModule,
357
+ DxoExtensionsModule,
358
+ DxoDashboardExportModule,
359
+ DxoDashboardParameterDialogModule,
360
+ DxoDataInspectorModule,
361
+ DxoDataSourceWizardModule,
362
+ DxoWizardSettingsModule,
363
+ DxoDesignerToolbarModule,
364
+ DxoItemBindingPanelModule,
365
+ DxoItemOptionsPanelModule,
366
+ DxoMobileLayoutModule,
367
+ DxoViewerApiModule,
368
+ DxIntegrationModule,
369
+ DxTemplateModule,
370
+ BrowserTransferStateModule
371
+ ],
372
+ declarations: [
373
+ DxDashboardControlComponent
374
+ ],
375
+ exports: [
376
+ DxDashboardControlComponent,
377
+ DxoAjaxRemoteServiceModule,
378
+ DxoDataRequestOptionsModule,
379
+ DxoExtensionsModule,
380
+ DxoDashboardExportModule,
381
+ DxoDashboardParameterDialogModule,
382
+ DxoDataInspectorModule,
383
+ DxoDataSourceWizardModule,
384
+ DxoWizardSettingsModule,
385
+ DxoDesignerToolbarModule,
386
+ DxoItemBindingPanelModule,
387
+ DxoItemOptionsPanelModule,
388
+ DxoMobileLayoutModule,
389
+ DxoViewerApiModule,
390
+ DxTemplateModule
391
+ ]
392
+ }]
393
+ }], null, null); })();
394
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxDashboardControlModule, { declarations: [DxDashboardControlComponent], imports: [DxoAjaxRemoteServiceModule,
395
+ DxoDataRequestOptionsModule,
396
+ DxoExtensionsModule,
397
+ DxoDashboardExportModule,
398
+ DxoDashboardParameterDialogModule,
399
+ DxoDataInspectorModule,
400
+ DxoDataSourceWizardModule,
401
+ DxoWizardSettingsModule,
402
+ DxoDesignerToolbarModule,
403
+ DxoItemBindingPanelModule,
404
+ DxoItemOptionsPanelModule,
405
+ DxoMobileLayoutModule,
406
+ DxoViewerApiModule,
407
+ DxIntegrationModule,
408
+ DxTemplateModule,
409
+ BrowserTransferStateModule], exports: [DxDashboardControlComponent, DxoAjaxRemoteServiceModule,
410
+ DxoDataRequestOptionsModule,
411
+ DxoExtensionsModule,
412
+ DxoDashboardExportModule,
413
+ DxoDashboardParameterDialogModule,
414
+ DxoDataInspectorModule,
415
+ DxoDataSourceWizardModule,
416
+ DxoWizardSettingsModule,
417
+ DxoDesignerToolbarModule,
418
+ DxoItemBindingPanelModule,
419
+ DxoItemOptionsPanelModule,
420
+ DxoMobileLayoutModule,
421
+ DxoViewerApiModule,
422
+ DxTemplateModule] }); })();
423
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdWkvZGFzaGJvYXJkLWNvbnRyb2wvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBR3BDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZFLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUdSLFdBQVcsRUFDWCxNQUFNLEVBRU4sS0FBSyxFQUNMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLGtCQUFrQixNQUFNLHdDQUF3QyxDQUFDO0FBR3hFLE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3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dEIseUJBQXlCO29CQUN6Qix1QkFBdUI7b0JBQ3ZCLHdCQUF3QjtvQkFDeEIseUJBQXlCO29CQUN6Qix5QkFBeUI7b0JBQ3pCLHFCQUFxQjtvQkFDckIsa0JBQWtCO29CQUNsQixnQkFBZ0I7aUJBQ2pCO2FBQ0Y7O3dGQUNZLHdCQUF3QixtQkE5ZHhCLDJCQUEyQixhQXdicEMsMEJBQTBCO1FBQzFCLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsd0JBQXdCO1FBQ3hCLGlDQUFpQztRQUNqQyxzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsMEJBQTBCLGFBdmNqQiwyQkFBMkIsRUE4Y3BDLDBCQUEwQjtRQUMxQiwyQkFBMkI7UUFDM0IsbUJBQW1CO1FBQ25CLHdCQUF3QjtRQUN4QixpQ0FBaUM7UUFDakMsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6Qix5QkFBeUI7UUFDekIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQgeyBCcm93c2VyVHJhbnNmZXJTdGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBUcmFuc2ZlclN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgTmdab25lLFxyXG4gICAgUExBVEZPUk1fSUQsXHJcbiAgICBJbmplY3QsXHJcblxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5pbXBvcnQgeyBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQvZGVzaWduZXIvZGF0YS1zb3VyY2Utd2l6YXJkL2RhdGEtc291cmNlLXdpemFyZC1leHRlbnNpb24nO1xyXG5cclxuaW1wb3J0IER4RGFzaGJvYXJkQ29udHJvbCBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC9pbnRlZ3JhdGlvbi9pbmRleCc7XHJcblxyXG5cclxuaW1wb3J0IHtcclxuICAgIER4Q29tcG9uZW50LFxyXG4gICAgRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZSxcclxuICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICBXYXRjaGVySGVscGVyXHJcbn0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRHhvQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0RhdGFSZXF1ZXN0T3B0aW9uc01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvRXh0ZW5zaW9uc01vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvRGFzaGJvYXJkRXhwb3J0TW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9EYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2dNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0RhdGFJbnNwZWN0b3JNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0RhdGFTb3VyY2VXaXphcmRNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b1dpemFyZFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0l0ZW1CaW5kaW5nUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0l0ZW1PcHRpb25zUGFuZWxNb2R1bGUgfSBmcm9tICdkZXZleHByZXNzLWRhc2hib2FyZC1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b01vYmlsZUxheW91dE1vZHVsZSB9IGZyb20gJ2RldmV4cHJlc3MtZGFzaGJvYXJkLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvVmlld2VyQXBpTW9kdWxlIH0gZnJvbSAnZGV2ZXhwcmVzcy1kYXNoYm9hcmQtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xdXHJcblxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2R4LWRhc2hib2FyZC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgIFdhdGNoZXJIZWxwZXIsXHJcbiAgICAgICAgTmVzdGVkT3B0aW9uSG9zdFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhEYXNoYm9hcmRDb250cm9sQ29tcG9uZW50IGV4dGVuZHMgRHhDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgaW5zdGFuY2U6IER4RGFzaGJvYXJkQ29udHJvbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmFqYXhSZW1vdGVTZXJ2aWNlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYWpheFJlbW90ZVNlcnZpY2UoKTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnKTtcclxuICAgIH1cclxuICAgIHNldCBhamF4UmVtb3RlU2VydmljZSh2YWx1ZTogeyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWpheFJlbW90ZVNlcnZpY2UnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuYWxsb3dNYXhpbWl6ZUl0ZW1zXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgYWxsb3dNYXhpbWl6ZUl0ZW1zKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FsbG93TWF4aW1pemVJdGVtcycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFsbG93TWF4aW1pemVJdGVtcyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignYWxsb3dNYXhpbWl6ZUl0ZW1zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmRhc2hib2FyZElkXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGFzaGJvYXJkSWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkYXNoYm9hcmRJZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRhc2hib2FyZElkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2Rhc2hib2FyZElkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmRhdGFSZXF1ZXN0T3B0aW9uc11cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGRhdGFSZXF1ZXN0T3B0aW9ucygpOiB7IGl0ZW1EYXRhTG9hZGluZ01vZGU/OiBzdHJpbmcsIGl0ZW1EYXRhUmVxdWVzdE1vZGU/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZGF0YVJlcXVlc3RPcHRpb25zKHZhbHVlOiB7IGl0ZW1EYXRhTG9hZGluZ01vZGU/OiBzdHJpbmcsIGl0ZW1EYXRhUmVxdWVzdE1vZGU/OiBzdHJpbmcgfSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignZGF0YVJlcXVlc3RPcHRpb25zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmVuY29kZUh0bWxdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBlbmNvZGVIdG1sKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2VuY29kZUh0bWwnKTtcclxuICAgIH1cclxuICAgIHNldCBlbmNvZGVIdG1sKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdlbmNvZGVIdG1sJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmVuZHBvaW50XVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZW5kcG9pbnQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdlbmRwb2ludCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGVuZHBvaW50KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2VuZHBvaW50JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmV4dGVuc2lvbnNdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBleHRlbnNpb25zKCk6IHsgZGFzaGJvYXJkRXhwb3J0PzogeyBhbGxvd0V4cG9ydERhc2hib2FyZD86IGJvb2xlYW4sIGFsbG93RXhwb3J0RGFzaGJvYXJkSXRlbXM/OiBib29sZWFuLCBvbkV4cG9ydERpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93bj86IEZ1bmN0aW9uIH0sIGRhc2hib2FyZFBhcmFtZXRlckRpYWxvZz86IHsgb25EeW5hbWljTG9va1VwVmFsdWVzTG9hZGVkPzogRnVuY3Rpb24sIG9uSGlkZGVuPzogRnVuY3Rpb24sIG9uU2hvd2luZz86IEZ1bmN0aW9uLCBvblNob3duPzogRnVuY3Rpb24gfSwgZGF0YUluc3BlY3Rvcj86IHsgYWxsb3dJbnNwZWN0QWdncmVnYXRlZERhdGE/OiBib29sZWFuLCBhbGxvd0luc3BlY3RSYXdEYXRhPzogYm9vbGVhbiwgb25EaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd24/OiBGdW5jdGlvbiwgb25HcmlkQ29udGVudFJlYWR5PzogRnVuY3Rpb24sIG9uR3JpZEluaXRpYWxpemVkPzogRnVuY3Rpb24gfSwgZGF0YVNvdXJjZVdpemFyZD86IHsgYWxsb3dDcmVhdGVOZXdKc29uQ29ubmVjdGlvbj86IGJvb2xlYW4sIGVuYWJsZUN1c3RvbVNxbD86IGJvb2xlYW4sIG9uQ3VzdG9taXplRGF0YVNvdXJjZVdpemFyZD86IEZ1bmN0aW9uLCB3aXphcmRTZXR0aW5ncz86IElEYXNoYm9hcmREYXRhU291cmNlV2l6YXJkU2V0dGluZ3MgfSwgZGVzaWduZXJUb29sYmFyPzogeyBvblByZXBhcmluZz86IEZ1bmN0aW9uIH0sIGl0ZW1CaW5kaW5nUGFuZWw/OiB7IG9uQ3VzdG9taXplRGF0YUl0ZW1Db250YWluZXJTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIGl0ZW1PcHRpb25zUGFuZWw/OiB7IG9uQ3VzdG9taXplU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBtb2JpbGVMYXlvdXQ/OiB7IG1vYmlsZUxheW91dEVuYWJsZWQ/OiBzdHJpbmcgfSwgdmlld2VyQXBpPzogeyBvbkRhc2hib2FyZFRpdGxlVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQWN0aW9uQXZhaWxhYmlsaXR5Q2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DYXB0aW9uVG9vbGJhclVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2xpY2s/OiBGdW5jdGlvbiwgb25JdGVtRHJpbGxEb3duU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUVsZW1lbnRDdXN0b21Db2xvcj86IEZ1bmN0aW9uLCBvbkl0ZW1NYXN0ZXJGaWx0ZXJTdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtU2VsZWN0aW9uQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1WaXN1YWxJbnRlcmFjdGl2aXR5PzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldENyZWF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0T3B0aW9uc1ByZXBhcmVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0ZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRpbmc/OiBGdW5jdGlvbiwgb25TZWxlY3RlZFRhYlBhZ2VDaGFuZ2VkPzogRnVuY3Rpb24gfSB9IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdleHRlbnNpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgZXh0ZW5zaW9ucyh2YWx1ZTogeyBkYXNoYm9hcmRFeHBvcnQ/OiB7IGFsbG93RXhwb3J0RGFzaGJvYXJkPzogYm9vbGVhbiwgYWxsb3dFeHBvcnREYXNoYm9hcmRJdGVtcz86IGJvb2xlYW4sIG9uRXhwb3J0RGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkV4cG9ydERpYWxvZ1Nob3duPzogRnVuY3Rpb24gfSwgZGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nPzogeyBvbkR5bmFtaWNMb29rVXBWYWx1ZXNMb2FkZWQ/OiBGdW5jdGlvbiwgb25IaWRkZW4/OiBGdW5jdGlvbiwgb25TaG93aW5nPzogRnVuY3Rpb24sIG9uU2hvd24/OiBGdW5jdGlvbiB9LCBkYXRhSW5zcGVjdG9yPzogeyBhbGxvd0luc3BlY3RBZ2dyZWdhdGVkRGF0YT86IGJvb2xlYW4sIGFsbG93SW5zcGVjdFJhd0RhdGE/OiBib29sZWFuLCBvbkRpYWxvZ0hpZGRlbj86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3dpbmc/OiBGdW5jdGlvbiwgb25EaWFsb2dTaG93bj86IEZ1bmN0aW9uLCBvbkdyaWRDb250ZW50UmVhZHk/OiBGdW5jdGlvbiwgb25HcmlkSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbiB9LCBkYXRhU291cmNlV2l6YXJkPzogeyBhbGxvd0NyZWF0ZU5ld0pzb25Db25uZWN0aW9uPzogYm9vbGVhbiwgZW5hYmxlQ3VzdG9tU3FsPzogYm9vbGVhbiwgb25DdXN0b21pemVEYXRhU291cmNlV2l6YXJkPzogRnVuY3Rpb24sIHdpemFyZFNldHRpbmdzPzogSURhc2hib2FyZERhdGFTb3VyY2VXaXphcmRTZXR0aW5ncyB9LCBkZXNpZ25lclRvb2xiYXI/OiB7IG9uUHJlcGFyaW5nPzogRnVuY3Rpb24gfSwgaXRlbUJpbmRpbmdQYW5lbD86IHsgb25DdXN0b21pemVEYXRhSXRlbUNvbnRhaW5lclNlY3Rpb25zPzogRnVuY3Rpb24gfSwgaXRlbU9wdGlvbnNQYW5lbD86IHsgb25DdXN0b21pemVTZWN0aW9ucz86IEZ1bmN0aW9uIH0sIG1vYmlsZUxheW91dD86IHsgbW9iaWxlTGF5b3V0RW5hYmxlZD86IHN0cmluZyB9LCB2aWV3ZXJBcGk/OiB7IG9uRGFzaGJvYXJkVGl0bGVUb29sYmFyVXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1BY3Rpb25BdmFpbGFiaWxpdHlDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbUNhcHRpb25Ub29sYmFyVXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1DbGljaz86IEZ1bmN0aW9uLCBvbkl0ZW1EcmlsbERvd25TdGF0ZUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtRWxlbWVudEN1c3RvbUNvbG9yPzogRnVuY3Rpb24sIG9uSXRlbU1hc3RlckZpbHRlclN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1TZWxlY3Rpb25DaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVZpc3VhbEludGVyYWN0aXZpdHk/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0Q3JlYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRPcHRpb25zUHJlcGFyZWQ/OiBGdW5jdGlvbiwgb25JdGVtV2lkZ2V0VXBkYXRlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGluZz86IEZ1bmN0aW9uLCBvblNlbGVjdGVkVGFiUGFnZUNoYW5nZWQ/OiBGdW5jdGlvbiB9IH0pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2V4dGVuc2lvbnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuaW5pdGlhbERhc2hib2FyZElkXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaW5pdGlhbERhc2hib2FyZElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaW5pdGlhbERhc2hib2FyZElkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaW5pdGlhbERhc2hib2FyZElkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2luaXRpYWxEYXNoYm9hcmRJZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5pbml0aWFsRGFzaGJvYXJkU3RhdGVdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBpbml0aWFsRGFzaGJvYXJkU3RhdGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdpbml0aWFsRGFzaGJvYXJkU3RhdGUnKTtcclxuICAgIH1cclxuICAgIHNldCBpbml0aWFsRGFzaGJvYXJkU3RhdGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaW5pdGlhbERhc2hib2FyZFN0YXRlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmxpbWl0VmlzaWJsZURhdGFNb2RlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbGltaXRWaXNpYmxlRGF0YU1vZGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdsaW1pdFZpc2libGVEYXRhTW9kZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGxpbWl0VmlzaWJsZURhdGFNb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2xpbWl0VmlzaWJsZURhdGFNb2RlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLmxvYWREZWZhdWx0RGFzaGJvYXJkXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbG9hZERlZmF1bHREYXNoYm9hcmQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbG9hZERlZmF1bHREYXNoYm9hcmQnKTtcclxuICAgIH1cclxuICAgIHNldCBsb2FkRGVmYXVsdERhc2hib2FyZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbG9hZERlZmF1bHREYXNoYm9hcmQnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMucmVzaXplQnlUaW1lcl1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHJlc2l6ZUJ5VGltZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigncmVzaXplQnlUaW1lcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IHJlc2l6ZUJ5VGltZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Jlc2l6ZUJ5VGltZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMuc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dDb25maXJtYXRpb25PbkJyb3dzZXJDbG9zaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy51c2VOZXV0cmFsRmlsdGVyTW9kZV1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHVzZU5ldXRyYWxGaWx0ZXJNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdXNlTmV1dHJhbEZpbHRlck1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLndvcmtpbmdNb2RlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgd29ya2luZ01vZGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd3b3JraW5nTW9kZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHdvcmtpbmdNb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3dvcmtpbmdNb2RlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkJlZm9yZVJlbmRlcl1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkJlZm9yZVJlbmRlcjogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm9uRGFzaGJvYXJkQmVnaW5VcGRhdGVdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRCZWdpblVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm9uRGFzaGJvYXJkRW5kVXBkYXRlXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uRGFzaGJvYXJkRW5kVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRJbml0aWFsaXplZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRhc2hib2FyZEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25EYXNoYm9hcmRJbml0aWFsaXppbmddXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25EYXNoYm9hcmRJbml0aWFsaXppbmc6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkRhc2hib2FyZFN0YXRlQ2hhbmdlZF1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRhc2hib2FyZFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFtkZXNjcjpkeERhc2hib2FyZENvbnRyb2xPcHRpb25zLm9uSW5pdGlhbGl6aW5nXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6aW5nOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25JdGVtQmVnaW5VcGRhdGVdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25JdGVtQmVnaW5VcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBbZGVzY3I6ZHhEYXNoYm9hcmRDb250cm9sT3B0aW9ucy5vbkl0ZW1FbmRVcGRhdGVdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25JdGVtRW5kVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4RGFzaGJvYXJkQ29udHJvbE9wdGlvbnMub25PcHRpb25DaGFuZ2VkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uT3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGFqYXhSZW1vdGVTZXJ2aWNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBiZWZvcmVTZW5kPzogRnVuY3Rpb24sIGNvbXBsZXRlPzogRnVuY3Rpb24sIGhlYWRlcnM/OiBhbnkgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGFsbG93TWF4aW1pemVJdGVtc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBkYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGRhdGFSZXF1ZXN0T3B0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPHsgaXRlbURhdGFMb2FkaW5nTW9kZT86IHN0cmluZywgaXRlbURhdGFSZXF1ZXN0TW9kZT86IHN0cmluZyB9PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZW5jb2RlSHRtbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBlbmRwb2ludENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGV4dGVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGRhc2hib2FyZEV4cG9ydD86IHsgYWxsb3dFeHBvcnREYXNoYm9hcmQ/OiBib29sZWFuLCBhbGxvd0V4cG9ydERhc2hib2FyZEl0ZW1zPzogYm9vbGVhbiwgb25FeHBvcnREaWFsb2dIaWRkZW4/OiBGdW5jdGlvbiwgb25FeHBvcnREaWFsb2dTaG93aW5nPzogRnVuY3Rpb24sIG9uRXhwb3J0RGlhbG9nU2hvd24/OiBGdW5jdGlvbiB9LCBkYXNoYm9hcmRQYXJhbWV0ZXJEaWFsb2c/OiB7IG9uRHluYW1pY0xvb2tVcFZhbHVlc0xvYWRlZD86IEZ1bmN0aW9uLCBvbkhpZGRlbj86IEZ1bmN0aW9uLCBvblNob3dpbmc/OiBGdW5jdGlvbiwgb25TaG93bj86IEZ1bmN0aW9uIH0sIGRhdGFJbnNwZWN0b3I/OiB7IGFsbG93SW5zcGVjdEFnZ3JlZ2F0ZWREYXRhPzogYm9vbGVhbiwgYWxsb3dJbnNwZWN0UmF3RGF0YT86IGJvb2xlYW4sIG9uRGlhbG9nSGlkZGVuPzogRnVuY3Rpb24sIG9uRGlhbG9nU2hvd2luZz86IEZ1bmN0aW9uLCBvbkRpYWxvZ1Nob3duPzogRnVuY3Rpb24sIG9uR3JpZENvbnRlbnRSZWFkeT86IEZ1bmN0aW9uLCBvbkdyaWRJbml0aWFsaXplZD86IEZ1bmN0aW9uIH0sIGRhdGFTb3VyY2VXaXphcmQ/OiB7IGFsbG93Q3JlYXRlTmV3SnNvbkNvbm5lY3Rpb24/OiBib29sZWFuLCBlbmFibGVDdXN0b21TcWw/OiBib29sZWFuLCBvbkN1c3RvbWl6ZURhdGFTb3VyY2VXaXphcmQ/OiBGdW5jdGlvbiwgd2l6YXJkU2V0dGluZ3M/OiBJRGFzaGJvYXJkRGF0YVNvdXJjZVdpemFyZFNldHRpbmdzIH0sIGRlc2lnbmVyVG9vbGJhcj86IHsgb25QcmVwYXJpbmc/OiBGdW5jdGlvbiB9LCBpdGVtQmluZGluZ1BhbmVsPzogeyBvbkN1c3RvbWl6ZURhdGFJdGVtQ29udGFpbmVyU2VjdGlvbnM/OiBGdW5jdGlvbiB9LCBpdGVtT3B0aW9uc1BhbmVsPzogeyBvbkN1c3RvbWl6ZVNlY3Rpb25zPzogRnVuY3Rpb24gfSwgbW9iaWxlTGF5b3V0PzogeyBtb2JpbGVMYXlvdXRFbmFibGVkPzogc3RyaW5nIH0sIHZpZXdlckFwaT86IHsgb25EYXNoYm9hcmRUaXRsZVRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUFjdGlvbkF2YWlsYWJpbGl0eUNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtQ2FwdGlvblRvb2xiYXJVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbUNsaWNrPzogRnVuY3Rpb24sIG9uSXRlbURyaWxsRG93blN0YXRlQ2hhbmdlZD86IEZ1bmN0aW9uLCBvbkl0ZW1FbGVtZW50Q3VzdG9tQ29sb3I/OiBGdW5jdGlvbiwgb25JdGVtTWFzdGVyRmlsdGVyU3RhdGVDaGFuZ2VkPzogRnVuY3Rpb24sIG9uSXRlbVNlbGVjdGlvbkNoYW5nZWQ/OiBGdW5jdGlvbiwgb25JdGVtVmlzdWFsSW50ZXJhY3Rpdml0eT86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRDcmVhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldE9wdGlvbnNQcmVwYXJlZD86IEZ1bmN0aW9uLCBvbkl0ZW1XaWRnZXRVcGRhdGVkPzogRnVuY3Rpb24sIG9uSXRlbVdpZGdldFVwZGF0aW5nPzogRnVuY3Rpb24sIG9uU2VsZWN0ZWRUYWJQYWdlQ2hhbmdlZD86IEZ1bmN0aW9uIH0gfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRJZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGluaXRpYWxEYXNoYm9hcmRTdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGxpbWl0VmlzaWJsZURhdGFNb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbG9hZERlZmF1bHREYXNoYm9hcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcmVzaXplQnlUaW1lckNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzaG93Q29uZmlybWF0aW9uT25Ccm93c2VyQ2xvc2luZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB1c2VOZXV0cmFsRmlsdGVyTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3b3JraW5nTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgbmdab25lOiBOZ1pvbmUsIHRlbXBsYXRlSG9zdDogRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICAgICAgICAgIF93YXRjaGVySGVscGVyOiBXYXRjaGVySGVscGVyLFxyXG4gICAgICAgICAgICBvcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgICAgICB0cmFuc2ZlclN0YXRlOiBUcmFuc2ZlclN0YXRlLFxyXG4gICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBhbnkpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgbmdab25lLCB0ZW1wbGF0ZUhvc3QsIF93YXRjaGVySGVscGVyLCB0cmFuc2ZlclN0YXRlLCBwbGF0Zm9ybUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5fY3JlYXRlRXZlbnRFbWl0dGVycyhbXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnYmVmb3JlUmVuZGVyJywgZW1pdDogJ29uQmVmb3JlUmVuZGVyJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEJlZ2luVXBkYXRlJywgZW1pdDogJ29uRGFzaGJvYXJkQmVnaW5VcGRhdGUnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkRW5kVXBkYXRlJywgZW1pdDogJ29uRGFzaGJvYXJkRW5kVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZEluaXRpYWxpemVkJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6ZWQnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnZGFzaGJvYXJkSW5pdGlhbGl6aW5nJywgZW1pdDogJ29uRGFzaGJvYXJkSW5pdGlhbGl6aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2Rhc2hib2FyZFN0YXRlQ2hhbmdlZCcsIGVtaXQ6ICdvbkRhc2hib2FyZFN0YXRlQ2hhbmdlZCcgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXppbmcnLCBlbWl0OiAnb25Jbml0aWFsaXppbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaXRlbUJlZ2luVXBkYXRlJywgZW1pdDogJ29uSXRlbUJlZ2luVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2l0ZW1FbmRVcGRhdGUnLCBlbWl0OiAnb25JdGVtRW5kVXBkYXRlJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ29wdGlvbkNoYW5nZWQnLCBlbWl0OiAnb25PcHRpb25DaGFuZ2VkJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdhamF4UmVtb3RlU2VydmljZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnYWxsb3dNYXhpbWl6ZUl0ZW1zQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdkYXNoYm9hcmRJZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGF0YVJlcXVlc3RPcHRpb25zQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlbmNvZGVIdG1sQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdlbmRwb2ludENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZXh0ZW5zaW9uc0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaW5pdGlhbERhc2hib2FyZElkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdpbml0aWFsRGFzaGJvYXJkU3RhdGVDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2xpbWl0VmlzaWJsZURhdGFNb2RlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdsb2FkRGVmYXVsdERhc2hib2FyZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncmVzaXplQnlUaW1lckNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hvd0NvbmZpcm1hdGlvbk9uQnJvd3NlckNsb3NpbmdDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3VzZU5ldXRyYWxGaWx0ZXJNb2RlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd3b3JraW5nTW9kZUNoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIG9wdGlvbkhvc3Quc2V0SG9zdCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZUluc3RhbmNlKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBEeERhc2hib2FyZENvbnRyb2woZWxlbWVudCwgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuX2Rlc3Ryb3lXaWRnZXQoKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgRHhvQWpheFJlbW90ZVNlcnZpY2VNb2R1bGUsXHJcbiAgICBEeG9EYXRhUmVxdWVzdE9wdGlvbnNNb2R1bGUsXHJcbiAgICBEeG9FeHRlbnNpb25zTW9kdWxlLFxyXG4gICAgRHhvRGFzaGJvYXJkRXhwb3J0TW9kdWxlLFxyXG4gICAgRHhvRGFzaGJvYXJkUGFyYW1ldGVyRGlhbG9nTW9kdWxlLFxyXG4gICAgRHhvRGF0YUluc3BlY3Rvck1vZHVsZSxcclxuICAgIER4b0RhdGFTb3VyY2VXaXphcmRNb2R1bGUsXHJcbiAgICBEeG9XaXphcmRTZXR0aW5nc01vZHVsZSxcclxuICAgIER4b0Rlc2lnbmVyVG9vbGJhck1vZHVsZSxcclxuICAgIER4b0l0ZW1CaW5kaW5nUGFuZWxNb2R1bGUsXHJcbiAgICBEeG9JdGVtT3B0aW9uc1BhbmVsTW9kdWxlLFxyXG4gICAgRHhvTW9iaWxlTGF5b3V0TW9kdWxlLFxyXG4gICAgRHhvVmlld2VyQXBpTW9kdWxlLFxyXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGUsXHJcbiAgICBCcm93c2VyVHJhbnNmZXJTdGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeERhc2hib2FyZENvbnRyb2xDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIER4RGFzaGJvYXJkQ29udHJvbENvbXBvbmVudCxcclxuICAgIER4b0FqYXhSZW1vdGVTZXJ2aWNlTW9kdWxlLFxyXG4gICAgRHhvRGF0YVJlcXVlc3RPcHRpb25zTW9kdWxlLFxyXG4gICAgRHhvRXh0ZW5zaW9uc01vZHVsZSxcclxuICAgIER4b0Rhc2hib2FyZEV4cG9ydE1vZHVsZSxcclxuICAgIER4b0Rhc2hib2FyZFBhcmFtZXRlckRpYWxvZ01vZHVsZSxcclxuICAgIER4b0RhdGFJbnNwZWN0b3JNb2R1bGUsXHJcbiAgICBEeG9EYXRhU291cmNlV2l6YXJkTW9kdWxlLFxyXG4gICAgRHhvV2l6YXJkU2V0dGluZ3NNb2R1bGUsXHJcbiAgICBEeG9EZXNpZ25lclRvb2xiYXJNb2R1bGUsXHJcbiAgICBEeG9JdGVtQmluZGluZ1BhbmVsTW9kdWxlLFxyXG4gICAgRHhvSXRlbU9wdGlvbnNQYW5lbE1vZHVsZSxcclxuICAgIER4b01vYmlsZUxheW91dE1vZHVsZSxcclxuICAgIER4b1ZpZXdlckFwaU1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeERhc2hib2FyZENvbnRyb2xNb2R1bGUgeyB9XHJcbiJdfQ==