@rivet-health/design-system 24.2.1 → 24.3.0
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/esm2020/lib/navigation/views/state.mjs +44 -20
- package/esm2020/lib/riv.module.mjs +15 -10
- package/esm2020/lib/table/simple-table/coordinate-helper.mjs +61 -0
- package/esm2020/lib/table/simple-table/simple-table-cell.component.mjs +27 -0
- package/esm2020/lib/table/simple-table/simple-table-header-cell.component.mjs +24 -0
- package/esm2020/lib/table/simple-table/simple-table-row.component.mjs +19 -0
- package/esm2020/lib/table/simple-table/simple-table.component.mjs +60 -0
- package/esm2020/lib/table/table/state.mjs +958 -0
- package/esm2020/lib/table/table/{table.component.mjs → table/table.component.mjs} +10 -10
- package/esm2020/lib/table/{table-column-settings → table/table-column-settings}/table-column-settings-side-sheet.component.mjs +10 -10
- package/esm2020/lib/table/table/table-column-settings/table-column-settings.component.mjs +119 -0
- package/esm2020/lib/table/table/table-csv-export/table-csv-export.component.mjs +35 -0
- package/esm2020/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +28 -0
- package/esm2020/lib/table/table/table-search/table-search.component.mjs +27 -0
- package/esm2020/public-api.mjs +11 -10
- package/fesm2015/rivet-health-design-system.mjs +734 -540
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +577 -383
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/navigation/views/state.d.ts +10 -1
- package/lib/riv.module.d.ts +36 -35
- package/lib/table/simple-table/coordinate-helper.d.ts +13 -0
- package/lib/table/simple-table/simple-table-cell.component.d.ts +17 -0
- package/lib/table/simple-table/simple-table-header-cell.component.d.ts +16 -0
- package/lib/table/simple-table/simple-table-row.component.d.ts +6 -0
- package/lib/table/simple-table/simple-table.component.d.ts +11 -0
- package/lib/table/{state.d.ts → table/state.d.ts} +3 -1
- package/lib/table/table/{table.component.d.ts → table/table.component.d.ts} +1 -1
- package/lib/table/{table-column-settings → table/table-column-settings}/table-column-settings-side-sheet.component.d.ts +1 -1
- package/lib/table/{table-column-settings → table/table-column-settings}/table-column-settings.component.d.ts +1 -1
- package/lib/table/{table-csv-export → table/table-csv-export}/table-csv-export.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +10 -9
- package/esm2020/lib/table/state.mjs +0 -941
- package/esm2020/lib/table/table-column-settings/table-column-settings.component.mjs +0 -119
- package/esm2020/lib/table/table-csv-export/table-csv-export.component.mjs +0 -35
- package/esm2020/lib/table/table-header-resize-handle/table-header-resize-handle.component.mjs +0 -28
- package/esm2020/lib/table/table-search/table-search.component.mjs +0 -27
- package/esm2020/lib/visualization/simple-table/simple-table-cell.component.mjs +0 -12
- package/esm2020/lib/visualization/simple-table/simple-table-header-cell.component.mjs +0 -12
- package/esm2020/lib/visualization/simple-table/simple-table.component.mjs +0 -11
- package/lib/visualization/simple-table/simple-table-cell.component.d.ts +0 -6
- package/lib/visualization/simple-table/simple-table-header-cell.component.d.ts +0 -6
- package/lib/visualization/simple-table/simple-table.component.d.ts +0 -5
- /package/lib/table/{table-header-resize-handle → table/table-header-resize-handle}/table-header-resize-handle.component.d.ts +0 -0
- /package/lib/table/{table-search → table/table-search}/table-search.component.d.ts +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import Fuse from 'fuse.js';
|
|
2
|
-
import { defaultsDeep, sortBy } from 'lodash';
|
|
2
|
+
import { debounce, defaultsDeep, sortBy } from 'lodash';
|
|
3
3
|
import { connectable, from, map, mergeScan, ReplaySubject, startWith, Subject, } from 'rxjs';
|
|
4
4
|
export var RivViews;
|
|
5
5
|
(function (RivViews) {
|
|
6
6
|
RivViews.ViewPermissions = ['private', 'public', 'shared'];
|
|
7
7
|
RivViews.MenuContexts = ['tab', 'all-views', 'overflow'];
|
|
8
|
-
function createManager(source, duplicate, userSource, copyLink, options) {
|
|
8
|
+
function createManager({ source, save, duplicate, userSource, copyLink, options, }) {
|
|
9
9
|
const defaultState = {
|
|
10
10
|
views: [],
|
|
11
11
|
activeViewId: null,
|
|
@@ -27,7 +27,7 @@ export var RivViews;
|
|
|
27
27
|
};
|
|
28
28
|
const defaultedInitialState = defaultsDeep({}, options?.initialState, defaultState);
|
|
29
29
|
const actions = new Subject();
|
|
30
|
-
const coreState = actions.pipe(mergeScan((state, action) => from(reduce(state, action, source, duplicate, copyLink)), defaultedInitialState, 1), startWith(defaultedInitialState));
|
|
30
|
+
const coreState = actions.pipe(mergeScan((state, action) => from(reduce(state, action, source, debounce(save, 200), duplicate, copyLink)), defaultedInitialState, 1), startWith(defaultedInitialState));
|
|
31
31
|
const state = connectable(coreState.pipe(map(s => {
|
|
32
32
|
// If for some reason the active view is not currently enabled, we'll
|
|
33
33
|
// default to making the first view active instead.
|
|
@@ -186,22 +186,25 @@ export var RivViews;
|
|
|
186
186
|
}
|
|
187
187
|
function viewOrderChange(state, previousEnabledIndex, newEnabledIndex) {
|
|
188
188
|
if (previousEnabledIndex === 0 || newEnabledIndex === 0) {
|
|
189
|
-
return state; // Keep system view (index 0) in place
|
|
189
|
+
return { state, shouldSave: false }; // Keep system view (index 0) in place
|
|
190
190
|
}
|
|
191
191
|
const actualPreviousIndex = mapEnabledIndexToViewIndex(state.views, previousEnabledIndex);
|
|
192
192
|
const actualNewIndex = mapEnabledIndexToViewIndex(state.views, newEnabledIndex);
|
|
193
193
|
const item = state.views[actualPreviousIndex];
|
|
194
194
|
const withoutItem = state.views.filter((_, i) => i !== actualPreviousIndex);
|
|
195
195
|
return {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
196
|
+
state: {
|
|
197
|
+
...state,
|
|
198
|
+
views: [
|
|
199
|
+
...withoutItem.slice(0, actualNewIndex),
|
|
200
|
+
item,
|
|
201
|
+
...withoutItem.slice(actualNewIndex),
|
|
202
|
+
],
|
|
203
|
+
},
|
|
204
|
+
shouldSave: true,
|
|
202
205
|
};
|
|
203
206
|
}
|
|
204
|
-
async function reduce(state, action, source, duplicate, copyLink) {
|
|
207
|
+
async function reduce(state, action, source, save, duplicate, copyLink) {
|
|
205
208
|
switch (action.type) {
|
|
206
209
|
case 'load':
|
|
207
210
|
const views = await source();
|
|
@@ -210,11 +213,19 @@ export var RivViews;
|
|
|
210
213
|
defaultViewId: views.find(v => v.default)?.id ?? null,
|
|
211
214
|
views,
|
|
212
215
|
};
|
|
213
|
-
case 'setActiveView':
|
|
216
|
+
case 'setActiveView': {
|
|
217
|
+
const activeView = state.views.find(v => v.id === action.id);
|
|
218
|
+
const views = activeView && !activeView.enabled
|
|
219
|
+
? state.views.map(view => view.id === action.id ? { ...view, enabled: true } : view)
|
|
220
|
+
: state.views;
|
|
221
|
+
// If enabling the view changed the views, we need to save.
|
|
222
|
+
if (views !== state.views) {
|
|
223
|
+
save(views);
|
|
224
|
+
}
|
|
214
225
|
return {
|
|
215
226
|
...state,
|
|
216
227
|
activeViewId: action.id,
|
|
217
|
-
views
|
|
228
|
+
views,
|
|
218
229
|
all: {
|
|
219
230
|
...state.all,
|
|
220
231
|
search: '',
|
|
@@ -224,8 +235,12 @@ export var RivViews;
|
|
|
224
235
|
search: '',
|
|
225
236
|
},
|
|
226
237
|
};
|
|
227
|
-
|
|
228
|
-
|
|
238
|
+
}
|
|
239
|
+
case 'setEnabled': {
|
|
240
|
+
const newState = setEnabled(state, action.id, action.enabled);
|
|
241
|
+
save(newState.views);
|
|
242
|
+
return newState;
|
|
243
|
+
}
|
|
229
244
|
case 'setContainerWidth':
|
|
230
245
|
return {
|
|
231
246
|
...state,
|
|
@@ -262,14 +277,18 @@ export var RivViews;
|
|
|
262
277
|
action.view.default && view.default
|
|
263
278
|
? { ...view, default: false }
|
|
264
279
|
: view);
|
|
280
|
+
save(views);
|
|
265
281
|
return {
|
|
266
282
|
...state,
|
|
267
283
|
views: views,
|
|
268
284
|
defaultViewId: views.find(v => v.default)?.id ?? null,
|
|
269
285
|
};
|
|
270
286
|
}
|
|
271
|
-
case 'deleteView':
|
|
272
|
-
|
|
287
|
+
case 'deleteView': {
|
|
288
|
+
const newState = deleteView(state, action.view.id);
|
|
289
|
+
save(newState.views);
|
|
290
|
+
return newState;
|
|
291
|
+
}
|
|
273
292
|
case 'duplicateView': {
|
|
274
293
|
const newView = await duplicate({ ...action.view, default: false });
|
|
275
294
|
return {
|
|
@@ -286,8 +305,13 @@ export var RivViews;
|
|
|
286
305
|
case 'copyLinkToView':
|
|
287
306
|
await copyLink(action.view);
|
|
288
307
|
return state;
|
|
289
|
-
case 'viewOrderChange':
|
|
290
|
-
|
|
308
|
+
case 'viewOrderChange': {
|
|
309
|
+
const { state: newState, shouldSave } = viewOrderChange(state, action.previousEnabledIndex, action.newEnabledIndex);
|
|
310
|
+
if (shouldSave) {
|
|
311
|
+
save(newState.views);
|
|
312
|
+
}
|
|
313
|
+
return newState;
|
|
314
|
+
}
|
|
291
315
|
case 'setAllViewsToggle':
|
|
292
316
|
return {
|
|
293
317
|
...state,
|
|
@@ -346,4 +370,4 @@ export var RivViews;
|
|
|
346
370
|
}
|
|
347
371
|
RivViews.isSharedView = isSharedView;
|
|
348
372
|
})(RivViews || (RivViews = {}));
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLFdBQVcsRUFFWCxJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFFVCxhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUtkLE1BQU0sS0FBVyxRQUFRLENBc25CeEI7QUF0bkJELFdBQWlCLFFBQVE7SUFDVix3QkFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQVUsQ0FBQztJQUczRCxxQkFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQVUsQ0FBQztJQTZIdEUsU0FBZ0IsYUFBYSxDQUMzQixNQUFvQixFQUNwQixTQUEwQixFQUMxQixVQUF5QixFQUN6QixRQUF3QixFQUN4QixPQUE4QjtRQUU5QixNQUFNLFlBQVksR0FBb0I7WUFDcEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxZQUFZLEVBQUUsSUFBSTtZQUNsQixhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUUsQ0FBQztZQUNqQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLG1CQUFtQixFQUFFLElBQUk7WUFDekIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxLQUFLO2FBQ2xCO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVSxFQUFFLElBQUk7YUFDakI7WUFDRCxVQUFVO1NBQ1gsQ0FBQztRQUVGLE1BQU0scUJBQXFCLEdBQW9CLFlBQVksQ0FDekQsRUFBRSxFQUNGLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLFlBQVksQ0FDYixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDckQsTUFBTSxTQUFTLEdBQWdDLE9BQU8sQ0FBQyxJQUFJLENBQ3pELFNBQVMsQ0FDUCxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUMxRCxxQkFBcUIsRUFDckIsQ0FBQyxDQUNGLEVBQ0QsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQ2pDLENBQUM7UUFFRixNQUFNLEtBQUssR0FBaUMsV0FBVyxDQUNyRCxTQUFTLENBQUMsSUFBSSxDQUNaLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLHFFQUFxRTtZQUNyRSxtREFBbUQ7WUFDbkQsTUFBTSxVQUFVLEdBQWtCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUM1QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUNuRCxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0QsR0FBRyxJQUFJO2dCQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN4RCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsYUFBYTtnQkFDcEMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hCLENBQUMsQ0FBQyxDQUFDO1lBRUosTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxELE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUM1QyxlQUFlLEVBQ2YsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEVBQzdCLENBQUMsQ0FBQyxZQUFZLENBQ2YsQ0FBQztZQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDcEMsQ0FBQyxDQUFDLFdBQVcsQ0FDVCxlQUFlLEVBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQ2pCLE9BQU8sRUFBRSxXQUFXLENBQ3JCO2dCQUNILENBQUMsQ0FBQyxlQUFlLENBQUM7WUFFcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ25DLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxRQUFRLENBQUM7WUFFYixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUV6QyxPQUFPO2dCQUNMLEdBQUcsQ0FBQztnQkFDSixRQUFRO2dCQUNSLGNBQWM7Z0JBQ2QsWUFBWTtnQkFDWixHQUFHLEVBQUU7b0JBQ0gsR0FBRyxDQUFDLENBQUMsR0FBRztvQkFDUixXQUFXLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXO29CQUNuRCxZQUFZLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDO29CQUM1RCx3QkFBd0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO29CQUM1RCxVQUFVLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVO29CQUNqRCxXQUFXLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDO29CQUMxRCx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO29CQUMxRCxVQUFVLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVO29CQUNqRCxXQUFXLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDO29CQUMxRCx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO2lCQUMzRDthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxFQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNyQyxpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQ0YsQ0FBQztRQUNGLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQiw2QkFBNkI7UUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQWxIZSxzQkFBYSxnQkFrSDVCLENBQUE7SUFPRCxTQUFTLGVBQWUsQ0FDdEIsS0FBdUI7UUFFdkIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLDBCQUEwQixDQUNqQyxLQUFVLEVBQ1YsWUFBb0I7UUFFcEIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRXJDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxPQUFPLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVMsMEJBQTBCLENBQ2pDLEtBQXNCO1FBRXRCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQscUNBQXFDO1FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLHFEQUFxRDtRQUNyRCxNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUVqRCw4RUFBOEU7UUFDOUUsd0ZBQXdGO1FBQ3hGLElBQUksa0JBQWtCLElBQUksWUFBWSxDQUFDLE1BQU07WUFBRSxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUM7O1lBQ3JFLE9BQU8sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUMsK0JBQStCO0lBQ3JFLENBQUM7SUFFRCxTQUFTLHVCQUF1QixDQUM5QixTQUEyQixFQUMzQixpQkFBeUIsRUFDekIsWUFBNkM7UUFFN0MsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUU3RCxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQzdDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQ2pDLENBQUM7UUFFRixJQUFJLENBQUMsbUJBQW1CLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUNqRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsQ0FBQztZQUNwRSxJQUFJLFVBQVUsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNyRDtTQUNGO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQ3hCLEtBQXVCLEVBQ3ZCLFVBQTBCO1FBRTFCLE9BQU8sTUFBTSxDQUNYLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxFQUNwRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsV0FBVyxDQUNsQixLQUF1QixFQUN2QixLQUFhLEVBQ2IsT0FBeUI7UUFFekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLFNBQVMsRUFBRSxHQUFHO1lBQ2QsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQWlDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEUsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxHQUFHLE1BQU0sQ0FBQyxJQUFJO1lBQ2QscUJBQXFCLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEVBQUUsT0FBTztvQkFDL0QsRUFBRSxDQUFDO2FBQ047U0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxTQUFTLHFCQUFxQixDQUM1QixLQUFzQjtRQUV0QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxZQUFZLENBQ3ZDLENBQUM7UUFFRixJQUFJLHNCQUFzQixLQUFLLENBQUMsQ0FBQztZQUFFLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxPQUFPLENBQ0wsWUFBWSxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsWUFBWSxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLFVBQVUsQ0FDakIsS0FBc0IsRUFDdEIsRUFBVztRQUVYLE1BQU0sWUFBWSxHQUNoQixLQUFLLENBQUMsWUFBWSxLQUFLLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUs7WUFDTCxZQUFZO1lBQ1osbUJBQW1CLEVBQUUsSUFBSTtTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsVUFBVSxDQUNqQixLQUFzQixFQUN0QixFQUFXLEVBQ1gsT0FBZ0I7UUFFaEIsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM1QixJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3QztZQUNELFlBQVksRUFDVixDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLEVBQUU7Z0JBQ25DLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWTtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQ3hCLEtBQVUsRUFDVixjQUFpQixFQUNqQixPQUFVO1FBRVYsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0wsT0FBTztnQkFDTCxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU87Z0JBQ1AsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7YUFDaEMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQXNCLEVBQ3RCLFVBQTBCO1FBRTFCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQ2xCLE9BQU8sTUFBTSxVQUFVLG9CQUFvQixLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDOztZQUM1RCxPQUFPLE1BQU0sVUFBVSxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsZUFBZSxDQUN0QixLQUFzQixFQUN0QixvQkFBNEIsRUFDNUIsZUFBdUI7UUFFdkIsSUFBSSxvQkFBb0IsS0FBSyxDQUFDLElBQUksZUFBZSxLQUFLLENBQUMsRUFBRTtZQUN2RCxPQUFPLEtBQUssQ0FBQyxDQUFDLHNDQUFzQztTQUNyRDtRQUVELE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQ3BELEtBQUssQ0FBQyxLQUFLLEVBQ1gsb0JBQW9CLENBQ3JCLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRywwQkFBMEIsQ0FDL0MsS0FBSyxDQUFDLEtBQUssRUFDWCxlQUFlLENBQ2hCLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssbUJBQW1CLENBQUMsQ0FBQztRQUU1RSxPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsS0FBSyxFQUFFO2dCQUNMLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDO2dCQUN2QyxJQUFJO2dCQUNKLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7YUFDckM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssVUFBVSxNQUFNLENBQ25CLEtBQXNCLEVBQ3RCLE1BQW9CLEVBQ3BCLE1BQW9CLEVBQ3BCLFNBQTBCLEVBQzFCLFFBQXdCO1FBRXhCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLE1BQU07Z0JBQ1QsTUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUk7b0JBQ3JELEtBQUs7aUJBQ04sQ0FBQztZQUVKLEtBQUssZUFBZTtnQkFDbEIsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUN2QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxRDtvQkFDRCxHQUFHLEVBQUU7d0JBQ0gsR0FBRyxLQUFLLENBQUMsR0FBRzt3QkFDWixNQUFNLEVBQUUsRUFBRTtxQkFDWDtvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxLQUFLLENBQUMsUUFBUTt3QkFDakIsTUFBTSxFQUFFLEVBQUU7cUJBQ1g7aUJBQ0YsQ0FBQztZQUVKLEtBQUssWUFBWTtnQkFDZixPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdEQsS0FBSyxtQkFBbUI7Z0JBQ3RCLE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLGNBQWMsRUFBRSxNQUFNLENBQUMsS0FBSztpQkFDN0IsQ0FBQztZQUVKLEtBQUssdUJBQXVCO2dCQUMxQixPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixRQUFRLEVBQUU7d0JBQ1IsR0FBRyxLQUFLLENBQUMsUUFBUTt3QkFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3FCQUN4QjtpQkFDRixDQUFDO1lBRUosS0FBSyx3QkFBd0I7Z0JBQzNCLE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLFFBQVEsRUFBRTt3QkFDUixHQUFHLEtBQUssQ0FBQyxRQUFRO3dCQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUs7cUJBQ3JCO2lCQUNGLENBQUM7WUFFSixLQUFLLHdCQUF3QjtnQkFDM0IsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsR0FBRyxFQUFFO3dCQUNILEdBQUcsS0FBSyxDQUFDLEdBQUc7d0JBQ1osTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLO3FCQUNyQjtpQkFDRixDQUFDO1lBRUosS0FBSyxZQUFZLENBQUMsQ0FBQztnQkFDakIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDYixDQUFDLENBQUMsd0VBQXdFO3dCQUMxRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTzs0QkFDbkMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTs0QkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLEtBQUssRUFBRSxLQUFLO29CQUNaLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJO2lCQUN0RCxDQUFDO2FBQ0g7WUFFRCxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFM0MsS0FBSyxlQUFlLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3BFLE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO29CQUMzRCxrQkFBa0IsRUFBRTt3QkFDbEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUNkLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7cUJBQ2hDO29CQUNELFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRTtpQkFDekIsQ0FBQzthQUNIO1lBRUQsS0FBSyxnQkFBZ0I7Z0JBQ25CLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxLQUFLLENBQUM7WUFFZixLQUFLLGlCQUFpQjtnQkFDcEIsT0FBTyxlQUFlLENBQ3BCLEtBQUssRUFDTCxNQUFNLENBQUMsb0JBQW9CLEVBQzNCLE1BQU0sQ0FBQyxlQUFlLENBQ3ZCLENBQUM7WUFFSixLQUFLLG1CQUFtQjtnQkFDdEIsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsR0FBRyxFQUFFO3dCQUNILEdBQUcsS0FBSyxDQUFDLEdBQUc7d0JBQ1osV0FBVyxFQUNULE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUzs0QkFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJOzRCQUNiLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVc7d0JBQzNCLFVBQVUsRUFDUixNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVE7NEJBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTs0QkFDYixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVO3dCQUMxQixVQUFVLEVBQ1IsTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFROzRCQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7NEJBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVTtxQkFDM0I7aUJBQ0YsQ0FBQztZQUVKLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixrQkFBa0IsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDbkMsQ0FBQztZQUVKLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixtQkFBbUIsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDcEMsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGVBQWU7SUFDZixlQUFlO0lBQ2YsZUFBZTtJQUVmLFNBQWdCLGtCQUFrQixDQUFDLFVBQTBCO1FBQzNELFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQVRlLDJCQUFrQixxQkFTakMsQ0FBQTtJQUVELFNBQWdCLHdCQUF3QixDQUFDLFVBQTBCO1FBQ2pFLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLHFCQUFxQixDQUFDO1lBQy9CLEtBQUssUUFBUTtnQkFDWCxPQUFPLG1DQUFtQyxDQUFDO1lBQzdDLEtBQUssUUFBUTtnQkFDWCxPQUFPLHFCQUFxQixDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQVRlLGlDQUF3QiwyQkFTdkMsQ0FBQTtJQUVELFNBQWdCLFlBQVksQ0FDMUIsSUFBcUI7UUFFckIsT0FBTyxJQUFJLEVBQUUsVUFBVSxLQUFLLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBSmUscUJBQVksZUFJM0IsQ0FBQTtBQUNILENBQUMsRUF0bkJnQixRQUFRLEtBQVIsUUFBUSxRQXNuQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZ1c2UsIHsgRnVzZVJlc3VsdCwgSUZ1c2VPcHRpb25zIH0gZnJvbSAnZnVzZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0c0RlZXAsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBjb25uZWN0YWJsZSxcbiAgQ29ubmVjdGFibGUsXG4gIGZyb20sXG4gIG1hcCxcbiAgbWVyZ2VTY2FuLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICd1dGlsaXR5LXR5cGVzJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uLy4uL2lucHV0L3NlbGVjdC9zdGF0ZSc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcblxuZXhwb3J0IG5hbWVzcGFjZSBSaXZWaWV3cyB7XG4gIGV4cG9ydCBjb25zdCBWaWV3UGVybWlzc2lvbnMgPSBbJ3ByaXZhdGUnLCAncHVibGljJywgJ3NoYXJlZCddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBWaWV3UGVybWlzc2lvbiA9ICh0eXBlb2YgVmlld1Blcm1pc3Npb25zKVtudW1iZXJdO1xuXG4gIGV4cG9ydCBjb25zdCBNZW51Q29udGV4dHMgPSBbJ3RhYicsICdhbGwtdmlld3MnLCAnb3ZlcmZsb3cnXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgTWVudUNvbnRleHQgPSAodHlwZW9mIE1lbnVDb250ZXh0cylbbnVtYmVyXTtcblxuICBleHBvcnQgdHlwZSBVc2VyID0gUml2U2VsZWN0LkJhc2VPcHRpb247XG5cbiAgZXhwb3J0IHR5cGUgVmlldzxVIGV4dGVuZHMgVXNlcj4gPSB7XG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlZmF1bHQ6IGJvb2xlYW47XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgfSAmIChcbiAgICB8IHtcbiAgICAgICAgcGVybWlzc2lvbjogJ3ByaXZhdGUnIHwgJ3B1YmxpYyc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHBlcm1pc3Npb246ICdzaGFyZWQnO1xuICAgICAgICBzaGFyZWRVc2VyczogVVtdO1xuICAgICAgfVxuICApO1xuXG4gIGV4cG9ydCB0eXBlIEZ1bGxWaWV3PFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSBWICYge1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBzeXN0ZW06IGJvb2xlYW47XG4gICAgdGl0bGVIaWdobGlnaHRJbmRpY2VzPzogSGlnaGxpZ2h0Q29tcG9uZW50LkhpZ2hsaWdodEluZGljZXNbXTtcbiAgfTtcblxuICAvLy8vLy8vLy8vL1xuICAvLyBTdGF0ZSAvL1xuICAvLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIENvcmVTdGF0ZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0ge1xuICAgIHZpZXdzOiBWW107XG4gICAgYWN0aXZlVmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBkZWZhdWx0Vmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIGVkaXRpbmdWaWV3Q29udGV4dDoge1xuICAgICAgaWQ6IFZbJ2lkJ107XG4gICAgICBhdXRvUmVuYW1lOiBib29sZWFuO1xuICAgICAgbWVudUNvbnRleHQ6IE1lbnVDb250ZXh0O1xuICAgIH0gfCBudWxsO1xuICAgIGRlbGV0aW5nVmlld0NvbnRleHQ6IHsgaWQ6IFZbJ2lkJ107IG1lbnVDb250ZXh0OiBNZW51Q29udGV4dCB9IHwgbnVsbDtcbiAgICBvdmVyZmxvdzoge1xuICAgICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgICBwaWNrZXJPcGVuOiBib29sZWFuO1xuICAgIH07XG4gICAgYWxsOiB7XG4gICAgICBzZWFyY2g6IHN0cmluZztcbiAgICAgIHByaXZhdGVPcGVuOiBib29sZWFuO1xuICAgICAgc2hhcmVkT3BlbjogYm9vbGVhbjtcbiAgICAgIHB1YmxpY09wZW46IGJvb2xlYW47XG4gICAgfTtcbiAgICB1c2VyU291cmNlOiBVc2VyU291cmNlPFU+O1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIEZ1bGxTdGF0ZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0gQ29yZVN0YXRlPFUsIFY+ICYge1xuICAgIGFsbFZpZXdzOiBGdWxsVmlldzxVLCBWPltdO1xuICAgIGRpc3BsYXllZFZpZXdzOiBGdWxsVmlldzxVLCBWPltdO1xuICAgIGVuYWJsZWRWaWV3czogRnVsbFZpZXc8VSwgVj5bXTtcbiAgICBhbGw6IHtcbiAgICAgIHByaXZhdGVWaWV3czogRnVsbFZpZXc8VSwgVj5bXTtcbiAgICAgIHByaXZhdGVFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgICAgc2hhcmVkVmlld3M6IEZ1bGxWaWV3PFUsIFY+W107XG4gICAgICBzaGFyZWRFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgICAgcHVibGljVmlld3M6IEZ1bGxWaWV3PFUsIFY+W107XG4gICAgICBwdWJsaWNFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vL1xuICAvLyBBY3Rpb25zIC8vXG4gIC8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBBY3Rpb248VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9XG4gICAgfCB7IHR5cGU6ICdsb2FkJyB9XG4gICAgfCB7IHR5cGU6ICdzZXRBY3RpdmVWaWV3JzsgaWQ6IFZbJ2lkJ10gfVxuICAgIHwgeyB0eXBlOiAnc2V0RW5hYmxlZCc7IGlkOiBWWydpZCddOyBlbmFibGVkOiBib29sZWFuIH1cbiAgICB8IHsgdHlwZTogJ3NldENvbnRhaW5lcldpZHRoJzsgd2lkdGg6IG51bWJlciB9XG4gICAgfCB7IHR5cGU6ICdzZXRPdmVyZmxvd1BpY2tlck9wZW4nOyBvcGVuOiBib29sZWFuIH1cbiAgICB8IHsgdHlwZTogJ3NldE92ZXJmbG93U2VhcmNoUXVlcnknOyBxdWVyeTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogJ3NldEFsbFZpZXdzU2VhcmNoUXVlcnknOyBxdWVyeTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogJ3VwZGF0ZVZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ2RlbGV0ZVZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ2R1cGxpY2F0ZVZpZXcnOyB2aWV3OiBWOyBtZW51Q29udGV4dDogTWVudUNvbnRleHQgfVxuICAgIHwgeyB0eXBlOiAnY29weUxpbmtUb1ZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ3NldEVkaXRpbmdWaWV3JzsgY29udGV4dDogQ29yZVN0YXRlPFUsIFY+WydlZGl0aW5nVmlld0NvbnRleHQnXSB9XG4gICAgfCB7XG4gICAgICAgIHR5cGU6ICdzZXREZWxldGluZ1ZpZXcnO1xuICAgICAgICBjb250ZXh0OiBDb3JlU3RhdGU8VSwgVj5bJ2RlbGV0aW5nVmlld0NvbnRleHQnXTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgdHlwZTogJ3ZpZXdPcmRlckNoYW5nZSc7XG4gICAgICAgIHByZXZpb3VzRW5hYmxlZEluZGV4OiBudW1iZXI7XG4gICAgICAgIG5ld0VuYWJsZWRJbmRleDogbnVtYmVyO1xuICAgICAgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWxsVmlld3NUb2dnbGUnOyBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbjsgb3BlbjogYm9vbGVhbiB9O1xuXG4gIC8vLy8vLy8vLy8vL1xuICAvLyBTb3VyY2UgLy9cbiAgLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgU291cmNlPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSAoKSA9PlxuICAgIHwgVltdXG4gICAgfCBQcm9taXNlPFZbXT47XG4gIGV4cG9ydCB0eXBlIER1cGxpY2F0ZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0gKFxuICAgIHZpZXdUb0R1cGxpY2F0ZTogVixcbiAgKSA9PiBWIHwgUHJvbWlzZTxWPjtcbiAgZXhwb3J0IHR5cGUgVXNlclNvdXJjZTxVIGV4dGVuZHMgVXNlcj4gPSAoKSA9PiBVW10gfCBQcm9taXNlPFVbXT47XG4gIGV4cG9ydCB0eXBlIENvcHlMaW5rPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSAoXG4gICAgdmlldzogVixcbiAgKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvLy8vLy8vLy8vLy8vXG4gIC8vIE1hbmFnZXIgLy9cbiAgLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIE1hbmFnZXI8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9IHtcbiAgICBhY3Rpb25zOiBTdWJqZWN0PEFjdGlvbjxVLCBWPj47XG4gICAgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxVLCBWPj47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgTWFuYWdlck9wdGlvbnM8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9IHtcbiAgICBpbml0aWFsU3RhdGU/OiBEZWVwUGFydGlhbDxDb3JlU3RhdGU8VSwgVj4+O1xuICAgIGZ1c2VPcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+O1xuICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYW5hZ2VyPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgc291cmNlOiBTb3VyY2U8VSwgVj4sXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8VSwgVj4sXG4gICAgdXNlclNvdXJjZTogVXNlclNvdXJjZTxVPixcbiAgICBjb3B5TGluazogQ29weUxpbms8VSwgVj4sXG4gICAgb3B0aW9ucz86IE1hbmFnZXJPcHRpb25zPFUsIFY+LFxuICApOiBNYW5hZ2VyPFUsIFY+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhdGU6IENvcmVTdGF0ZTxVLCBWPiA9IHtcbiAgICAgIHZpZXdzOiBbXSxcbiAgICAgIGFjdGl2ZVZpZXdJZDogbnVsbCxcbiAgICAgIGRlZmF1bHRWaWV3SWQ6IG51bGwsXG4gICAgICBjb250YWluZXJXaWR0aDogMCxcbiAgICAgIGVkaXRpbmdWaWV3Q29udGV4dDogbnVsbCxcbiAgICAgIGRlbGV0aW5nVmlld0NvbnRleHQ6IG51bGwsXG4gICAgICBvdmVyZmxvdzoge1xuICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICBwaWNrZXJPcGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhbGw6IHtcbiAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgcHJpdmF0ZU9wZW46IHRydWUsXG4gICAgICAgIHNoYXJlZE9wZW46IHRydWUsXG4gICAgICAgIHB1YmxpY09wZW46IHRydWUsXG4gICAgICB9LFxuICAgICAgdXNlclNvdXJjZSxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdGVkSW5pdGlhbFN0YXRlOiBDb3JlU3RhdGU8VSwgVj4gPSBkZWZhdWx0c0RlZXAoXG4gICAgICB7fSxcbiAgICAgIG9wdGlvbnM/LmluaXRpYWxTdGF0ZSxcbiAgICAgIGRlZmF1bHRTdGF0ZSxcbiAgICApO1xuXG4gICAgY29uc3QgYWN0aW9uczogU3ViamVjdDxBY3Rpb248VSwgVj4+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBjb25zdCBjb3JlU3RhdGU6IE9ic2VydmFibGU8Q29yZVN0YXRlPFUsIFY+PiA9IGFjdGlvbnMucGlwZShcbiAgICAgIG1lcmdlU2NhbihcbiAgICAgICAgKHN0YXRlLCBhY3Rpb24pID0+XG4gICAgICAgICAgZnJvbShyZWR1Y2Uoc3RhdGUsIGFjdGlvbiwgc291cmNlLCBkdXBsaWNhdGUsIGNvcHlMaW5rKSksXG4gICAgICAgIGRlZmF1bHRlZEluaXRpYWxTdGF0ZSxcbiAgICAgICAgMSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoZGVmYXVsdGVkSW5pdGlhbFN0YXRlKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxVLCBWPj4gPSBjb25uZWN0YWJsZShcbiAgICAgIGNvcmVTdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgLy8gSWYgZm9yIHNvbWUgcmVhc29uIHRoZSBhY3RpdmUgdmlldyBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQsIHdlJ2xsXG4gICAgICAgICAgLy8gZGVmYXVsdCB0byBtYWtpbmcgdGhlIGZpcnN0IHZpZXcgYWN0aXZlIGluc3RlYWQuXG4gICAgICAgICAgY29uc3QgYWN0aXZlVmlldzogViB8IHVuZGVmaW5lZCA9IHMudmlld3MuZmluZChcbiAgICAgICAgICAgIHZpZXcgPT4gdmlldy5lbmFibGVkICYmIHZpZXcuaWQgPT09IHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3czogRnVsbFZpZXc8VSwgVj5bXSA9IHMudmlld3MubWFwKCh2aWV3LCBpKSA9PiAoe1xuICAgICAgICAgICAgLi4udmlldyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHZpZXcuZW5hYmxlZCB8fCBpID09PSAwLFxuICAgICAgICAgICAgYWN0aXZlOiBhY3RpdmVWaWV3ID8gYWN0aXZlVmlldy5pZCA9PT0gdmlldy5pZCA6IGkgPT09IDAsXG4gICAgICAgICAgICBkZWZhdWx0OiB2aWV3LmlkID09PSBzLmRlZmF1bHRWaWV3SWQsXG4gICAgICAgICAgICBzeXN0ZW06IGkgPT09IDAsXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY29uc3QgYWxsRW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKGFsbFZpZXdzKTtcblxuICAgICAgICAgIGNvbnN0IGRpc3BsYXllZFZpZXdzID0gY2FsY3VsYXRlRGlzcGxheWVkVmlld3MoXG4gICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleChzKSxcbiAgICAgICAgICAgIHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkVmlld3MgPSBzLm92ZXJmbG93LnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhcbiAgICAgICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICAgICAgcy5vdmVyZmxvdy5zZWFyY2gsXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uZnVzZU9wdGlvbnMsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogYWxsRW5hYmxlZFZpZXdzO1xuXG4gICAgICAgICAgY29uc3QgYWxsVmlld3NGaWx0ZXJlZCA9IHMuYWxsLnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhhbGxWaWV3cywgcy5hbGwuc2VhcmNoLCBvcHRpb25zPy5mdXNlT3B0aW9ucylcbiAgICAgICAgICAgIDogYWxsVmlld3M7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hpbmdBbGxWaWV3cyA9ICEhcy5hbGwuc2VhcmNoO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnMsXG4gICAgICAgICAgICBhbGxWaWV3cyxcbiAgICAgICAgICAgIGRpc3BsYXllZFZpZXdzLFxuICAgICAgICAgICAgZW5hYmxlZFZpZXdzLFxuICAgICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAgIC4uLnMuYWxsLFxuICAgICAgICAgICAgICBwcml2YXRlT3Blbjogc2VhcmNoaW5nQWxsVmlld3MgfHwgcy5hbGwucHJpdmF0ZU9wZW4sXG4gICAgICAgICAgICAgIHByaXZhdGVWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgICAgcHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAncHJpdmF0ZScpLFxuICAgICAgICAgICAgICBzaGFyZWRPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5zaGFyZWRPcGVuLFxuICAgICAgICAgICAgICBzaGFyZWRWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBzaGFyZWRFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBwdWJsaWNPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgICAgICBwdWJsaWNWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3B1YmxpYycpLFxuICAgICAgICAgICAgICBwdWJsaWNFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3B1YmxpYycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoMSksXG4gICAgICAgIHJlc2V0T25EaXNjb25uZWN0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBzdGF0ZS5jb25uZWN0KCk7XG5cbiAgICAvLyBMb2FkIHRoZSB2aWV3cyBpbW1lZGlhdGVseVxuICAgIGFjdGlvbnMubmV4dCh7IHR5cGU6ICdsb2FkJyB9KTtcblxuICAgIHJldHVybiB7IGFjdGlvbnMsIHN0YXRlIH07XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFN0YXRlIHJlZHVjZXIgKHdpdGggaGVscGVycykgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGZ1bmN0aW9uIGdldEVuYWJsZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KHZpZXdzOiBWW10pOiBWW107XG4gIGZ1bmN0aW9uIGdldEVuYWJsZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxVLCBWPltdLFxuICApOiBGdWxsVmlldzxVLCBWPltdIHtcbiAgICByZXR1cm4gdmlld3MuZmlsdGVyKCh2LCBpKSA9PiB2LmVuYWJsZWQgfHwgaSA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNsYXRlcyBhbiBpbmRleCBpbiB0aGUgZW5hYmxlZCB2aWV3cyBsaXN0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4XG4gICAqIGluIHRoZSBmdWxsIHZpZXdzIGxpc3QuIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIFVJIGluZGljZXMgKHdoaWNoIG9ubHlcbiAgICogc2hvdyBlbmFibGVkIHZpZXdzKSB0byBzdGF0ZS52aWV3cyBpbmRpY2VzICh3aGljaCBpbmNsdWRlcyBhbGwgdmlld3MpLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXg8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICB2aWV3czogVltdLFxuICAgIGVuYWJsZWRJbmRleDogbnVtYmVyLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyh2aWV3cyk7XG5cbiAgICBjb25zdCB0YXJnZXRWaWV3ID0gZW5hYmxlZFZpZXdzW2VuYWJsZWRJbmRleF07XG4gICAgaWYgKCF0YXJnZXRWaWV3KSByZXR1cm4gZW5hYmxlZEluZGV4O1xuXG4gICAgY29uc3Qgdmlld0luZGV4ID0gdmlld3MuZmluZEluZGV4KHZpZXcgPT4gdmlldy5pZCA9PT0gdGFyZ2V0Vmlldy5pZCk7XG4gICAgcmV0dXJuIHZpZXdJbmRleCA9PT0gLTEgPyBlbmFibGVkSW5kZXggOiB2aWV3SW5kZXg7XG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleDxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8VSwgVj4sXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHN0YXRlLnZpZXdzKTtcblxuICAgIC8vIFRhYnMgaGF2ZSBhIG1pbmltdW0gd2lkdGggb2YgOTJweC5cbiAgICBjb25zdCBwb3NzaWJsZVNsb3RDb3VudCA9IE1hdGguZmxvb3Ioc3RhdGUuY29udGFpbmVyV2lkdGggLyA5Mik7XG5cbiAgICAvLyBUaGUgXCJhbGwgdmlld3NcIiBzaWRlYmFyIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QuXG4gICAgY29uc3QgYXZhaWxhYmxlU2xvdENvdW50ID0gcG9zc2libGVTbG90Q291bnQgLSAxO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRhYnMsIHRoZSBcIk4gbW9yZVwiIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QgYXMgd2VsbC5cbiAgICAvLyBCdXQgd2Ugd2FudCB0byBhdm9pZCB0aGUgXCIxIG1vcmVcIiBjYXNlLCBzbyB3ZSBvbmx5IHVzZSBhIHNsb3QgZm9yIFwiTiBtb3JlXCIgaWYgTiAhPSAxLlxuICAgIGlmIChhdmFpbGFibGVTbG90Q291bnQgPj0gZW5hYmxlZFZpZXdzLmxlbmd0aCkgcmV0dXJuIGVuYWJsZWRWaWV3cy5sZW5ndGg7XG4gICAgZWxzZSByZXR1cm4gYXZhaWxhYmxlU2xvdENvdW50IC0gMTsgLy8gdGhlIFwiTiBtb3JlXCIgdXNlcyB1cCBhIHNsb3QuXG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVEaXNwbGF5ZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIGZ1bGxWaWV3czogRnVsbFZpZXc8VSwgVj5bXSxcbiAgICBvdmVyZmxvd1ZpZXdJbmRleDogbnVtYmVyLFxuICAgIGFjdGl2ZVZpZXdJZDogQ29yZVN0YXRlPFUsIFY+WydhY3RpdmVWaWV3SWQnXSxcbiAgKTogRnVsbFZpZXc8VSwgVj5bXSB7XG4gICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBmdWxsVmlld3Muc2xpY2UoMCwgb3ZlcmZsb3dWaWV3SW5kZXgpO1xuXG4gICAgY29uc3QgYWN0aXZlVmlld0luRGlzcGxheSA9IGRpc3BsYXllZFZpZXdzLnNvbWUoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IGFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKCFhY3RpdmVWaWV3SW5EaXNwbGF5ICYmIGFjdGl2ZVZpZXdJZCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYWN0aXZlVmlldyA9IGZ1bGxWaWV3cy5maW5kKHZpZXcgPT4gdmlldy5pZCA9PT0gYWN0aXZlVmlld0lkKTtcbiAgICAgIGlmIChhY3RpdmVWaWV3ICYmIGRpc3BsYXllZFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIFsuLi5kaXNwbGF5ZWRWaWV3cy5zbGljZSgwLCAtMSksIGFjdGl2ZVZpZXddO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXNwbGF5ZWRWaWV3cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHZpZXdzQnlQZXJtaXNzaW9uPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgdmlld3M6IEZ1bGxWaWV3PFUsIFY+W10sXG4gICAgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24sXG4gICk6IEZ1bGxWaWV3PFUsIFY+W10ge1xuICAgIHJldHVybiBzb3J0QnkoXG4gICAgICB2aWV3cy5maWx0ZXIodmlldyA9PiB2aWV3LnBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24pLFxuICAgICAgW3YgPT4gIXYuc3lzdGVtLCAndGl0bGUnXSxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2VhcmNoVmlld3M8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICB2aWV3czogRnVsbFZpZXc8VSwgVj5bXSxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBJRnVzZU9wdGlvbnM8Vj4sXG4gICk6IEZ1bGxWaWV3PFUsIFY+W10ge1xuICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZSh2aWV3cywge1xuICAgICAgdGhyZXNob2xkOiAwLjIsXG4gICAgICBrZXlzOiBbJ3RpdGxlJ10sXG4gICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtYXRjaGVkT3B0aW9uczogRnVzZVJlc3VsdDxGdWxsVmlldzxVLCBWPj5bXSA9IGZ1c2Uuc2VhcmNoKHF1ZXJ5KTtcblxuICAgIHJldHVybiBtYXRjaGVkT3B0aW9ucy5tYXAocmVzdWx0ID0+ICh7XG4gICAgICAuLi5yZXN1bHQuaXRlbSxcbiAgICAgIHRpdGxlSGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAuLi4ocmVzdWx0Lm1hdGNoZXM/LmZpbmQobWF0Y2ggPT4gbWF0Y2gua2V5ID09PSAndGl0bGUnKT8uaW5kaWNlcyA/P1xuICAgICAgICAgIFtdKSxcbiAgICAgIF0sXG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3PFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxVLCBWPixcbiAgKTogVlsnaWQnXSB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHN0YXRlLnZpZXdzKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlVmlld0luZGV4ID0gZW5hYmxlZFZpZXdzLmZpbmRJbmRleChcbiAgICAgIHZpZXcgPT4gdmlldy5pZCA9PT0gc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgICk7XG5cbiAgICBpZiAoY3VycmVudEFjdGl2ZVZpZXdJbmRleCA9PT0gLTEpIHJldHVybiBlbmFibGVkVmlld3NbMF0uaWQ7XG4gICAgcmV0dXJuIChcbiAgICAgIGVuYWJsZWRWaWV3c1tjdXJyZW50QWN0aXZlVmlld0luZGV4ICsgMV0/LmlkID8/XG4gICAgICBlbmFibGVkVmlld3NbY3VycmVudEFjdGl2ZVZpZXdJbmRleCAtIDFdPy5pZCA/P1xuICAgICAgZW5hYmxlZFZpZXdzWzBdLmlkXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlbGV0ZVZpZXc8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIGlkOiBWWydpZCddLFxuICApOiBDb3JlU3RhdGU8VSwgVj4ge1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9XG4gICAgICBzdGF0ZS5hY3RpdmVWaWV3SWQgPT09IGlkXG4gICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZDtcbiAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3cyxcbiAgICAgIGFjdGl2ZVZpZXdJZCxcbiAgICAgIGRlbGV0aW5nVmlld0NvbnRleHQ6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldEVuYWJsZWQ8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIGlkOiBWWydpZCddLFxuICAgIGVuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IENvcmVTdGF0ZTxVLCBWPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgIHZpZXcuaWQgPT09IGlkID8geyAuLi52aWV3LCBlbmFibGVkIH0gOiB2aWV3LFxuICAgICAgKSxcbiAgICAgIGFjdGl2ZVZpZXdJZDpcbiAgICAgICAgIWVuYWJsZWQgJiYgc3RhdGUuYWN0aXZlVmlld0lkID09PSBpZFxuICAgICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICAgIDogc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3aXRoRHVwbGljYXRlVmlldzxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgZHVwbGljYXRlZFZpZXc6IFYsXG4gICAgbmV3VmlldzogVixcbiAgKTogVltdIHtcbiAgICBjb25zdCBzb3VyY2VJbmRleCA9IHZpZXdzLmZpbmRJbmRleCh2aWV3ID0+IHZpZXcuaWQgPT09IGR1cGxpY2F0ZWRWaWV3LmlkKTtcbiAgICBpZiAoc291cmNlSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gW25ld1ZpZXcsIC4uLnZpZXdzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4udmlld3Muc2xpY2UoMCwgc291cmNlSW5kZXggKyAxKSxcbiAgICAgICAgbmV3VmlldyxcbiAgICAgICAgLi4udmlld3Muc2xpY2Uoc291cmNlSW5kZXggKyAxKSxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW1wdHlTdGF0ZU1lc3NhZ2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChzdGF0ZS5hbGwuc2VhcmNoKVxuICAgICAgcmV0dXJuIGBObyAke3Blcm1pc3Npb259IHZpZXdzIG1hdGNoaW5nIFwiJHtzdGF0ZS5hbGwuc2VhcmNofVwiYDtcbiAgICBlbHNlIHJldHVybiBgTm8gJHtwZXJtaXNzaW9ufSB2aWV3c2A7XG4gIH1cblxuICBmdW5jdGlvbiB2aWV3T3JkZXJDaGFuZ2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIHByZXZpb3VzRW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICAgbmV3RW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICk6IENvcmVTdGF0ZTxVLCBWPiB7XG4gICAgaWYgKHByZXZpb3VzRW5hYmxlZEluZGV4ID09PSAwIHx8IG5ld0VuYWJsZWRJbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHN0YXRlOyAvLyBLZWVwIHN5c3RlbSB2aWV3IChpbmRleCAwKSBpbiBwbGFjZVxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFByZXZpb3VzSW5kZXggPSBtYXBFbmFibGVkSW5kZXhUb1ZpZXdJbmRleChcbiAgICAgIHN0YXRlLnZpZXdzLFxuICAgICAgcHJldmlvdXNFbmFibGVkSW5kZXgsXG4gICAgKTtcbiAgICBjb25zdCBhY3R1YWxOZXdJbmRleCA9IG1hcEVuYWJsZWRJbmRleFRvVmlld0luZGV4KFxuICAgICAgc3RhdGUudmlld3MsXG4gICAgICBuZXdFbmFibGVkSW5kZXgsXG4gICAgKTtcblxuICAgIGNvbnN0IGl0ZW0gPSBzdGF0ZS52aWV3c1thY3R1YWxQcmV2aW91c0luZGV4XTtcbiAgICBjb25zdCB3aXRob3V0SXRlbSA9IHN0YXRlLnZpZXdzLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gYWN0dWFsUHJldmlvdXNJbmRleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3czogW1xuICAgICAgICAuLi53aXRob3V0SXRlbS5zbGljZSgwLCBhY3R1YWxOZXdJbmRleCksXG4gICAgICAgIGl0ZW0sXG4gICAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKGFjdHVhbE5ld0luZGV4KSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlZHVjZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8VSwgVj4sXG4gICAgYWN0aW9uOiBBY3Rpb248VSwgVj4sXG4gICAgc291cmNlOiBTb3VyY2U8VSwgVj4sXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8VSwgVj4sXG4gICAgY29weUxpbms6IENvcHlMaW5rPFUsIFY+LFxuICApOiBQcm9taXNlPENvcmVTdGF0ZTxVLCBWPj4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xvYWQnOlxuICAgICAgICBjb25zdCB2aWV3cyA9IGF3YWl0IHNvdXJjZSgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGRlZmF1bHRWaWV3SWQ6IHZpZXdzLmZpbmQodiA9PiB2LmRlZmF1bHQpPy5pZCA/PyBudWxsLFxuICAgICAgICAgIHZpZXdzLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRBY3RpdmVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhY3RpdmVWaWV3SWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgICB2aWV3czogc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgIHZpZXcuaWQgPT09IGFjdGlvbi5pZCA/IHsgLi4udmlldywgZW5hYmxlZDogdHJ1ZSB9IDogdmlldyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RW5hYmxlZCc6XG4gICAgICAgIHJldHVybiBzZXRFbmFibGVkKHN0YXRlLCBhY3Rpb24uaWQsIGFjdGlvbi5lbmFibGVkKTtcblxuICAgICAgY2FzZSAnc2V0Q29udGFpbmVyV2lkdGgnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBhY3Rpb24ud2lkdGgsXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldE92ZXJmbG93UGlja2VyT3Blbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgcGlja2VyT3BlbjogYWN0aW9uLm9wZW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgc2VhcmNoOiBhY3Rpb24ucXVlcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBzZWFyY2g6IGFjdGlvbi5xdWVyeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1cGRhdGVWaWV3Jzoge1xuICAgICAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgICAgdmlldy5pZCA9PT0gYWN0aW9uLnZpZXcuaWRcbiAgICAgICAgICAgID8gYWN0aW9uLnZpZXdcbiAgICAgICAgICAgIDogLy8gaWYgdGhlIGVkaXRlZCBhY3Rpb24gaXMgZGVmYXVsdCwgcmVzZXQgYW55IG90aGVyIGRlZmF1bHQgdGhhdCB3YXMgc2V0XG4gICAgICAgICAgICBhY3Rpb24udmlldy5kZWZhdWx0ICYmIHZpZXcuZGVmYXVsdFxuICAgICAgICAgICAgPyB7IC4uLnZpZXcsIGRlZmF1bHQ6IGZhbHNlIH1cbiAgICAgICAgICAgIDogdmlldyxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogdmlld3MsXG4gICAgICAgICAgZGVmYXVsdFZpZXdJZDogdmlld3MuZmluZCh2ID0+IHYuZGVmYXVsdCk/LmlkID8/IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RlbGV0ZVZpZXcnOlxuICAgICAgICByZXR1cm4gZGVsZXRlVmlldyhzdGF0ZSwgYWN0aW9uLnZpZXcuaWQpO1xuXG4gICAgICBjYXNlICdkdXBsaWNhdGVWaWV3Jzoge1xuICAgICAgICBjb25zdCBuZXdWaWV3ID0gYXdhaXQgZHVwbGljYXRlKHsgLi4uYWN0aW9uLnZpZXcsIGRlZmF1bHQ6IGZhbHNlIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHZpZXdzOiB3aXRoRHVwbGljYXRlVmlldyhzdGF0ZS52aWV3cywgYWN0aW9uLnZpZXcsIG5ld1ZpZXcpLFxuICAgICAgICAgIGVkaXRpbmdWaWV3Q29udGV4dDoge1xuICAgICAgICAgICAgaWQ6IG5ld1ZpZXcuaWQsXG4gICAgICAgICAgICBhdXRvUmVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVudUNvbnRleHQ6IGFjdGlvbi5tZW51Q29udGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFjdGl2ZVZpZXdJZDogbmV3Vmlldy5pZCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnY29weUxpbmtUb1ZpZXcnOlxuICAgICAgICBhd2FpdCBjb3B5TGluayhhY3Rpb24udmlldyk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcblxuICAgICAgY2FzZSAndmlld09yZGVyQ2hhbmdlJzpcbiAgICAgICAgcmV0dXJuIHZpZXdPcmRlckNoYW5nZShcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBhY3Rpb24ucHJldmlvdXNFbmFibGVkSW5kZXgsXG4gICAgICAgICAgYWN0aW9uLm5ld0VuYWJsZWRJbmRleCxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NUb2dnbGUnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgcHJpdmF0ZU9wZW46XG4gICAgICAgICAgICAgIGFjdGlvbi5wZXJtaXNzaW9uID09PSAncHJpdmF0ZSdcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwucHJpdmF0ZU9wZW4sXG4gICAgICAgICAgICBzaGFyZWRPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3NoYXJlZCdcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwuc2hhcmVkT3BlbixcbiAgICAgICAgICAgIHB1YmxpY09wZW46XG4gICAgICAgICAgICAgIGFjdGlvbi5wZXJtaXNzaW9uID09PSAncHVibGljJ1xuICAgICAgICAgICAgICAgID8gYWN0aW9uLm9wZW5cbiAgICAgICAgICAgICAgICA6IHN0YXRlLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldEVkaXRpbmdWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBlZGl0aW5nVmlld0NvbnRleHQ6IGFjdGlvbi5jb250ZXh0LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXREZWxldGluZ1ZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGRlbGV0aW5nVmlld0NvbnRleHQ6IGFjdGlvbi5jb250ZXh0LFxuICAgICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vL1xuICAvLyBVdGlsaXRpZXMgLy9cbiAgLy8vLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBlcm1pc3Npb25UaXRsZShwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuICdQcml2YXRlJztcbiAgICAgIGNhc2UgJ3NoYXJlZCc6XG4gICAgICAgIHJldHVybiAnU2hhcmVkJztcbiAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIHJldHVybiAnUHVibGljJztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbkRlc2NyaXB0aW9uKHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHBlcm1pc3Npb24pIHtcbiAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICByZXR1cm4gJ09ubHkgdmlzaWJsZSB0byB5b3UnO1xuICAgICAgY2FzZSAnc2hhcmVkJzpcbiAgICAgICAgcmV0dXJuICdPbmx5IHZpc2libGUgdG8gdGhvc2Ugd2l0aCBhY2Nlc3MnO1xuICAgICAgY2FzZSAncHVibGljJzpcbiAgICAgICAgcmV0dXJuICdWaXNpYmxlIHRvIGV2ZXJ5b25lJztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNTaGFyZWRWaWV3PFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgdmlldz86IEZ1bGxWaWV3PFUsIFY+LFxuICApOiB2aWV3IGlzIEZ1bGxWaWV3PFUsIFY+ICYgeyBwZXJtaXNzaW9uOiAnc2hhcmVkJzsgc2hhcmVkVXNlcnM6IFVbXSB9IHtcbiAgICByZXR1cm4gdmlldz8ucGVybWlzc2lvbiA9PT0gJ3NoYXJlZCc7XG4gIH1cbn1cbiJdfQ==
|
|
373
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hELE9BQU8sRUFDTCxXQUFXLEVBRVgsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEVBRVQsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSxNQUFNLENBQUM7QUFLZCxNQUFNLEtBQVcsUUFBUSxDQXNxQnhCO0FBdHFCRCxXQUFpQixRQUFRO0lBQ1Ysd0JBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFVLENBQUM7SUFHM0QscUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFVLENBQUM7SUF5SXRFLFNBQWdCLGFBQWEsQ0FBb0MsRUFDL0QsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixPQUFPLEdBQ2tCO1FBQ3pCLE1BQU0sWUFBWSxHQUFvQjtZQUNwQyxLQUFLLEVBQUUsRUFBRTtZQUNULFlBQVksRUFBRSxJQUFJO1lBQ2xCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLEtBQUs7YUFDbEI7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixVQUFVLEVB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LGlCQUFpQjtnQkFDcEIsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE9BQU87aUJBQ3BDLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGVBQWU7SUFFZixTQUFnQixrQkFBa0IsQ0FBQyxVQUEwQjtRQUMzRCxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFUZSwyQkFBa0IscUJBU2pDLENBQUE7SUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxVQUEwQjtRQUNqRSxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxxQkFBcUIsQ0FBQztZQUMvQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxtQ0FBbUMsQ0FBQztZQUM3QyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxxQkFBcUIsQ0FBQztTQUNoQztJQUNILENBQUM7SUFUZSxpQ0FBd0IsMkJBU3ZDLENBQUE7SUFFRCxTQUFnQixZQUFZLENBQzFCLElBQXFCO1FBRXJCLE9BQU8sSUFBSSxFQUFFLFVBQVUsS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUplLHFCQUFZLGVBSTNCLENBQUE7QUFDSCxDQUFDLEVBdHFCZ0IsUUFBUSxLQUFSLFFBQVEsUUFzcUJ4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGdXNlLCB7IEZ1c2VSZXN1bHQsIElGdXNlT3B0aW9ucyB9IGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRlZmF1bHRzRGVlcCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIGNvbm5lY3RhYmxlLFxuICBDb25uZWN0YWJsZSxcbiAgZnJvbSxcbiAgbWFwLFxuICBtZXJnZVNjYW4sXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3V0aWxpdHktdHlwZXMnO1xuaW1wb3J0IHsgUml2U2VsZWN0IH0gZnJvbSAnLi4vLi4vaW5wdXQvc2VsZWN0L3N0YXRlJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFJpdlZpZXdzIHtcbiAgZXhwb3J0IGNvbnN0IFZpZXdQZXJtaXNzaW9ucyA9IFsncHJpdmF0ZScsICdwdWJsaWMnLCAnc2hhcmVkJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFZpZXdQZXJtaXNzaW9uID0gKHR5cGVvZiBWaWV3UGVybWlzc2lvbnMpW251bWJlcl07XG5cbiAgZXhwb3J0IGNvbnN0IE1lbnVDb250ZXh0cyA9IFsndGFiJywgJ2FsbC12aWV3cycsICdvdmVyZmxvdyddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBNZW51Q29udGV4dCA9ICh0eXBlb2YgTWVudUNvbnRleHRzKVtudW1iZXJdO1xuXG4gIGV4cG9ydCB0eXBlIFVzZXIgPSBSaXZTZWxlY3QuQmFzZU9wdGlvbjtcblxuICBleHBvcnQgdHlwZSBWaWV3PFUgZXh0ZW5kcyBVc2VyPiA9IHtcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICB9ICYgKFxuICAgIHwge1xuICAgICAgICBwZXJtaXNzaW9uOiAncHJpdmF0ZScgfCAncHVibGljJztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcGVybWlzc2lvbjogJ3NoYXJlZCc7XG4gICAgICAgIHNoYXJlZFVzZXJzOiBVW107XG4gICAgICB9XG4gICk7XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFZpZXc8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9IFYgJiB7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHN5c3RlbTogYm9vbGVhbjtcbiAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM/OiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xuICB9O1xuXG4gIC8vLy8vLy8vLy8vXG4gIC8vIFN0YXRlIC8vXG4gIC8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgQ29yZVN0YXRlPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSB7XG4gICAgdmlld3M6IFZbXTtcbiAgICBhY3RpdmVWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGRlZmF1bHRWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgZWRpdGluZ1ZpZXdDb250ZXh0OiB7XG4gICAgICBpZDogVlsnaWQnXTtcbiAgICAgIGF1dG9SZW5hbWU6IGJvb2xlYW47XG4gICAgICBtZW51Q29udGV4dDogTWVudUNvbnRleHQ7XG4gICAgfSB8IG51bGw7XG4gICAgZGVsZXRpbmdWaWV3Q29udGV4dDogeyBpZDogVlsnaWQnXTsgbWVudUNvbnRleHQ6IE1lbnVDb250ZXh0IH0gfCBudWxsO1xuICAgIG92ZXJmbG93OiB7XG4gICAgICBzZWFyY2g6IHN0cmluZztcbiAgICAgIHBpY2tlck9wZW46IGJvb2xlYW47XG4gICAgfTtcbiAgICBhbGw6IHtcbiAgICAgIHNlYXJjaDogc3RyaW5nO1xuICAgICAgcHJpdmF0ZU9wZW46IGJvb2xlYW47XG4gICAgICBzaGFyZWRPcGVuOiBib29sZWFuO1xuICAgICAgcHVibGljT3BlbjogYm9vbGVhbjtcbiAgICB9O1xuICAgIHVzZXJTb3VyY2U6IFVzZXJTb3VyY2U8VT47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFN0YXRlPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSBDb3JlU3RhdGU8VSwgVj4gJiB7XG4gICAgYWxsVmlld3M6IEZ1bGxWaWV3PFUsIFY+W107XG4gICAgZGlzcGxheWVkVmlld3M6IEZ1bGxWaWV3PFUsIFY+W107XG4gICAgZW5hYmxlZFZpZXdzOiBGdWxsVmlldzxVLCBWPltdO1xuICAgIGFsbDoge1xuICAgICAgcHJpdmF0ZVZpZXdzOiBGdWxsVmlldzxVLCBWPltdO1xuICAgICAgcHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBzaGFyZWRWaWV3czogRnVsbFZpZXc8VSwgVj5bXTtcbiAgICAgIHNoYXJlZEVtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBwdWJsaWNWaWV3czogRnVsbFZpZXc8VSwgVj5bXTtcbiAgICAgIHB1YmxpY0VtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcblxuICAvLy8vLy8vLy8vLy8vXG4gIC8vIEFjdGlvbnMgLy9cbiAgLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIEFjdGlvbjxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID1cbiAgICB8IHsgdHlwZTogJ2xvYWQnIH1cbiAgICB8IHsgdHlwZTogJ3NldEFjdGl2ZVZpZXcnOyBpZDogVlsnaWQnXSB9XG4gICAgfCB7IHR5cGU6ICdzZXRFbmFibGVkJzsgaWQ6IFZbJ2lkJ107IGVuYWJsZWQ6IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0Q29udGFpbmVyV2lkdGgnOyB3aWR0aDogbnVtYmVyIH1cbiAgICB8IHsgdHlwZTogJ3NldE92ZXJmbG93UGlja2VyT3Blbic7IG9wZW46IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAndXBkYXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZGVsZXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZHVwbGljYXRlVmlldyc7IHZpZXc6IFY7IG1lbnVDb250ZXh0OiBNZW51Q29udGV4dCB9XG4gICAgfCB7IHR5cGU6ICdjb3B5TGlua1RvVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnc2V0RWRpdGluZ1ZpZXcnOyBjb250ZXh0OiBDb3JlU3RhdGU8VSwgVj5bJ2VkaXRpbmdWaWV3Q29udGV4dCddIH1cbiAgICB8IHtcbiAgICAgICAgdHlwZTogJ3NldERlbGV0aW5nVmlldyc7XG4gICAgICAgIGNvbnRleHQ6IENvcmVTdGF0ZTxVLCBWPlsnZGVsZXRpbmdWaWV3Q29udGV4dCddO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICB0eXBlOiAndmlld09yZGVyQ2hhbmdlJztcbiAgICAgICAgcHJldmlvdXNFbmFibGVkSW5kZXg6IG51bWJlcjtcbiAgICAgICAgbmV3RW5hYmxlZEluZGV4OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCB7IHR5cGU6ICdzZXRBbGxWaWV3c1RvZ2dsZSc7IHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uOyBvcGVuOiBib29sZWFuIH07XG5cbiAgLy8vLy8vLy8vLy8vXG4gIC8vIFNvdXJjZSAvL1xuICAvLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBTb3VyY2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9ICgpID0+XG4gICAgfCBWW11cbiAgICB8IFByb21pc2U8VltdPjtcbiAgZXhwb3J0IHR5cGUgU2F2ZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0gKFxuICAgIHZpZXdzOiBWW10sXG4gICkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG4gIGV4cG9ydCB0eXBlIER1cGxpY2F0ZTxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0gKFxuICAgIHZpZXdUb0R1cGxpY2F0ZTogVixcbiAgKSA9PiBWIHwgUHJvbWlzZTxWPjtcbiAgZXhwb3J0IHR5cGUgVXNlclNvdXJjZTxVIGV4dGVuZHMgVXNlcj4gPSAoKSA9PiBVW10gfCBQcm9taXNlPFVbXT47XG4gIGV4cG9ydCB0eXBlIENvcHlMaW5rPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4gPSAoXG4gICAgdmlldzogVixcbiAgKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvLy8vLy8vLy8vLy8vXG4gIC8vIE1hbmFnZXIgLy9cbiAgLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIE1hbmFnZXI8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9IHtcbiAgICBhY3Rpb25zOiBTdWJqZWN0PEFjdGlvbjxVLCBWPj47XG4gICAgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxVLCBWPj47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgTWFuYWdlck9wdGlvbnM8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PiA9IHtcbiAgICBpbml0aWFsU3RhdGU/OiBEZWVwUGFydGlhbDxDb3JlU3RhdGU8VSwgVj4+O1xuICAgIGZ1c2VPcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+O1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIENyZWF0ZU1hbmFnZXJJbnB1dDxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+ID0ge1xuICAgIHNvdXJjZTogU291cmNlPFUsIFY+O1xuICAgIHNhdmU6IFNhdmU8VSwgVj47XG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8VSwgVj47XG4gICAgdXNlclNvdXJjZTogVXNlclNvdXJjZTxVPjtcbiAgICBjb3B5TGluazogQ29weUxpbms8VSwgVj47XG4gICAgb3B0aW9ucz86IE1hbmFnZXJPcHRpb25zPFUsIFY+O1xuICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYW5hZ2VyPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oe1xuICAgIHNvdXJjZSxcbiAgICBzYXZlLFxuICAgIGR1cGxpY2F0ZSxcbiAgICB1c2VyU291cmNlLFxuICAgIGNvcHlMaW5rLFxuICAgIG9wdGlvbnMsXG4gIH06IENyZWF0ZU1hbmFnZXJJbnB1dDxVLCBWPik6IE1hbmFnZXI8VSwgVj4ge1xuICAgIGNvbnN0IGRlZmF1bHRTdGF0ZTogQ29yZVN0YXRlPFUsIFY+ID0ge1xuICAgICAgdmlld3M6IFtdLFxuICAgICAgYWN0aXZlVmlld0lkOiBudWxsLFxuICAgICAgZGVmYXVsdFZpZXdJZDogbnVsbCxcbiAgICAgIGNvbnRhaW5lcldpZHRoOiAwLFxuICAgICAgZWRpdGluZ1ZpZXdDb250ZXh0OiBudWxsLFxuICAgICAgZGVsZXRpbmdWaWV3Q29udGV4dDogbnVsbCxcbiAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgIHBpY2tlck9wZW46IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGFsbDoge1xuICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICBwcml2YXRlT3BlbjogdHJ1ZSxcbiAgICAgICAgc2hhcmVkT3BlbjogdHJ1ZSxcbiAgICAgICAgcHVibGljT3BlbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB1c2VyU291cmNlLFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0ZWRJbml0aWFsU3RhdGU6IENvcmVTdGF0ZTxVLCBWPiA9IGRlZmF1bHRzRGVlcChcbiAgICAgIHt9LFxuICAgICAgb3B0aW9ucz8uaW5pdGlhbFN0YXRlLFxuICAgICAgZGVmYXVsdFN0YXRlLFxuICAgICk7XG5cbiAgICBjb25zdCBhY3Rpb25zOiBTdWJqZWN0PEFjdGlvbjxVLCBWPj4gPSBuZXcgU3ViamVjdCgpO1xuICAgIGNvbnN0IGNvcmVTdGF0ZTogT2JzZXJ2YWJsZTxDb3JlU3RhdGU8VSwgVj4+ID0gYWN0aW9ucy5waXBlKFxuICAgICAgbWVyZ2VTY2FuKFxuICAgICAgICAoc3RhdGUsIGFjdGlvbikgPT5cbiAgICAgICAgICBmcm9tKFxuICAgICAgICAgICAgcmVkdWNlKFxuICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICAgIGRlYm91bmNlKHNhdmUsIDIwMCksXG4gICAgICAgICAgICAgIGR1cGxpY2F0ZSxcbiAgICAgICAgICAgICAgY29weUxpbmssXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICAgIGRlZmF1bHRlZEluaXRpYWxTdGF0ZSxcbiAgICAgICAgMSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoZGVmYXVsdGVkSW5pdGlhbFN0YXRlKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxVLCBWPj4gPSBjb25uZWN0YWJsZShcbiAgICAgIGNvcmVTdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgLy8gSWYgZm9yIHNvbWUgcmVhc29uIHRoZSBhY3RpdmUgdmlldyBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQsIHdlJ2xsXG4gICAgICAgICAgLy8gZGVmYXVsdCB0byBtYWtpbmcgdGhlIGZpcnN0IHZpZXcgYWN0aXZlIGluc3RlYWQuXG4gICAgICAgICAgY29uc3QgYWN0aXZlVmlldzogViB8IHVuZGVmaW5lZCA9IHMudmlld3MuZmluZChcbiAgICAgICAgICAgIHZpZXcgPT4gdmlldy5lbmFibGVkICYmIHZpZXcuaWQgPT09IHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3czogRnVsbFZpZXc8VSwgVj5bXSA9IHMudmlld3MubWFwKCh2aWV3LCBpKSA9PiAoe1xuICAgICAgICAgICAgLi4udmlldyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHZpZXcuZW5hYmxlZCB8fCBpID09PSAwLFxuICAgICAgICAgICAgYWN0aXZlOiBhY3RpdmVWaWV3ID8gYWN0aXZlVmlldy5pZCA9PT0gdmlldy5pZCA6IGkgPT09IDAsXG4gICAgICAgICAgICBkZWZhdWx0OiB2aWV3LmlkID09PSBzLmRlZmF1bHRWaWV3SWQsXG4gICAgICAgICAgICBzeXN0ZW06IGkgPT09IDAsXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY29uc3QgYWxsRW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKGFsbFZpZXdzKTtcblxuICAgICAgICAgIGNvbnN0IGRpc3BsYXllZFZpZXdzID0gY2FsY3VsYXRlRGlzcGxheWVkVmlld3MoXG4gICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleChzKSxcbiAgICAgICAgICAgIHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkVmlld3MgPSBzLm92ZXJmbG93LnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhcbiAgICAgICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICAgICAgcy5vdmVyZmxvdy5zZWFyY2gsXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uZnVzZU9wdGlvbnMsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogYWxsRW5hYmxlZFZpZXdzO1xuXG4gICAgICAgICAgY29uc3QgYWxsVmlld3NGaWx0ZXJlZCA9IHMuYWxsLnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhhbGxWaWV3cywgcy5hbGwuc2VhcmNoLCBvcHRpb25zPy5mdXNlT3B0aW9ucylcbiAgICAgICAgICAgIDogYWxsVmlld3M7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hpbmdBbGxWaWV3cyA9ICEhcy5hbGwuc2VhcmNoO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnMsXG4gICAgICAgICAgICBhbGxWaWV3cyxcbiAgICAgICAgICAgIGRpc3BsYXllZFZpZXdzLFxuICAgICAgICAgICAgZW5hYmxlZFZpZXdzLFxuICAgICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAgIC4uLnMuYWxsLFxuICAgICAgICAgICAgICBwcml2YXRlT3Blbjogc2VhcmNoaW5nQWxsVmlld3MgfHwgcy5hbGwucHJpdmF0ZU9wZW4sXG4gICAgICAgICAgICAgIHByaXZhdGVWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgICAgcHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAncHJpdmF0ZScpLFxuICAgICAgICAgICAgICBzaGFyZWRPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5zaGFyZWRPcGVuLFxuICAgICAgICAgICAgICBzaGFyZWRWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBzaGFyZWRFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBwdWJsaWNPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgICAgICBwdWJsaWNWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3B1YmxpYycpLFxuICAgICAgICAgICAgICBwdWJsaWNFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3B1YmxpYycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoMSksXG4gICAgICAgIHJlc2V0T25EaXNjb25uZWN0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBzdGF0ZS5jb25uZWN0KCk7XG5cbiAgICAvLyBMb2FkIHRoZSB2aWV3cyBpbW1lZGlhdGVseVxuICAgIGFjdGlvbnMubmV4dCh7IHR5cGU6ICdsb2FkJyB9KTtcblxuICAgIHJldHVybiB7IGFjdGlvbnMsIHN0YXRlIH07XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFN0YXRlIHJlZHVjZXIgKHdpdGggaGVscGVycykgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGZ1bmN0aW9uIGdldEVuYWJsZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KHZpZXdzOiBWW10pOiBWW107XG4gIGZ1bmN0aW9uIGdldEVuYWJsZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxVLCBWPltdLFxuICApOiBGdWxsVmlldzxVLCBWPltdIHtcbiAgICByZXR1cm4gdmlld3MuZmlsdGVyKCh2LCBpKSA9PiB2LmVuYWJsZWQgfHwgaSA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNsYXRlcyBhbiBpbmRleCBpbiB0aGUgZW5hYmxlZCB2aWV3cyBsaXN0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4XG4gICAqIGluIHRoZSBmdWxsIHZpZXdzIGxpc3QuIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIFVJIGluZGljZXMgKHdoaWNoIG9ubHlcbiAgICogc2hvdyBlbmFibGVkIHZpZXdzKSB0byBzdGF0ZS52aWV3cyBpbmRpY2VzICh3aGljaCBpbmNsdWRlcyBhbGwgdmlld3MpLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXg8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICB2aWV3czogVltdLFxuICAgIGVuYWJsZWRJbmRleDogbnVtYmVyLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyh2aWV3cyk7XG5cbiAgICBjb25zdCB0YXJnZXRWaWV3ID0gZW5hYmxlZFZpZXdzW2VuYWJsZWRJbmRleF07XG4gICAgaWYgKCF0YXJnZXRWaWV3KSByZXR1cm4gZW5hYmxlZEluZGV4O1xuXG4gICAgY29uc3Qgdmlld0luZGV4ID0gdmlld3MuZmluZEluZGV4KHZpZXcgPT4gdmlldy5pZCA9PT0gdGFyZ2V0Vmlldy5pZCk7XG4gICAgcmV0dXJuIHZpZXdJbmRleCA9PT0gLTEgPyBlbmFibGVkSW5kZXggOiB2aWV3SW5kZXg7XG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleDxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8VSwgVj4sXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHN0YXRlLnZpZXdzKTtcblxuICAgIC8vIFRhYnMgaGF2ZSBhIG1pbmltdW0gd2lkdGggb2YgOTJweC5cbiAgICBjb25zdCBwb3NzaWJsZVNsb3RDb3VudCA9IE1hdGguZmxvb3Ioc3RhdGUuY29udGFpbmVyV2lkdGggLyA5Mik7XG5cbiAgICAvLyBUaGUgXCJhbGwgdmlld3NcIiBzaWRlYmFyIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QuXG4gICAgY29uc3QgYXZhaWxhYmxlU2xvdENvdW50ID0gcG9zc2libGVTbG90Q291bnQgLSAxO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRhYnMsIHRoZSBcIk4gbW9yZVwiIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QgYXMgd2VsbC5cbiAgICAvLyBCdXQgd2Ugd2FudCB0byBhdm9pZCB0aGUgXCIxIG1vcmVcIiBjYXNlLCBzbyB3ZSBvbmx5IHVzZSBhIHNsb3QgZm9yIFwiTiBtb3JlXCIgaWYgTiAhPSAxLlxuICAgIGlmIChhdmFpbGFibGVTbG90Q291bnQgPj0gZW5hYmxlZFZpZXdzLmxlbmd0aCkgcmV0dXJuIGVuYWJsZWRWaWV3cy5sZW5ndGg7XG4gICAgZWxzZSByZXR1cm4gYXZhaWxhYmxlU2xvdENvdW50IC0gMTsgLy8gdGhlIFwiTiBtb3JlXCIgdXNlcyB1cCBhIHNsb3QuXG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVEaXNwbGF5ZWRWaWV3czxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIGZ1bGxWaWV3czogRnVsbFZpZXc8VSwgVj5bXSxcbiAgICBvdmVyZmxvd1ZpZXdJbmRleDogbnVtYmVyLFxuICAgIGFjdGl2ZVZpZXdJZDogQ29yZVN0YXRlPFUsIFY+WydhY3RpdmVWaWV3SWQnXSxcbiAgKTogRnVsbFZpZXc8VSwgVj5bXSB7XG4gICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBmdWxsVmlld3Muc2xpY2UoMCwgb3ZlcmZsb3dWaWV3SW5kZXgpO1xuXG4gICAgY29uc3QgYWN0aXZlVmlld0luRGlzcGxheSA9IGRpc3BsYXllZFZpZXdzLnNvbWUoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IGFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKCFhY3RpdmVWaWV3SW5EaXNwbGF5ICYmIGFjdGl2ZVZpZXdJZCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYWN0aXZlVmlldyA9IGZ1bGxWaWV3cy5maW5kKHZpZXcgPT4gdmlldy5pZCA9PT0gYWN0aXZlVmlld0lkKTtcbiAgICAgIGlmIChhY3RpdmVWaWV3ICYmIGRpc3BsYXllZFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIFsuLi5kaXNwbGF5ZWRWaWV3cy5zbGljZSgwLCAtMSksIGFjdGl2ZVZpZXddO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXNwbGF5ZWRWaWV3cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHZpZXdzQnlQZXJtaXNzaW9uPFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgdmlld3M6IEZ1bGxWaWV3PFUsIFY+W10sXG4gICAgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24sXG4gICk6IEZ1bGxWaWV3PFUsIFY+W10ge1xuICAgIHJldHVybiBzb3J0QnkoXG4gICAgICB2aWV3cy5maWx0ZXIodmlldyA9PiB2aWV3LnBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24pLFxuICAgICAgW3YgPT4gIXYuc3lzdGVtLCAndGl0bGUnXSxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2VhcmNoVmlld3M8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICB2aWV3czogRnVsbFZpZXc8VSwgVj5bXSxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBJRnVzZU9wdGlvbnM8Vj4sXG4gICk6IEZ1bGxWaWV3PFUsIFY+W10ge1xuICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZSh2aWV3cywge1xuICAgICAgdGhyZXNob2xkOiAwLjIsXG4gICAgICBrZXlzOiBbJ3RpdGxlJ10sXG4gICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtYXRjaGVkT3B0aW9uczogRnVzZVJlc3VsdDxGdWxsVmlldzxVLCBWPj5bXSA9IGZ1c2Uuc2VhcmNoKHF1ZXJ5KTtcblxuICAgIHJldHVybiBtYXRjaGVkT3B0aW9ucy5tYXAocmVzdWx0ID0+ICh7XG4gICAgICAuLi5yZXN1bHQuaXRlbSxcbiAgICAgIHRpdGxlSGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAuLi4ocmVzdWx0Lm1hdGNoZXM/LmZpbmQobWF0Y2ggPT4gbWF0Y2gua2V5ID09PSAndGl0bGUnKT8uaW5kaWNlcyA/P1xuICAgICAgICAgIFtdKSxcbiAgICAgIF0sXG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3PFUgZXh0ZW5kcyBVc2VyLCBWIGV4dGVuZHMgVmlldzxVPj4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxVLCBWPixcbiAgKTogVlsnaWQnXSB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHN0YXRlLnZpZXdzKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlVmlld0luZGV4ID0gZW5hYmxlZFZpZXdzLmZpbmRJbmRleChcbiAgICAgIHZpZXcgPT4gdmlldy5pZCA9PT0gc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgICk7XG5cbiAgICBpZiAoY3VycmVudEFjdGl2ZVZpZXdJbmRleCA9PT0gLTEpIHJldHVybiBlbmFibGVkVmlld3NbMF0uaWQ7XG4gICAgcmV0dXJuIChcbiAgICAgIGVuYWJsZWRWaWV3c1tjdXJyZW50QWN0aXZlVmlld0luZGV4ICsgMV0/LmlkID8/XG4gICAgICBlbmFibGVkVmlld3NbY3VycmVudEFjdGl2ZVZpZXdJbmRleCAtIDFdPy5pZCA/P1xuICAgICAgZW5hYmxlZFZpZXdzWzBdLmlkXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlbGV0ZVZpZXc8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIGlkOiBWWydpZCddLFxuICApOiBDb3JlU3RhdGU8VSwgVj4ge1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9XG4gICAgICBzdGF0ZS5hY3RpdmVWaWV3SWQgPT09IGlkXG4gICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZDtcbiAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3cyxcbiAgICAgIGFjdGl2ZVZpZXdJZCxcbiAgICAgIGRlbGV0aW5nVmlld0NvbnRleHQ6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldEVuYWJsZWQ8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIGlkOiBWWydpZCddLFxuICAgIGVuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IENvcmVTdGF0ZTxVLCBWPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgIHZpZXcuaWQgPT09IGlkID8geyAuLi52aWV3LCBlbmFibGVkIH0gOiB2aWV3LFxuICAgICAgKSxcbiAgICAgIGFjdGl2ZVZpZXdJZDpcbiAgICAgICAgIWVuYWJsZWQgJiYgc3RhdGUuYWN0aXZlVmlld0lkID09PSBpZFxuICAgICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICAgIDogc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3aXRoRHVwbGljYXRlVmlldzxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgZHVwbGljYXRlZFZpZXc6IFYsXG4gICAgbmV3VmlldzogVixcbiAgKTogVltdIHtcbiAgICBjb25zdCBzb3VyY2VJbmRleCA9IHZpZXdzLmZpbmRJbmRleCh2aWV3ID0+IHZpZXcuaWQgPT09IGR1cGxpY2F0ZWRWaWV3LmlkKTtcbiAgICBpZiAoc291cmNlSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gW25ld1ZpZXcsIC4uLnZpZXdzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4udmlld3Muc2xpY2UoMCwgc291cmNlSW5kZXggKyAxKSxcbiAgICAgICAgbmV3VmlldyxcbiAgICAgICAgLi4udmlld3Muc2xpY2Uoc291cmNlSW5kZXggKyAxKSxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW1wdHlTdGF0ZU1lc3NhZ2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChzdGF0ZS5hbGwuc2VhcmNoKVxuICAgICAgcmV0dXJuIGBObyAke3Blcm1pc3Npb259IHZpZXdzIG1hdGNoaW5nIFwiJHtzdGF0ZS5hbGwuc2VhcmNofVwiYDtcbiAgICBlbHNlIHJldHVybiBgTm8gJHtwZXJtaXNzaW9ufSB2aWV3c2A7XG4gIH1cblxuICBmdW5jdGlvbiB2aWV3T3JkZXJDaGFuZ2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIHByZXZpb3VzRW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICAgbmV3RW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICk6IHsgc3RhdGU6IENvcmVTdGF0ZTxVLCBWPjsgc2hvdWxkU2F2ZTogYm9vbGVhbiB9IHtcbiAgICBpZiAocHJldmlvdXNFbmFibGVkSW5kZXggPT09IDAgfHwgbmV3RW5hYmxlZEluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzdGF0ZSwgc2hvdWxkU2F2ZTogZmFsc2UgfTsgLy8gS2VlcCBzeXN0ZW0gdmlldyAoaW5kZXggMCkgaW4gcGxhY2VcbiAgICB9XG5cbiAgICBjb25zdCBhY3R1YWxQcmV2aW91c0luZGV4ID0gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXgoXG4gICAgICBzdGF0ZS52aWV3cyxcbiAgICAgIHByZXZpb3VzRW5hYmxlZEluZGV4LFxuICAgICk7XG4gICAgY29uc3QgYWN0dWFsTmV3SW5kZXggPSBtYXBFbmFibGVkSW5kZXhUb1ZpZXdJbmRleChcbiAgICAgIHN0YXRlLnZpZXdzLFxuICAgICAgbmV3RW5hYmxlZEluZGV4LFxuICAgICk7XG5cbiAgICBjb25zdCBpdGVtID0gc3RhdGUudmlld3NbYWN0dWFsUHJldmlvdXNJbmRleF07XG4gICAgY29uc3Qgd2l0aG91dEl0ZW0gPSBzdGF0ZS52aWV3cy5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGFjdHVhbFByZXZpb3VzSW5kZXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB2aWV3czogW1xuICAgICAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKDAsIGFjdHVhbE5ld0luZGV4KSxcbiAgICAgICAgICBpdGVtLFxuICAgICAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKGFjdHVhbE5ld0luZGV4KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBzaG91bGRTYXZlOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiByZWR1Y2U8VSBleHRlbmRzIFVzZXIsIFYgZXh0ZW5kcyBWaWV3PFU+PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFUsIFY+LFxuICAgIGFjdGlvbjogQWN0aW9uPFUsIFY+LFxuICAgIHNvdXJjZTogU291cmNlPFUsIFY+LFxuICAgIHNhdmU6IFNhdmU8VSwgVj4sXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8VSwgVj4sXG4gICAgY29weUxpbms6IENvcHlMaW5rPFUsIFY+LFxuICApOiBQcm9taXNlPENvcmVTdGF0ZTxVLCBWPj4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xvYWQnOlxuICAgICAgICBjb25zdCB2aWV3cyA9IGF3YWl0IHNvdXJjZSgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGRlZmF1bHRWaWV3SWQ6IHZpZXdzLmZpbmQodiA9PiB2LmRlZmF1bHQpPy5pZCA/PyBudWxsLFxuICAgICAgICAgIHZpZXdzLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRBY3RpdmVWaWV3Jzoge1xuICAgICAgICBjb25zdCBhY3RpdmVWaWV3ID0gc3RhdGUudmlld3MuZmluZCh2ID0+IHYuaWQgPT09IGFjdGlvbi5pZCk7XG4gICAgICAgIGNvbnN0IHZpZXdzID1cbiAgICAgICAgICBhY3RpdmVWaWV3ICYmICFhY3RpdmVWaWV3LmVuYWJsZWRcbiAgICAgICAgICAgID8gc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgICAgICB2aWV3LmlkID09PSBhY3Rpb24uaWQgPyB7IC4uLnZpZXcsIGVuYWJsZWQ6IHRydWUgfSA6IHZpZXcsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogc3RhdGUudmlld3M7XG4gICAgICAgIC8vIElmIGVuYWJsaW5nIHRoZSB2aWV3IGNoYW5nZWQgdGhlIHZpZXdzLCB3ZSBuZWVkIHRvIHNhdmUuXG4gICAgICAgIGlmICh2aWV3cyAhPT0gc3RhdGUudmlld3MpIHtcbiAgICAgICAgICBzYXZlKHZpZXdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGFjdGl2ZVZpZXdJZDogYWN0aW9uLmlkLFxuICAgICAgICAgIHZpZXdzLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnc2V0RW5hYmxlZCc6IHtcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBzZXRFbmFibGVkKHN0YXRlLCBhY3Rpb24uaWQsIGFjdGlvbi5lbmFibGVkKTtcbiAgICAgICAgc2F2ZShuZXdTdGF0ZS52aWV3cyk7XG4gICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnc2V0Q29udGFpbmVyV2lkdGgnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBhY3Rpb24ud2lkdGgsXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldE92ZXJmbG93UGlja2VyT3Blbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgcGlja2VyT3BlbjogYWN0aW9uLm9wZW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgc2VhcmNoOiBhY3Rpb24ucXVlcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBzZWFyY2g6IGFjdGlvbi5xdWVyeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1cGRhdGVWaWV3Jzoge1xuICAgICAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgICAgdmlldy5pZCA9PT0gYWN0aW9uLnZpZXcuaWRcbiAgICAgICAgICAgID8gYWN0aW9uLnZpZXdcbiAgICAgICAgICAgIDogLy8gaWYgdGhlIGVkaXRlZCBhY3Rpb24gaXMgZGVmYXVsdCwgcmVzZXQgYW55IG90aGVyIGRlZmF1bHQgdGhhdCB3YXMgc2V0XG4gICAgICAgICAgICBhY3Rpb24udmlldy5kZWZhdWx0ICYmIHZpZXcuZGVmYXVsdFxuICAgICAgICAgICAgPyB7IC4uLnZpZXcsIGRlZmF1bHQ6IGZhbHNlIH1cbiAgICAgICAgICAgIDogdmlldyxcbiAgICAgICAgKTtcbiAgICAgICAgc2F2ZSh2aWV3cyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdmlld3M6IHZpZXdzLFxuICAgICAgICAgIGRlZmF1bHRWaWV3SWQ6IHZpZXdzLmZpbmQodiA9PiB2LmRlZmF1bHQpPy5pZCA/PyBudWxsLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjYXNlICdkZWxldGVWaWV3Jzoge1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGRlbGV0ZVZpZXcoc3RhdGUsIGFjdGlvbi52aWV3LmlkKTtcbiAgICAgICAgc2F2ZShuZXdTdGF0ZS52aWV3cyk7XG4gICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZHVwbGljYXRlVmlldyc6IHtcbiAgICAgICAgY29uc3QgbmV3VmlldyA9IGF3YWl0IGR1cGxpY2F0ZSh7IC4uLmFjdGlvbi52aWV3LCBkZWZhdWx0OiBmYWxzZSB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogd2l0aER1cGxpY2F0ZVZpZXcoc3RhdGUudmlld3MsIGFjdGlvbi52aWV3LCBuZXdWaWV3KSxcbiAgICAgICAgICBlZGl0aW5nVmlld0NvbnRleHQ6IHtcbiAgICAgICAgICAgIGlkOiBuZXdWaWV3LmlkLFxuICAgICAgICAgICAgYXV0b1JlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lbnVDb250ZXh0OiBhY3Rpb24ubWVudUNvbnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY3RpdmVWaWV3SWQ6IG5ld1ZpZXcuaWQsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NvcHlMaW5rVG9WaWV3JzpcbiAgICAgICAgYXdhaXQgY29weUxpbmsoYWN0aW9uLnZpZXcpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNhc2UgJ3ZpZXdPcmRlckNoYW5nZSc6IHtcbiAgICAgICAgY29uc3QgeyBzdGF0ZTogbmV3U3RhdGUsIHNob3VsZFNhdmUgfSA9IHZpZXdPcmRlckNoYW5nZShcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBhY3Rpb24ucHJldmlvdXNFbmFibGVkSW5kZXgsXG4gICAgICAgICAgYWN0aW9uLm5ld0VuYWJsZWRJbmRleCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNob3VsZFNhdmUpIHtcbiAgICAgICAgICBzYXZlKG5ld1N0YXRlLnZpZXdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3NldEFsbFZpZXdzVG9nZ2xlJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmFsbCxcbiAgICAgICAgICAgIHByaXZhdGVPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3ByaXZhdGUnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgc2hhcmVkT3BlbjpcbiAgICAgICAgICAgICAgYWN0aW9uLnBlcm1pc3Npb24gPT09ICdzaGFyZWQnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICBwdWJsaWNPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3B1YmxpYydcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwucHVibGljT3BlbixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRFZGl0aW5nVmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgZWRpdGluZ1ZpZXdDb250ZXh0OiBhY3Rpb24uY29udGV4dCxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RGVsZXRpbmdWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBkZWxldGluZ1ZpZXdDb250ZXh0OiBhY3Rpb24uY29udGV4dCxcbiAgICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy9cbiAgLy8gVXRpbGl0aWVzIC8vXG4gIC8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQZXJtaXNzaW9uVGl0bGUocGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocGVybWlzc2lvbikge1xuICAgICAgY2FzZSAncHJpdmF0ZSc6XG4gICAgICAgIHJldHVybiAnUHJpdmF0ZSc7XG4gICAgICBjYXNlICdzaGFyZWQnOlxuICAgICAgICByZXR1cm4gJ1NoYXJlZCc7XG4gICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICByZXR1cm4gJ1B1YmxpYyc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbihwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuICdPbmx5IHZpc2libGUgdG8geW91JztcbiAgICAgIGNhc2UgJ3NoYXJlZCc6XG4gICAgICAgIHJldHVybiAnT25seSB2aXNpYmxlIHRvIHRob3NlIHdpdGggYWNjZXNzJztcbiAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIHJldHVybiAnVmlzaWJsZSB0byBldmVyeW9uZSc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzU2hhcmVkVmlldzxVIGV4dGVuZHMgVXNlciwgViBleHRlbmRzIFZpZXc8VT4+KFxuICAgIHZpZXc/OiBGdWxsVmlldzxVLCBWPixcbiAgKTogdmlldyBpcyBGdWxsVmlldzxVLCBWPiAmIHsgcGVybWlzc2lvbjogJ3NoYXJlZCc7IHNoYXJlZFVzZXJzOiBVW10gfSB7XG4gICAgcmV0dXJuIHZpZXc/LnBlcm1pc3Npb24gPT09ICdzaGFyZWQnO1xuICB9XG59XG4iXX0=
|
|
@@ -64,12 +64,16 @@ import { OverlayDirective } from './overlay/overlay.directive';
|
|
|
64
64
|
import { ToastActionComponent } from './overlay/toast/toast-action.component';
|
|
65
65
|
import { ToastComponent } from './overlay/toast/toast.component';
|
|
66
66
|
import { SizeDirective } from './size/size.directive';
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
67
|
+
import { SimpleTableCellComponent } from './table/simple-table/simple-table-cell.component';
|
|
68
|
+
import { SimpleTableHeaderCellComponent } from './table/simple-table/simple-table-header-cell.component';
|
|
69
|
+
import { SimpleTableRowComponent } from './table/simple-table/simple-table-row.component';
|
|
70
|
+
import { SimpleTableComponent } from './table/simple-table/simple-table.component';
|
|
71
|
+
import { TableColumnSettingsSideSheetComponent } from './table/table/table-column-settings/table-column-settings-side-sheet.component';
|
|
72
|
+
import { TableColumnSettingsComponent } from './table/table/table-column-settings/table-column-settings.component';
|
|
73
|
+
import { TableCsvExportComponent } from './table/table/table-csv-export/table-csv-export.component';
|
|
74
|
+
import { TableHeaderResizeHandleComponent } from './table/table/table-header-resize-handle/table-header-resize-handle.component';
|
|
75
|
+
import { TableSearchComponent } from './table/table/table-search/table-search.component';
|
|
76
|
+
import { TableComponent } from './table/table/table/table.component';
|
|
73
77
|
import { ChartComponent } from './visualization/chart/chart.component';
|
|
74
78
|
import { DataTableCellComponent } from './visualization/data-table/data-table-cell.component';
|
|
75
79
|
import { DataTableHeaderCellComponent } from './visualization/data-table/data-table-header-cell.component';
|
|
@@ -82,9 +86,6 @@ import { IssueComponent } from './visualization/issue/issue.component';
|
|
|
82
86
|
import { LegendItemComponent } from './visualization/legend-item/legend-item.component';
|
|
83
87
|
import { MetricComponent } from './visualization/metric/metric.component';
|
|
84
88
|
import { ProgressComponent } from './visualization/progress/progress.component';
|
|
85
|
-
import { SimpleTableCellComponent } from './visualization/simple-table/simple-table-cell.component';
|
|
86
|
-
import { SimpleTableHeaderCellComponent } from './visualization/simple-table/simple-table-header-cell.component';
|
|
87
|
-
import { SimpleTableComponent } from './visualization/simple-table/simple-table.component';
|
|
88
89
|
import { StackedColumnComponent } from './visualization/stacked-column/stacked-column.component';
|
|
89
90
|
import { StackedRowComponent } from './visualization/stacked-row/stacked-row.component';
|
|
90
91
|
import { TimeSeriesComponent } from './visualization/time-series/time-series.component';
|
|
@@ -154,6 +155,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
154
155
|
SimpleTableCellComponent,
|
|
155
156
|
SimpleTableComponent,
|
|
156
157
|
SimpleTableHeaderCellComponent,
|
|
158
|
+
SimpleTableRowComponent,
|
|
157
159
|
SingleSelectComponent,
|
|
158
160
|
SizeDirective,
|
|
159
161
|
SmallCurrencyPipe,
|
|
@@ -239,6 +241,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
239
241
|
SimpleTableCellComponent,
|
|
240
242
|
SimpleTableComponent,
|
|
241
243
|
SimpleTableHeaderCellComponent,
|
|
244
|
+
SimpleTableRowComponent,
|
|
242
245
|
SingleSelectComponent,
|
|
243
246
|
SizeDirective,
|
|
244
247
|
SmallCurrencyPipe,
|
|
@@ -332,6 +335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
332
335
|
SimpleTableCellComponent,
|
|
333
336
|
SimpleTableComponent,
|
|
334
337
|
SimpleTableHeaderCellComponent,
|
|
338
|
+
SimpleTableRowComponent,
|
|
335
339
|
SingleSelectComponent,
|
|
336
340
|
SizeDirective,
|
|
337
341
|
SmallCurrencyPipe,
|
|
@@ -420,6 +424,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
420
424
|
SimpleTableCellComponent,
|
|
421
425
|
SimpleTableComponent,
|
|
422
426
|
SimpleTableHeaderCellComponent,
|
|
427
|
+
SimpleTableRowComponent,
|
|
423
428
|
SingleSelectComponent,
|
|
424
429
|
SizeDirective,
|
|
425
430
|
SmallCurrencyPipe,
|
|
@@ -452,4 +457,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
452
457
|
imports: [CommonModule, RouterModule],
|
|
453
458
|
}]
|
|
454
459
|
}] });
|
|
455
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxF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QW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1QixxQ0FBcUM7d0JBQ3JDLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGV4dFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdGV4dC10b2dnbGUvdGV4dC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kYXRlLnBpcGUnO1xuaW1wb3J0IHsgRGF5c1BpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kYXlzLnBpcGUnO1xuaW1wb3J0IHsgRG9sbGFyc1BpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kb2xsYXJzLnBpcGUnO1xuaW1wb3J0IHsgTnVtYmVyUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL251bWJlci5waXBlJztcbmltcG9ydCB7IFBlcmNlbnRhZ2VQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvcGVyY2VudGFnZS5waXBlJztcbmltcG9ydCB7IFNtYWxsQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvc21hbGwtY3VycmVuY3kucGlwZSc7XG5pbXBvcnQgeyBTVkdUZXh0VHJ1bmNhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm1hdC9zdmctdGV4dC10cnVuY2F0ZS9zdmctdGV4dC10cnVuY2F0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJ1bmNhdGVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1hdC90cnVuY2F0ZS90cnVuY2F0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbHBoYWJldGljRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2FscGhhYmV0aWMtZmllbGQvYWxwaGFiZXRpYy1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b0ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC9hdXRvLWZvY3VzL2F1dG8tZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0L2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jYXJkLWNoZWNrYm94L2NhcmQtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVSYW5nZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9kYXRlL2RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LWxhYmVsL2lucHV0LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvbnVtYmVyLWZpZWxkL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9wZXJjZW50YWdlLWZpZWxkL3BlcmNlbnRhZ2UtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3ROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWxlY3Qvc2VsZWN0LW5vZGUvc2VsZWN0LW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkdyb3VwUGlwZSB9IGZyb20gJy4vaW5wdXQvc2luZ2xlLXNlbGVjdC9vcHRpb24tZ3JvdXAucGlwZSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3dpdGNoQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3N3aXRjaC1jaGVja2JveC9zd2l0Y2gtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC90ZXh0YXJlYS1maWVsZC90ZXh0YXJlYS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGxWaWV3c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2VkaXQtdmlldy9lZGl0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXdzL3ZpZXdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9iYW5uZXIvYmFubmVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291bnRCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2NvdW50LWJhZGdlL2NvdW50LWJhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxsb3V0Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVscENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L2hlbHAvaGVscC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9ja1Njcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L2xvY2stc2Nyb2xsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNZW51RGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L21lbnUvbWVudS1kaXZpZGVyL21lbnUtZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2tlZFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC90b29sdGlwL2xvY2tlZC10b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9tb2RhbC9zaWRlLXNoZWV0L3NpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvdG9hc3QvdG9hc3QtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vc2l6ZS9zaXplLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS1jb2x1bW4tc2V0dGluZ3MvdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS1jc3YtZXhwb3J0L3RhYmxlLWNzdi1leHBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlSGVhZGVyUmVzaXplSGFuZGxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLXNlYXJjaC90YWJsZS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vY2hhcnQvY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZG9udXQvZG9udXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bm5lbENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2Z1bm5lbC1jaGFydC9mdW5uZWwtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9pc3N1ZS9pc3N1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RhY2tlZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9zdGFja2VkLWNvbHVtbi9zdGFja2VkLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RhY2tlZFJvd0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9zdGFja2VkLXJvdy9zdGFja2VkLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZVNlcmllc0NvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi90aW1lLXNlcmllcy90aW1lLXNlcmllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlbmRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vdHJlbmQvdHJlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IFplcm9TdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi96ZXJvLXN0YXRlL3plcm8tc3RhdGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWxsVmlld3NNb2RhbENvbXBvbmVudCxcbiAgICBBbHBoYWJldGljRmllbGRDb21wb25lbnQsXG4gICAgQXV0b0ZvY3VzRGlyZWN0aXZlLFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEJhbm5lckFjdGlvbkNvbXBvbmVudCxcbiAgICBCYW5uZXJDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIENhbGxvdXRDb21wb25lbnQsXG4gICAgQ2FyZENoZWNrYm94Q29tcG9uZW50LFxuICAgIENoYXJ0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIENvdW50QmFkZ2VDb21wb25lbnQsXG4gICAgQ3VycmVuY3lGaWVsZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBEYXRlQ29tcG9uZW50LFxuICAgIERhdGVQaXBlLFxuICAgIERhdGVSYW5nZUNvbXBvbmVudCxcbiAgICBEYXlzUGlwZSxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRG9sbGFyc1BpcGUsXG4gICAgRG9udXRDb21wb25lbnQsXG4gICAgRWRpdFZpZXdDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIElzc3VlQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBMb2NrZWRUb29sdGlwRGlyZWN0aXZlLFxuICAgIExvY2tTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWVudUNvbXBvbmVudCxcbiAgICBNZW51RGl2aWRlckNvbXBvbmVudCxcbiAgICBNZW51SXRlbUNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgTnVtYmVyRmllbGRDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBPcHRpb25Hcm91cFBpcGUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPdmVybGF5T3V0bGV0Q29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VGaWVsZENvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBQcm9ncmVzc0NvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdE5vZGVDb21wb25lbnQsXG4gICAgU2lkZVNoZWV0Q29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUNvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgU2luZ2xlU2VsZWN0Q29tcG9uZW50LFxuICAgIFNpemVEaXJlY3RpdmUsXG4gICAgU21hbGxDdXJyZW5jeVBpcGUsXG4gICAgU3RhY2tlZENvbHVtbkNvbXBvbmVudCxcbiAgICBTdGFja2VkUm93Q29tcG9uZW50LFxuICAgIFNWR1RleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICBTd2l0Y2hDaGVja2JveENvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgVGFibGVDb2x1bW5TZXR0aW5nc0NvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50LFxuICAgIFRhYmxlSGVhZGVyUmVzaXplSGFuZGxlQ29tcG9uZW50LFxuICAgIFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgIFRhYnNDb21wb25lbnQsXG4gICAgVGV4dGFyZWFGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0RmllbGRDb21wb25lbnQsXG4gICAgVGV4dFRvZ2dsZUNvbXBvbmVudCxcbiAgICBUaW1lU2VyaWVzQ29tcG9uZW50LFxuICAgIFRvYXN0QWN0aW9uQ29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICAgIFRvZ2dsZUNvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJlbmRDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVDb21wb25lbnQsXG4gICAgVmlld01lbnVDb21wb25lbnQsXG4gICAgVmlld3NDb21wb25lbnQsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQWxsVmlld3NNb2RhbENvbXBvbmVudCxcbiAgICBBbHBoYWJldGljRmllbGRDb21wb25lbnQsXG4gICAgQXV0b0ZvY3VzRGlyZWN0aXZlLFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEJhbm5lckFjdGlvbkNvbXBvbmVudCxcbiAgICBCYW5uZXJDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIENhbGxvdXRDb21wb25lbnQsXG4gICAgQ2FyZENoZWNrYm94Q29tcG9uZW50LFxuICAgIENoYXJ0Q29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIENvdW50QmFkZ2VDb21wb25lbnQsXG4gICAgQ3VycmVuY3lGaWVsZENvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBEYXRlQ29tcG9uZW50LFxuICAgIERhdGVQaXBlLFxuICAgIERhdGVSYW5nZUNvbXBvbmVudCxcbiAgICBEYXlzUGlwZSxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRG9sbGFyc1BpcGUsXG4gICAgRG9udXRDb21wb25lbnQsXG4gICAgRWRpdFZpZXdDb21wb25lbnQsXG4gICAgRnVubmVsQ2hhcnRDb21wb25lbnQsXG4gICAgSGVscENvbXBvbmVudCxcbiAgICBIaWdobGlnaHRDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dExhYmVsQ29tcG9uZW50LFxuICAgIElzc3VlQ29tcG9uZW50LFxuICAgIExlZ2VuZEl0ZW1Db21wb25lbnQsXG4gICAgTGlua0NvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb3ZlckNvbXBvbmVudCxcbiAgICBMb2NrZWRUb29sdGlwRGlyZWN0aXZlLFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgTWVudURpdmlkZXJDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWV0cmljQ29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIE51bWJlckZpZWxkQ29tcG9uZW50LFxuICAgIE51bWJlclBpcGUsXG4gICAgT3B0aW9uR3JvdXBQaXBlLFxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXG4gICAgT3ZlcmxheU91dGxldENvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlRmllbGRDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZVBpcGUsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgU2VhcmNoQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBTaW5nbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU2l6ZURpcmVjdGl2ZSxcbiAgICBTbWFsbEN1cnJlbmN5UGlwZSxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFN0YWNrZWRSb3dDb21wb25lbnQsXG4gICAgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgIFN3aXRjaENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDc3ZFeHBvcnRDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0VG9nZ2xlQ29tcG9uZW50LFxuICAgIFRpbWVTZXJpZXNDb21wb25lbnQsXG4gICAgVG9hc3RBY3Rpb25Db21wb25lbnQsXG4gICAgVG9hc3RDb21wb25lbnQsXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBUcmVuZENvbXBvbmVudCxcbiAgICBUcnVuY2F0ZUNvbXBvbmVudCxcbiAgICBWaWV3TWVudUNvbXBvbmVudCxcbiAgICBWaWV3c0NvbXBvbmVudCxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJpdk1vZHVsZSB7fVxuIl19
|
|
460
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Jpdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxF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QUNkLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLDhCQUE4Qjt3QkFDOUIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1QixxQ0FBcUM7d0JBQ3JDLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVGV4dFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdGV4dC10b2dnbGUvdGV4dC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC10b2dnbGUvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kYXRlLnBpcGUnO1xuaW1wb3J0IHsgRGF5c1BpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kYXlzLnBpcGUnO1xuaW1wb3J0IHsgRG9sbGFyc1BpcGUgfSBmcm9tICcuL2Zvcm1hdC9waXBlcy9kb2xsYXJzLnBpcGUnO1xuaW1wb3J0IHsgTnVtYmVyUGlwZSB9IGZyb20gJy4vZm9ybWF0L3BpcGVzL251bWJlci5waXBlJztcbmltcG9ydCB7IFBlcmNlbnRhZ2VQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvcGVyY2VudGFnZS5waXBlJztcbmltcG9ydCB7IFNtYWxsQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi9mb3JtYXQvcGlwZXMvc21hbGwtY3VycmVuY3kucGlwZSc7XG5pbXBvcnQgeyBTVkdUZXh0VHJ1bmNhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm1hdC9zdmctdGV4dC10cnVuY2F0ZS9zdmctdGV4dC10cnVuY2F0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJ1bmNhdGVDb21wb25lbnQgfSBmcm9tICcuL2Zvcm1hdC90cnVuY2F0ZS90cnVuY2F0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbHBoYWJldGljRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2FscGhhYmV0aWMtZmllbGQvYWxwaGFiZXRpYy1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b0ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC9hdXRvLWZvY3VzL2F1dG8tZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2lucHV0L2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jYXJkLWNoZWNrYm94L2NhcmQtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVSYW5nZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9kYXRlL2RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LWxhYmVsL2lucHV0LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvbnVtYmVyLWZpZWxkL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9wZXJjZW50YWdlLWZpZWxkL3BlcmNlbnRhZ2UtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3ROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC9zZWxlY3Qvc2VsZWN0LW5vZGUvc2VsZWN0LW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkdyb3VwUGlwZSB9IGZyb20gJy4vaW5wdXQvc2luZ2xlLXNlbGVjdC9vcHRpb24tZ3JvdXAucGlwZSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3dpdGNoQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L3N3aXRjaC1jaGVja2JveC9zd2l0Y2gtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC90ZXh0YXJlYS1maWVsZC90ZXh0YXJlYS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkL2xvYWRpbmctY292ZXIvbG9hZGluZy1jb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbG9hZC9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGxWaWV3c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL2VkaXQtdmlldy9lZGl0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXdzL3ZpZXdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW5uZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9iYW5uZXIvYmFubmVyLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291bnRCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uL2NvdW50LWJhZGdlL2NvdW50LWJhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxsb3V0Q29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVscENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L2hlbHAvaGVscC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9ja1Njcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L2xvY2stc2Nyb2xsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNZW51RGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9jYWxsb3V0L21lbnUvbWVudS1kaXZpZGVyL21lbnUtZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IExvY2tlZFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvY2FsbG91dC90b29sdGlwL2xvY2tlZC10b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS9tb2RhbC9zaWRlLXNoZWV0L3NpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkvdG9hc3QvdG9hc3QtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS90b2FzdC90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2l6ZURpcmVjdGl2ZSB9IGZyb20gJy4vc2l6ZS9zaXplLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3NpbXBsZS10YWJsZS9zaW1wbGUtdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvc2ltcGxlLXRhYmxlL3NpbXBsZS10YWJsZS1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jb2x1bW4tc2V0dGluZ3MvdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1jc3YtZXhwb3J0L3RhYmxlLWNzdi1leHBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlSGVhZGVyUmVzaXplSGFuZGxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS90YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlL3RhYmxlLXNlYXJjaC90YWJsZS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vY2hhcnQvY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZGF0YS10YWJsZS9kYXRhLXRhYmxlLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbGl6YXRpb24vZG9udXQvZG9udXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bm5lbENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL2Z1bm5lbC1jaGFydC9mdW5uZWwtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJc3N1ZUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9pc3N1ZS9pc3N1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi9sZWdlbmQtaXRlbS9sZWdlbmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtY29sdW1uL3N0YWNrZWQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGFja2VkUm93Q29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3N0YWNrZWQtcm93L3N0YWNrZWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3RpbWUtc2VyaWVzL3RpbWUtc2VyaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVuZENvbXBvbmVudCB9IGZyb20gJy4vdmlzdWFsaXphdGlvbi90cmVuZC90cmVuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVyb1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWxpemF0aW9uL3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbGxWaWV3c01vZGFsQ29tcG9uZW50LFxuICAgIEFscGhhYmV0aWNGaWVsZENvbXBvbmVudCxcbiAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQmFubmVyQWN0aW9uQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYXJkQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ291bnRCYWRnZUNvbXBvbmVudCxcbiAgICBDdXJyZW5jeUZpZWxkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93Q29tcG9uZW50LFxuICAgIERhdGVDb21wb25lbnQsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGF0ZVJhbmdlQ29tcG9uZW50LFxuICAgIERheXNQaXBlLFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBFZGl0Vmlld0NvbXBvbmVudCxcbiAgICBGdW5uZWxDaGFydENvbXBvbmVudCxcbiAgICBIZWxwQ29tcG9uZW50LFxuICAgIEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIElucHV0TGFiZWxDb21wb25lbnQsXG4gICAgSXNzdWVDb21wb25lbnQsXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBMaW5rQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvdmVyQ29tcG9uZW50LFxuICAgIExvY2tlZFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgTG9ja1Njcm9sbERpcmVjdGl2ZSxcbiAgICBNZW51Q29tcG9uZW50LFxuICAgIE1lbnVEaXZpZGVyQ29tcG9uZW50LFxuICAgIE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIE1ldHJpY0NvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBOdW1iZXJGaWVsZENvbXBvbmVudCxcbiAgICBOdW1iZXJQaXBlLFxuICAgIE9wdGlvbkdyb3VwUGlwZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIE92ZXJsYXlPdXRsZXRDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VQaXBlLFxuICAgIFByb2dyZXNzQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0Tm9kZUNvbXBvbmVudCxcbiAgICBTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVDZWxsQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBTaW5nbGVTZWxlY3RDb21wb25lbnQsXG4gICAgU2l6ZURpcmVjdGl2ZSxcbiAgICBTbWFsbEN1cnJlbmN5UGlwZSxcbiAgICBTdGFja2VkQ29sdW1uQ29tcG9uZW50LFxuICAgIFN0YWNrZWRSb3dDb21wb25lbnQsXG4gICAgU1ZHVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgIFN3aXRjaENoZWNrYm94Q29tcG9uZW50LFxuICAgIFRhYkNvbXBvbmVudCxcbiAgICBUYWJsZUNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NTaWRlU2hlZXRDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVDc3ZFeHBvcnRDb21wb25lbnQsXG4gICAgVGFibGVIZWFkZXJSZXNpemVIYW5kbGVDb21wb25lbnQsXG4gICAgVGFibGVTZWFyY2hDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBUZXh0VG9nZ2xlQ29tcG9uZW50LFxuICAgIFRpbWVTZXJpZXNDb21wb25lbnQsXG4gICAgVG9hc3RBY3Rpb25Db21wb25lbnQsXG4gICAgVG9hc3RDb21wb25lbnQsXG4gICAgVG9nZ2xlQ29tcG9uZW50LFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBUcmVuZENvbXBvbmVudCxcbiAgICBUcnVuY2F0ZUNvbXBvbmVudCxcbiAgICBWaWV3TWVudUNvbXBvbmVudCxcbiAgICBWaWV3c0NvbXBvbmVudCxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbGxWaWV3c01vZGFsQ29tcG9uZW50LFxuICAgIEFscGhhYmV0aWNGaWVsZENvbXBvbmVudCxcbiAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgQmFubmVyQWN0aW9uQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ2FsbG91dENvbXBvbmVudCxcbiAgICBDYXJkQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ291bnRCYWRnZUNvbXBvbmVudCxcbiAgICBDdXJyZW5jeUZpZWxkQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUhlYWRlckNlbGxDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93Q29tcG9uZW50LFxuICAgIERhdGVDb21wb25lbnQsXG4gICAgRGF0ZVBpcGUsXG4gICAgRGF0ZVJhbmdlQ29tcG9uZW50LFxuICAgIERheXNQaXBlLFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEb2xsYXJzUGlwZSxcbiAgICBEb251dENvbXBvbmVudCxcbiAgICBFZGl0Vmlld0NvbXBvbmVudCxcbiAgICBGdW5uZWxDaGFydENvbXBvbmVudCxcbiAgICBIZWxwQ29tcG9uZW50LFxuICAgIEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIElucHV0TGFiZWxDb21wb25lbnQsXG4gICAgSXNzdWVDb21wb25lbnQsXG4gICAgTGVnZW5kSXRlbUNvbXBvbmVudCxcbiAgICBMaW5rQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvdmVyQ29tcG9uZW50LFxuICAgIExvY2tlZFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgTWVudUNvbXBvbmVudCxcbiAgICBNZW51RGl2aWRlckNvbXBvbmVudCxcbiAgICBNZW51SXRlbUNvbXBvbmVudCxcbiAgICBNZXRyaWNDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgTnVtYmVyRmllbGRDb21wb25lbnQsXG4gICAgTnVtYmVyUGlwZSxcbiAgICBPcHRpb25Hcm91cFBpcGUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBPdmVybGF5T3V0bGV0Q29tcG9uZW50LFxuICAgIFBlcmNlbnRhZ2VGaWVsZENvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlUGlwZSxcbiAgICBQcm9ncmVzc0NvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWFyY2hDb21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFNpZGVTaGVldENvbXBvbmVudCxcbiAgICBTaW1wbGVUYWJsZUNlbGxDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVDb21wb25lbnQsXG4gICAgU2ltcGxlVGFibGVIZWFkZXJDZWxsQ29tcG9uZW50LFxuICAgIFNpbXBsZVRhYmxlUm93Q29tcG9uZW50LFxuICAgIFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICBTaXplRGlyZWN0aXZlLFxuICAgIFNtYWxsQ3VycmVuY3lQaXBlLFxuICAgIFN0YWNrZWRDb2x1bW5Db21wb25lbnQsXG4gICAgU3RhY2tlZFJvd0NvbXBvbmVudCxcbiAgICBTVkdUZXh0VHJ1bmNhdGVEaXJlY3RpdmUsXG4gICAgU3dpdGNoQ2hlY2tib3hDb21wb25lbnQsXG4gICAgVGFiQ29tcG9uZW50LFxuICAgIFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQsXG4gICAgVGFibGVDb2x1bW5TZXR0aW5nc1NpZGVTaGVldENvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZUNzdkV4cG9ydENvbXBvbmVudCxcbiAgICBUYWJsZVNlYXJjaENvbXBvbmVudCxcbiAgICBUYWJzQ29tcG9uZW50LFxuICAgIFRleHRhcmVhRmllbGRDb21wb25lbnQsXG4gICAgVGV4dEZpZWxkQ29tcG9uZW50LFxuICAgIFRleHRUb2dnbGVDb21wb25lbnQsXG4gICAgVGltZVNlcmllc0NvbXBvbmVudCxcbiAgICBUb2FzdEFjdGlvbkNvbXBvbmVudCxcbiAgICBUb2FzdENvbXBvbmVudCxcbiAgICBUb2dnbGVDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIFRyZW5kQ29tcG9uZW50LFxuICAgIFRydW5jYXRlQ29tcG9uZW50LFxuICAgIFZpZXdNZW51Q29tcG9uZW50LFxuICAgIFZpZXdzQ29tcG9uZW50LFxuICAgIFplcm9TdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUml2TW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export function createCellCoordinateCalculator(cells, totalColumns) {
|
|
2
|
+
// Pre-calculate coordinates for all cells
|
|
3
|
+
const cellCoordinates = [];
|
|
4
|
+
const grid = [];
|
|
5
|
+
let currentRow = 0;
|
|
6
|
+
let currentCol = 0;
|
|
7
|
+
// Process each cell and store its coordinates
|
|
8
|
+
for (let i = 0; i < cells.length; i++) {
|
|
9
|
+
const { rowspan, colspan } = cells[i];
|
|
10
|
+
// Find the next available position
|
|
11
|
+
while (true) {
|
|
12
|
+
// Ensure we have enough rows in our grid
|
|
13
|
+
while (grid.length <= currentRow) {
|
|
14
|
+
grid.push(new Array(totalColumns).fill(false));
|
|
15
|
+
}
|
|
16
|
+
// Check if current position is available
|
|
17
|
+
if (!grid[currentRow][currentCol]) {
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
// Move to next column
|
|
21
|
+
currentCol++;
|
|
22
|
+
if (currentCol >= totalColumns) {
|
|
23
|
+
currentCol = 0;
|
|
24
|
+
currentRow++;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Store coordinates for this cell
|
|
28
|
+
const startCoord = { row: currentRow, col: currentCol };
|
|
29
|
+
const endCoord = {
|
|
30
|
+
row: currentRow + rowspan - 1,
|
|
31
|
+
col: currentCol + colspan - 1,
|
|
32
|
+
};
|
|
33
|
+
cellCoordinates[i] = { start: startCoord, end: endCoord };
|
|
34
|
+
// Mark the positions this cell occupies as taken
|
|
35
|
+
for (let r = currentRow; r < currentRow + rowspan; r++) {
|
|
36
|
+
// Ensure we have enough rows
|
|
37
|
+
while (grid.length <= r) {
|
|
38
|
+
grid.push(new Array(totalColumns).fill(false));
|
|
39
|
+
}
|
|
40
|
+
for (let c = currentCol; c < currentCol + colspan; c++) {
|
|
41
|
+
if (c < totalColumns) {
|
|
42
|
+
grid[r][c] = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Move to next position for the next cell
|
|
47
|
+
currentCol++;
|
|
48
|
+
if (currentCol >= totalColumns) {
|
|
49
|
+
currentCol = 0;
|
|
50
|
+
currentRow++;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Return the lookup function
|
|
54
|
+
return function getCellCoordinates(cellIndex) {
|
|
55
|
+
if (cellIndex < 0 || cellIndex >= cells.length) {
|
|
56
|
+
throw new Error('Cell index out of bounds');
|
|
57
|
+
}
|
|
58
|
+
return cellCoordinates[cellIndex];
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS9zaW1wbGUtdGFibGUvY29vcmRpbmF0ZS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxLQUFhLEVBQ2IsWUFBb0I7SUFFcEIsMENBQTBDO0lBQzFDLE1BQU0sZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBZ0IsRUFBRSxDQUFDO0lBQzdCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsOENBQThDO0lBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLG1DQUFtQztRQUNuQyxPQUFPLElBQUksRUFBRTtZQUNYLHlDQUF5QztZQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksVUFBVSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1lBRUQseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU07YUFDUDtZQUVELHNCQUFzQjtZQUN0QixVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksVUFBVSxJQUFJLFlBQVksRUFBRTtnQkFDOUIsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDZixVQUFVLEVBQUUsQ0FBQzthQUNkO1NBQ0Y7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxVQUFVLEdBQWUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFFBQVEsR0FBZTtZQUMzQixHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sR0FBRyxDQUFDO1lBQzdCLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxHQUFHLENBQUM7U0FDOUIsQ0FBQztRQUVGLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBRTFELGlEQUFpRDtRQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCw2QkFBNkI7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRDtZQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsR0FBRyxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0RCxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7U0FDRjtRQUVELDBDQUEwQztRQUMxQyxVQUFVLEVBQUUsQ0FBQztRQUNiLElBQUksVUFBVSxJQUFJLFlBQVksRUFBRTtZQUM5QixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsVUFBVSxFQUFFLENBQUM7U0FDZDtLQUNGO0lBRUQsNkJBQTZCO0lBQzdCLE9BQU8sU0FBUyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUNsRCxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENlbGwgPSB7XG4gIHJvd3NwYW46IG51bWJlcjtcbiAgY29sc3BhbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29vcmRpbmF0ZSA9IHtcbiAgcm93OiBudW1iZXI7XG4gIGNvbDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQm91bmRzID0ge1xuICBzdGFydDogQ29vcmRpbmF0ZTtcbiAgZW5kOiBDb29yZGluYXRlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNlbGxDb29yZGluYXRlQ2FsY3VsYXRvcihcbiAgY2VsbHM6IENlbGxbXSxcbiAgdG90YWxDb2x1bW5zOiBudW1iZXIsXG4pOiAoY2VsbEluZGV4OiBudW1iZXIpID0+IEJvdW5kcyB7XG4gIC8vIFByZS1jYWxjdWxhdGUgY29vcmRpbmF0ZXMgZm9yIGFsbCBjZWxsc1xuICBjb25zdCBjZWxsQ29vcmRpbmF0ZXM6IEJvdW5kc1tdID0gW107XG4gIGNvbnN0IGdyaWQ6IGJvb2xlYW5bXVtdID0gW107XG4gIGxldCBjdXJyZW50Um93ID0gMDtcbiAgbGV0IGN1cnJlbnRDb2wgPSAwO1xuXG4gIC8vIFByb2Nlc3MgZWFjaCBjZWxsIGFuZCBzdG9yZSBpdHMgY29vcmRpbmF0ZXNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZWxscy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHsgcm93c3BhbiwgY29sc3BhbiB9ID0gY2VsbHNbaV07XG5cbiAgICAvLyBGaW5kIHRoZSBuZXh0IGF2YWlsYWJsZSBwb3NpdGlvblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBlbm91Z2ggcm93cyBpbiBvdXIgZ3JpZFxuICAgICAgd2hpbGUgKGdyaWQubGVuZ3RoIDw9IGN1cnJlbnRSb3cpIHtcbiAgICAgICAgZ3JpZC5wdXNoKG5ldyBBcnJheSh0b3RhbENvbHVtbnMpLmZpbGwoZmFsc2UpKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBwb3NpdGlvbiBpcyBhdmFpbGFibGVcbiAgICAgIGlmICghZ3JpZFtjdXJyZW50Um93XVtjdXJyZW50Q29sXSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gTW92ZSB0byBuZXh0IGNvbHVtblxuICAgICAgY3VycmVudENvbCsrO1xuICAgICAgaWYgKGN1cnJlbnRDb2wgPj0gdG90YWxDb2x1bW5zKSB7XG4gICAgICAgIGN1cnJlbnRDb2wgPSAwO1xuICAgICAgICBjdXJyZW50Um93Kys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3RvcmUgY29vcmRpbmF0ZXMgZm9yIHRoaXMgY2VsbFxuICAgIGNvbnN0IHN0YXJ0Q29vcmQ6IENvb3JkaW5hdGUgPSB7IHJvdzogY3VycmVudFJvdywgY29sOiBjdXJyZW50Q29sIH07XG4gICAgY29uc3QgZW5kQ29vcmQ6IENvb3JkaW5hdGUgPSB7XG4gICAgICByb3c6IGN1cnJlbnRSb3cgKyByb3dzcGFuIC0gMSxcbiAgICAgIGNvbDogY3VycmVudENvbCArIGNvbHNwYW4gLSAxLFxuICAgIH07XG5cbiAgICBjZWxsQ29vcmRpbmF0ZXNbaV0gPSB7IHN0YXJ0OiBzdGFydENvb3JkLCBlbmQ6IGVuZENvb3JkIH07XG5cbiAgICAvLyBNYXJrIHRoZSBwb3NpdGlvbnMgdGhpcyBjZWxsIG9jY3VwaWVzIGFzIHRha2VuXG4gICAgZm9yIChsZXQgciA9IGN1cnJlbnRSb3c7IHIgPCBjdXJyZW50Um93ICsgcm93c3BhbjsgcisrKSB7XG4gICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBlbm91Z2ggcm93c1xuICAgICAgd2hpbGUgKGdyaWQubGVuZ3RoIDw9IHIpIHtcbiAgICAgICAgZ3JpZC5wdXNoKG5ldyBBcnJheSh0b3RhbENvbHVtbnMpLmZpbGwoZmFsc2UpKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgYyA9IGN1cnJlbnRDb2w7IGMgPCBjdXJyZW50Q29sICsgY29sc3BhbjsgYysrKSB7XG4gICAgICAgIGlmIChjIDwgdG90YWxDb2x1bW5zKSB7XG4gICAgICAgICAgZ3JpZFtyXVtjXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNb3ZlIHRvIG5leHQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IGNlbGxcbiAgICBjdXJyZW50Q29sKys7XG4gICAgaWYgKGN1cnJlbnRDb2wgPj0gdG90YWxDb2x1bW5zKSB7XG4gICAgICBjdXJyZW50Q29sID0gMDtcbiAgICAgIGN1cnJlbnRSb3crKztcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm4gdGhlIGxvb2t1cCBmdW5jdGlvblxuICByZXR1cm4gZnVuY3Rpb24gZ2V0Q2VsbENvb3JkaW5hdGVzKGNlbGxJbmRleDogbnVtYmVyKTogQm91bmRzIHtcbiAgICBpZiAoY2VsbEluZGV4IDwgMCB8fCBjZWxsSW5kZXggPj0gY2VsbHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NlbGwgaW5kZXggb3V0IG9mIGJvdW5kcycpO1xuICAgIH1cblxuICAgIHJldHVybiBjZWxsQ29vcmRpbmF0ZXNbY2VsbEluZGV4XTtcbiAgfTtcbn1cbiJdfQ==
|