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.
- package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.js +484 -378
- package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.js.map +1 -1
- package/bundles/devexpress-dashboard-angular-ui-nested.umd.js +952 -813
- package/bundles/devexpress-dashboard-angular-ui-nested.umd.js.map +1 -1
- package/bundles/devexpress-dashboard-angular.umd.js +5 -7
- package/bundles/devexpress-dashboard-angular.umd.js.map +1 -1
- package/devexpress-dashboard-angular.d.ts +1 -0
- package/esm2015/devexpress-dashboard-angular.js +1 -1
- package/esm2015/index.js +1 -1
- package/esm2015/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.js +1 -1
- package/esm2015/ui/dashboard-control/index.js +211 -248
- package/esm2015/ui/nested/ajax-remote-service.js +45 -49
- package/esm2015/ui/nested/base/i-dashboard-data-source-wizard-settings.js +17 -1
- package/esm2015/ui/nested/dashboard-export.js +49 -59
- package/esm2015/ui/nested/dashboard-parameter-dialog.js +47 -54
- package/esm2015/ui/nested/data-inspector.js +53 -69
- package/esm2015/ui/nested/data-request-options.js +43 -44
- package/esm2015/ui/nested/data-source-wizard.js +47 -54
- package/esm2015/ui/nested/designer-toolbar.js +41 -39
- package/esm2015/ui/nested/devexpress-dashboard-angular-ui-nested.js +1 -2
- package/esm2015/ui/nested/extensions.js +57 -79
- package/esm2015/ui/nested/index.js +1 -1
- package/esm2015/ui/nested/item-binding-panel.js +41 -39
- package/esm2015/ui/nested/item-options-panel.js +41 -39
- package/esm2015/ui/nested/mobile-layout.js +41 -39
- package/esm2015/ui/nested/viewer-api.js +67 -104
- package/esm2015/ui/nested/wizard-settings.js +45 -39
- package/fesm2015/devexpress-dashboard-angular-ui-dashboard-control.js +211 -245
- package/fesm2015/devexpress-dashboard-angular-ui-dashboard-control.js.map +1 -1
- package/fesm2015/devexpress-dashboard-angular-ui-nested.js +597 -659
- package/fesm2015/devexpress-dashboard-angular-ui-nested.js.map +1 -1
- package/fesm2015/devexpress-dashboard-angular.js.map +1 -1
- package/package.json +11 -9
- package/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.d.ts +1 -0
- package/ui/dashboard-control/index.d.ts +128 -40
- package/ui/dashboard-control/package.json +2 -5
- package/ui/nested/ajax-remote-service.d.ts +13 -4
- package/ui/nested/base/i-dashboard-data-source-wizard-settings.d.ts +11 -3
- package/ui/nested/dashboard-export.d.ts +17 -6
- package/ui/nested/dashboard-parameter-dialog.d.ts +15 -5
- package/ui/nested/data-inspector.d.ts +21 -8
- package/ui/nested/data-request-options.d.ts +11 -3
- package/ui/nested/data-source-wizard.d.ts +15 -5
- package/ui/nested/designer-toolbar.d.ts +9 -2
- package/ui/nested/devexpress-dashboard-angular-ui-nested.d.ts +1 -1
- package/ui/nested/extensions.d.ts +72 -10
- package/ui/nested/item-binding-panel.d.ts +9 -2
- package/ui/nested/item-options-panel.d.ts +9 -2
- package/ui/nested/mobile-layout.d.ts +9 -2
- package/ui/nested/package.json +2 -5
- package/ui/nested/viewer-api.d.ts +35 -15
- package/ui/nested/wizard-settings.d.ts +7 -1
- package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.min.js +0 -17
- package/bundles/devexpress-dashboard-angular-ui-dashboard-control.umd.min.js.map +0 -1
- package/bundles/devexpress-dashboard-angular-ui-nested.umd.min.js +0 -16
- package/bundles/devexpress-dashboard-angular-ui-nested.umd.min.js.map +0 -1
- package/bundles/devexpress-dashboard-angular.umd.min.js +0 -2
- package/bundles/devexpress-dashboard-angular.umd.min.js.map +0 -1
- package/devexpress-dashboard-angular.metadata.json +0 -1
- package/esm5/devexpress-dashboard-angular.js +0 -5
- package/esm5/index.js +0 -2
- package/esm5/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.js +0 -5
- package/esm5/ui/dashboard-control/index.js +0 -526
- package/esm5/ui/nested/ajax-remote-service.js +0 -107
- package/esm5/ui/nested/base/i-dashboard-data-source-wizard-settings.js +0 -42
- package/esm5/ui/nested/dashboard-export.js +0 -137
- package/esm5/ui/nested/dashboard-parameter-dialog.js +0 -122
- package/esm5/ui/nested/data-inspector.js +0 -167
- package/esm5/ui/nested/data-request-options.js +0 -92
- package/esm5/ui/nested/data-source-wizard.js +0 -122
- package/esm5/ui/nested/designer-toolbar.js +0 -77
- package/esm5/ui/nested/devexpress-dashboard-angular-ui-nested.js +0 -6
- package/esm5/ui/nested/extensions.js +0 -197
- package/esm5/ui/nested/index.js +0 -14
- package/esm5/ui/nested/item-binding-panel.js +0 -77
- package/esm5/ui/nested/item-options-panel.js +0 -77
- package/esm5/ui/nested/mobile-layout.js +0 -77
- package/esm5/ui/nested/viewer-api.js +0 -272
- package/esm5/ui/nested/wizard-settings.js +0 -68
- package/fesm5/devexpress-dashboard-angular-ui-dashboard-control.js +0 -518
- package/fesm5/devexpress-dashboard-angular-ui-dashboard-control.js.map +0 -1
- package/fesm5/devexpress-dashboard-angular-ui-nested.js +0 -1562
- package/fesm5/devexpress-dashboard-angular-ui-nested.js.map +0 -1
- package/fesm5/devexpress-dashboard-angular.js +0 -6
- package/fesm5/devexpress-dashboard-angular.js.map +0 -1
- package/ui/dashboard-control/devexpress-dashboard-angular-ui-dashboard-control.metadata.json +0 -1
- 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 {
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
215
|
-
|
|
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
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
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
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
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==
|